|
void | requestUpdate () override |
| Users can implement this for the logic to be run.
|
|
std::shared_ptr< std::map< int, int > > | getCutVertMap () |
|
| imstkGetMacro (CutData, std::shared_ptr< std::vector< CutData >>) |
|
| imstkSetMacro (CutData, std::shared_ptr< std::vector< CutData >>) |
|
| imstkGetMacro (CutGeometry, std::shared_ptr< Geometry >) |
|
| imstkSetMacro (CutGeometry, std::shared_ptr< Geometry >) |
|
| imstkGetMacro (Epsilon, double) |
|
| imstkSetMacro (Epsilon, double) |
|
| imstkGetMacro (RemoveConstraintVertices, std::shared_ptr< std::unordered_set< size_t >>) |
|
| imstkGetMacro (AddConstraintVertices, std::shared_ptr< std::unordered_set< size_t >>) |
|
std::shared_ptr< Geometry > | getInput (size_t port=0) const |
| Returns input geometry given port, returns nullptr if doesn't exist.
|
|
std::shared_ptr< Geometry > | getOutput (size_t port=0) const |
| Returns output geometry given port, returns nullptr if doesn't exist.
|
|
void | setInput (std::shared_ptr< Geometry > inputGeometry, size_t port=0) |
| Set the input at the port.
|
|
void | update () |
| Do the actual algorithm.
|
|
|
virtual std::shared_ptr< std::vector< CutData > > | generateCutData (std::shared_ptr< Geometry > cuttingGeom, std::shared_ptr< AbstractCellMesh > geomToCut)=0 |
| Generate CutData which defines how the cut should be performed.
|
|
virtual void | refinement (std::shared_ptr< AbstractCellMesh > outputGeom, std::map< int, bool > &cutVerts)=0 |
| Refine the mesh adding vertices and changing connectivity along the cut. More...
|
|
virtual void | splitVerts (std::shared_ptr< AbstractCellMesh > outputGeom, std::map< int, bool > &cutVerts, std::shared_ptr< Geometry > cuttingGeom)=0 |
| Split the cutting vertices, separating them into two. More...
|
|
int | ptBoundarySign (const Vec3d &pt, std::shared_ptr< Geometry > geometry) |
| Determine the sign of the point -1 if inside, 1 if outside, 0 if on boundary defined by epsilon.
|
|
template<int N> |
bool | vertexOnBoundary (std::shared_ptr< VecDataArray< int, N >> cells, std::set< int > &cellSet) |
|
bool | pointProjectionInSurface (const Vec3d &pt, std::shared_ptr< SurfaceMesh > surface) |
|
void | setOutput (std::shared_ptr< Geometry > inputGeometry, const size_t port=0) |
| Set the output at the port.
|
|
template<typename T > |
void | setRequiredInputType (const size_t port) |
| Declares the type for the port with the given number, also defines that the give port is required for the filter to run correctly.
|
|
template<typename T > |
void | setOptionalInputType (const size_t port) |
| Declares the type for the port with the given number, the data for this port is optional and may be omitted.
|
|
virtual bool | areInputsValid () |
| Check inputs are correct. More...
|
|
void | setNumInputPorts (const size_t numPorts) |
| Get/Set the amount of input ports.
|
|
| imstkGetMacro (NumInputPorts, size_t) |
|
void | setNumOutputPorts (const size_t numPorts) |
| Get/Set the amount of output ports.
|
|
| imstkGetMacro (NumOutputPorts, size_t) |
|
Base abstract class for discrete cut algorithms.
- Todo:
- : Generalize the cutting into composited bits and provide one concrete MeshCut instead of many subclasses of this
Definition at line 41 of file imstkMeshCut.h.