9 #include "imstkGeometryAlgorithm.h" 10 #include "imstkDataArray.h" 37 std::shared_ptr<SurfaceMesh> inputMeshA,
38 std::shared_ptr<SurfaceMesh> inputMeshB);
40 std::shared_ptr<LineMesh> getOutputMesh()
const;
47 int getSegmentsPerStrand() {
return m_segmentsPerStrand; }
55 double getStrandsPerFace() {
return m_strandsPerFace; }
58 void setAllowedAngleDeviation(
double angle) { m_allowedAngleDeviation = angle; }
59 double getAllowedAgnleDeviation()
const {
return m_allowedAngleDeviation; }
77 const std::vector<int>& faces,
83 int m_segmentsPerStrand = 3;
84 double m_strandsPerFace = 1;
85 double m_allowedAngleDeviation = PI;
This filter takes in two surface meshes and generates a LineMesh that connectes the faces of the two ...
void setSegmentsPerStrand(int numSegs)
Get/Set the number of segments each connective strand is made of. Defaults to 3.
void requestUpdate() override
Users can implement this for the logic to be run.
std::vector< int > filterCells(SurfaceMesh *meshA, SurfaceMesh *meshB) const
Filter faces on meshA to remove those facing away from meshB Checks nearest faces, if nearest face normal points in same general direction then ignore.
Abstract base class for geometry algorithms. GeometryAlgorithms take N input geometries and produce N...
Represents a set of triangles & vertices via an array of Vec3d double vertices & Vec3i integer indice...
void setStrandsPerFace(double density)
Get/Set the number of of connective strands attached to each face Defaults to 1.
const Vec3d generateRandomPointOnFace(SurfaceMesh *mesh, int face) const
std::shared_ptr< LineMesh > createStrands(SurfaceMesh *meshA, const std::vector< int > &faces, SurfaceMesh *meshB) const
Creates a line mesh by connecting points of the given faces of meshA with with random points on rando...