template<class T>
class gismo::gsSolid< T >
Class for representing a solid made up of vertices, edges, faces, and volumes.
Inherits gsSolidElement< T >.
|
gsSolidHalfFaceHandle | addFace (std::vector< gsSolidHeVertexHandle > V) |
|
gsSolidHalfFaceHandle | addFace (std::vector< std::vector< gsSolidHeVertexHandle > > loopV, gsTrimSurface< T > *tsurf) |
| Add a half face to the solid.
|
|
gsSolidHalfFaceHandle | addFace_4Vertices (gsSolidHeVertexHandle v0, gsSolidHeVertexHandle v1, gsSolidHeVertexHandle v2, gsSolidHeVertexHandle v3) |
| add one face as a trimmed surface, the order of the vertices in V must be either CCW or CW when viewing from infinity for all faces
|
|
gsSolidHalfFaceHandle | addFace_PlanarPolygon (std::vector< gsSolidHeVertexHandle > V) |
| Add a planar face, specified by a list of vertices that should all be in the same plane.
|
|
gsSolidHalfFace< T > * | addFaceWithMate (const std::vector< gsSolidHeVertexHandle > &Verts, gsTrimSurface< T > *surf) |
| Make a face that can be used as the mate of the given face, add both faces and split off a new volume.
|
|
void | addHeVertex (scalar_t const &x, scalar_t const &y, scalar_t const &z=0) |
| add coords to gsHeVertex, not yet pointers to HEs
|
|
void | addVolume (gsVolumeHandle vol) |
| add a volume using its handle
|
|
void | addVolume (std::vector< gsSolidHalfFaceHandle > hfaces) |
| add a volume using handles of its half faces
|
|
void | checkStructure (bool checkVerts=false) const |
| sanity checks on the graph structure of the solid
|
|
std::vector< gsSolidHalfEdgeHandle > | detectNonConvexEdges (std::vector< int > const &ncEdgeV1, std::vector< int > const &ncEdgeV2) |
| Define (TODO: detect automatically) nonconvex edges.
|
|
void | handleImpedingEdges (gsSolidHalfEdgeHandle he) |
| If there are impeding edges that make the solid inseparatable along a given HE he, this routine will create a new vertex on each impeding edges.
|
|
std::vector< gsSolidHalfEdgeHandle > | impedingEdges (gsSolidHalfEdgeHandle he) const |
|
void | insertNewVertex (gsSolidHalfEdgeHandle he) |
| Insert a new vertex to an edge of the volume.
|
|
gsVolumeBlock< T > * | newVolume (gsSolidHalfFaceHandle startingFace) |
| Starting with a specified face, chase round all the faces connected to it and move them to a new volume.
|
|
gsMultiPatch< T > | plotEdgeGraph () |
| plot edge graph
|
|
virtual std::ostream & | print (std::ostream &os) const |
| Prints the object as a string.
|
|
void | setHeMate () |
| Assigning mates for each HE
|
|
gsSolidHalfFaceHandle | splitFace (gsSolidHalfFaceHandle f, gsSolidHeVertexHandle startVertex, gsSolidHeVertexHandle endVertex, gsBSpline< T > *domainSpline) |
|