PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::TriangleSet< TDataType > Class Template Reference

#include <TriangleSet.h>

Inheritance diagram for dyno::TriangleSet< TDataType >:
Collaboration diagram for dyno::TriangleSet< TDataType >:

Public Types

typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
typedef TopologyModule::Triangle Triangle
 
- Public Types inherited from dyno::EdgeSet< TDataType >
typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
typedef TopologyModule::Edge Edge
 
- Public Types inherited from dyno::PointSet< TDataType >
typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
- Public Types inherited from dyno::TopologyModule
typedef PointType Point
 
typedef VectorND< PointType, 2 > Edge
 
typedef Vector< PointType, 3 > Triangle
 
typedef VectorND< PointType, 4 > Quad
 
typedef VectorND< PointType, 4 > Tetrahedron
 
typedef VectorND< PointType, 5 > Pyramid
 
typedef VectorND< PointType, 6 > Pentahedron
 
typedef VectorND< PointType, 8 > Hexahedron
 
typedef VectorND< PointType, 2 > Edg2Tri
 
typedef VectorND< PointType, 3 > Tri2Edg
 
typedef VectorND< PointType, 2 > Edg2Quad
 
typedef VectorND< PointType, 4 > Quad2Edg
 
typedef VectorND< PointType, 2 > Tri2Tet
 
typedef VectorND< PointType, 4 > Tet2Tri
 
typedef VectorND< PointType, 2 > Tri2Quad
 
typedef VectorND< PointType, 2 > Quad2Hex
 
typedef VectorND< PointType, 2 > Edg2Hex
 
typedef VectorND< PointType, 2 > Edg2Poly
 
- Public Types inherited from dyno::OBase
typedef std::vector< FBase * > FieldVector
 
typedef std::map< FieldID, FBase * > FieldMap
 

Public Member Functions

 TriangleSet ()
 
 ~TriangleSet () override
 
void setTriangles (std::vector< Triangle > &triangles)
 
void setTriangles (DArray< Triangle > &triangles)
 
DArray< Triangle > & getTriangles ()
 return all triangle indices
 
DArrayList< int > & getVertex2Triangles ()
 
DArray< TopologyModule::Tri2Edg > & getTriangle2Edge ()
 
DArray< TopologyModule::Edg2Tri > & getEdge2Triangle ()
 
void setNormals (DArray< Coord > &normals)
 
DArray< Coord > & getVertexNormals ()
 
void updateTriangle2Edge ()
 update the index from triangle id to edges ids
 
void updateEdgeNormal (DArray< Coord > &edgeNormal)
 
void updateAngleWeightedVertexNormal (DArray< Coord > &vertexNormal)
 
bool loadObjFile (std::string filename)
 
void copyFrom (TriangleSet< TDataType > &triangleSet)
 
std::shared_ptr< TriangleSet< TDataType > > merge (TriangleSet< TDataType > &ts)
 
bool isEmpty () override
 
void clear () override
 
void setAutoUpdateNormals (bool b)
 
void rotate (const Coord angle) override
 
void rotate (const Quat< Real > q) override
 
 TriangleSet ()
 
 ~TriangleSet () override
 
void setTriangles (std::vector< Triangle > &indices)
 
void setTriangles (const DArray< Triangle > &indices)
 
DArray< Triangle > & getTriangles ()
 
DArray< uint32_t > & getVulkanIndex ()
 
- Public Member Functions inherited from dyno::EdgeSet< TDataType >
 EdgeSet ()
 
 ~EdgeSet () override
 
void setEdges (std::vector< Edge > &edges)
 
void setEdges (DArray< Edge > &edges)
 
void requestPointNeighbors (DArrayList< int > &lists)
 Request the neighboring ids of each point according to the mesh topology Be sure update() is called as long as the topology is changed.
 
DArray< Edge > & getEdges ()
 Get all edges with each one containing the indices of two edge ends.
 
DArrayList< int > & vertex2Edge ()
 Get the Ver2 Edge object.
 
void copyFrom (EdgeSet< TDataType > &edgeSet)
 
void loadSmeshFile (std::string filename)
 
 EdgeSet ()
 
 ~EdgeSet () override
 
void setEdges (const DArray< Edge > &edges)
 
void setEdges (const std::vector< Edge > &edges)
 
DArray< Edge > & getEdges ()
 
void copyFrom (EdgeSet &es)
 
- Public Member Functions inherited from dyno::PointSet< TDataType >
 PointSet ()
 
 ~PointSet () override
 
void copyFrom (PointSet< TDataType > &pointSet)
 
void setPoints (const std::vector< Coord > &pos)
 
void setPoints (const DArray< Coord > &pos)
 
void setSize (int size)
 
int getPointSize ()
 
void requestBoundingBox (Coord &lo, Coord &hi)
 Return the lower and upper bounds for all points.
 
void scale (const Real s)
 
void scale (const Coord s)
 
void translate (const Coord t)
 
void loadObjFile (std::string filename)
 
DArray< Coord > & getPoints ()
 Return the array of points.
 
 PointSet ()
 
 ~PointSet () override
 
DArray< Vec3f > & getPoints ()
 
void setPoints (std::vector< Vec3f > &points)
 
void setPoints (const DArray< Vec3f > &points)
 
void clear ()
 
- Public Member Functions inherited from dyno::TopologyModule
 TopologyModule ()
 
 ~TopologyModule () override
 
virtual int getDOF ()
 
void tagAsChanged ()
 
void tagAsUnchanged ()
 
bool isTopologyChanged ()
 
void update ()
 
- Public Member Functions inherited from dyno::OBase
 OBase ()
 
 ~OBase () override
 
virtual std::string caption ()
 Return the caption.
 
virtual bool captionVisible ()
 Whether to hide the caption in the GUI.
 
virtual std::string description ()
 Return a description for the node or module, override this function to support user-defined description.
 
virtual std::string getName ()
 
bool addField (FBase *data)
 Add a field to Base FieldID will be set to the name of Field by default.
 
bool addField (FieldID name, FBase *data)
 Add a field to Base.
 
bool addFieldAlias (FieldID name, FBase *data)
 
bool addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias)
 
bool findField (FBase *data)
 Find a field by its pointer.
 
bool findFieldAlias (const FieldID name)
 Find a field by its name.
 
bool findFieldAlias (const FieldID name, FieldMap &fieldAlias)
 Find a field in fieldAlias by its name This function is typically called by other functions.
 
bool removeField (FBase *data)
 Remove a field by its pointer.
 
bool removeFieldAlias (const FieldID name)
 Remove a field by its name.
 
bool removeFieldAlias (const FieldID name, FieldMap &fieldAlias)
 
FBasegetField (const FieldID name)
 Return a field by its name.
 
std::vector< FBase * > & getAllFields ()
 
virtual bool attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true)
 Attach a field to Base.
 
template<typename T>
TgetField (FieldID name)
 
bool isAllFieldsReady ()
 Check the completeness of all required fields.
 
std::vector< FieldIDgetFieldAlias (FBase *data)
 
int getFieldAliasCount (FBase *data)
 
void setBlockCoord (float x, float y)
 
float bx ()
 
float by ()
 
bool findInputField (FBase *field)
 
bool addInputField (FBase *field)
 
bool removeInputField (FBase *field)
 
std::vector< FBase * > & getInputFields ()
 
bool findOutputField (FBase *field)
 
bool addOutputField (FBase *field)
 
bool addToOutput (FBase *field)
 
bool removeOutputField (FBase *field)
 
bool removeFromOutput (FBase *field)
 
std::vector< FBase * > & getOutputFields ()
 
bool findParameter (FBase *field)
 
bool addParameter (FBase *field)
 
bool removeParameter (FBase *field)
 
std::vector< FBase * > & getParameters ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Public Attributes

DArray< uint32_t > mIndex
 
- Public Attributes inherited from dyno::EdgeSet< TDataType >
DArray< EdgemEdgeIndex
 
- Public Attributes inherited from dyno::PointSet< TDataType >
DArray< Vec3fmPoints
 

Protected Member Functions

void updateTopology () override
 
void updateEdges () override
 
virtual void updateTriangles ()
 
virtual void updateVertexNormal ()
 
void updateTopology () override
 
virtual void updateTriangles ()
 

Private Attributes

bool bAutoUpdateNormal = true
 
DArray< TrianglemTriangleIndex
 
DArrayList< int > mVer2Tri
 
DArray<::dyno::TopologyModule::Edg2TrimEdg2Tri
 
DArray<::dyno::TopologyModule::Tri2EdgmTri2Edg
 
DArray< CoordmVertexNormal
 

Additional Inherited Members

- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 
- Protected Attributes inherited from dyno::EdgeSet< TDataType >
DArray< EdgemEdges
 
DArrayList< int > mVer2Edge
 
- Protected Attributes inherited from dyno::PointSet< TDataType >
DArray< CoordmCoords
 
- Protected Attributes inherited from dyno::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

template<typename TDataType>
class dyno::TriangleSet< TDataType >

Definition at line 6 of file TriangleSet.h.

Member Typedef Documentation

◆ Coord

template<typename TDataType>
typedef TDataType::Coord dyno::TriangleSet< TDataType >::Coord

Definition at line 101 of file TriangleSet.h.

◆ Real

template<typename TDataType>
typedef TDataType::Real dyno::TriangleSet< TDataType >::Real

Definition at line 100 of file TriangleSet.h.

◆ Triangle

template<typename TDataType>
typedef TopologyModule::Triangle dyno::TriangleSet< TDataType >::Triangle

Definition at line 102 of file TriangleSet.h.

Constructor & Destructor Documentation

◆ TriangleSet() [1/2]

template<typename TDataType>
dyno::TriangleSet< TDataType >::TriangleSet ( )

Definition at line 7 of file TriangleSet.cpp.

Here is the caller graph for this function:

◆ ~TriangleSet() [1/2]

template<typename TDataType>
dyno::TriangleSet< TDataType >::~TriangleSet ( )
override

Definition at line 20 of file TriangleSet.cpp.

◆ TriangleSet() [2/2]

template<typename TDataType>
dyno::TriangleSet< TDataType >::TriangleSet ( )

◆ ~TriangleSet() [2/2]

template<typename TDataType>
dyno::TriangleSet< TDataType >::~TriangleSet ( )
override

Member Function Documentation

◆ clear()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::clear ( )
overridevirtual

Reimplemented from dyno::EdgeSet< TDataType >.

Here is the caller graph for this function:

◆ copyFrom()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::copyFrom ( TriangleSet< TDataType > & triangleSet)
Here is the call graph for this function:

◆ getEdge2Triangle()

template<typename TDataType>
DArray< TopologyModule::Edg2Tri > & dyno::TriangleSet< TDataType >::getEdge2Triangle ( )
inline

Definition at line 117 of file TriangleSet.h.

Here is the caller graph for this function:

◆ getTriangle2Edge()

template<typename TDataType>
DArray< TopologyModule::Tri2Edg > & dyno::TriangleSet< TDataType >::getTriangle2Edge ( )
inline

Definition at line 116 of file TriangleSet.h.

Here is the caller graph for this function:

◆ getTriangles() [1/2]

template<typename TDataType>
DArray< Triangle > & dyno::TriangleSet< TDataType >::getTriangles ( )
inline

return all triangle indices

Definition at line 113 of file TriangleSet.h.

◆ getTriangles() [2/2]

template<typename TDataType>
DArray< Triangle > & dyno::TriangleSet< TDataType >::getTriangles ( )
inline

Definition at line 15 of file TriangleSet.h.

◆ getVertex2Triangles()

template<typename TDataType>
DArrayList< int > & dyno::TriangleSet< TDataType >::getVertex2Triangles ( )

◆ getVertexNormals()

template<typename TDataType>
DArray< Coord > & dyno::TriangleSet< TDataType >::getVertexNormals ( )
inline

Definition at line 120 of file TriangleSet.h.

Here is the caller graph for this function:

◆ getVulkanIndex()

template<typename TDataType>
DArray< uint32_t > & dyno::TriangleSet< TDataType >::getVulkanIndex ( )
inline

Definition at line 18 of file TriangleSet.h.

◆ isEmpty()

template<typename TDataType>
bool dyno::TriangleSet< TDataType >::isEmpty ( )
overridevirtual

Reimplemented from dyno::EdgeSet< TDataType >.

◆ loadObjFile()

template<typename TDataType>
bool dyno::TriangleSet< TDataType >::loadObjFile ( std::string filename)

◆ merge()

template<typename TDataType>
std::shared_ptr< TriangleSet< TDataType > > dyno::TriangleSet< TDataType >::merge ( TriangleSet< TDataType > & ts)
Here is the call graph for this function:

◆ rotate() [1/2]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::rotate ( const Coord angle)
overridevirtual

Reimplemented from dyno::PointSet< TDataType >.

Here is the caller graph for this function:

◆ rotate() [2/2]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::rotate ( const Quat< Real > q)
overridevirtual

Reimplemented from dyno::PointSet< TDataType >.

◆ setAutoUpdateNormals()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setAutoUpdateNormals ( bool b)
inline

Definition at line 143 of file TriangleSet.h.

◆ setNormals()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setNormals ( DArray< Coord > & normals)
Here is the caller graph for this function:

◆ setTriangles() [1/4]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setTriangles ( const DArray< Triangle > & indices)

Definition at line 30 of file TriangleSet.cpp.

◆ setTriangles() [2/4]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setTriangles ( DArray< Triangle > & triangles)

◆ setTriangles() [3/4]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setTriangles ( std::vector< Triangle > & indices)

◆ setTriangles() [4/4]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::setTriangles ( std::vector< Triangle > & triangles)

Definition at line 25 of file TriangleSet.cpp.

Here is the caller graph for this function:

◆ updateAngleWeightedVertexNormal()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateAngleWeightedVertexNormal ( DArray< Coord > & vertexNormal)

◆ updateEdgeNormal()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateEdgeNormal ( DArray< Coord > & edgeNormal)

◆ updateEdges()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateEdges ( )
overrideprotectedvirtual

Override updateEdges to update edges in a customized way, e.g., only the four edges will be created for a quadrangle

Reimplemented from dyno::EdgeSet< TDataType >.

◆ updateTopology() [1/2]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateTopology ( )
overrideprotectedvirtual

Reimplemented from dyno::EdgeSet< TDataType >.

Definition at line 35 of file TriangleSet.cpp.

Here is the call graph for this function:

◆ updateTopology() [2/2]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateTopology ( )
overrideprotectedvirtual

Reimplemented from dyno::EdgeSet< TDataType >.

◆ updateTriangle2Edge()

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateTriangle2Edge ( )

update the index from triangle id to edges ids

Here is the caller graph for this function:

◆ updateTriangles() [1/2]

template<typename TDataType>
void dyno::TriangleSet< TDataType >::updateTriangles ( )
inlineprotectedvirtual

Reimplemented in dyno::TetrahedronSet< TDataType >.

Definition at line 153 of file TriangleSet.h.

Here is the caller graph for this function:

◆ updateTriangles() [2/2]

template<typename TDataType>
virtual void dyno::TriangleSet< TDataType >::updateTriangles ( )
protectedvirtual

◆ updateVertexNormal()

template<typename TDataType>
virtual void dyno::TriangleSet< TDataType >::updateVertexNormal ( )
protectedvirtual

Member Data Documentation

◆ bAutoUpdateNormal

template<typename TDataType>
bool dyno::TriangleSet< TDataType >::bAutoUpdateNormal = true
private

Definition at line 158 of file TriangleSet.h.

◆ mEdg2Tri

template<typename TDataType>
DArray<::dyno::TopologyModule::Edg2Tri> dyno::TriangleSet< TDataType >::mEdg2Tri
private

Definition at line 166 of file TriangleSet.h.

◆ mIndex

template<typename TDataType>
DArray<uint32_t> dyno::TriangleSet< TDataType >::mIndex

Definition at line 27 of file TriangleSet.h.

◆ mTri2Edg

template<typename TDataType>
DArray<::dyno::TopologyModule::Tri2Edg> dyno::TriangleSet< TDataType >::mTri2Edg
private

Definition at line 169 of file TriangleSet.h.

◆ mTriangleIndex

template<typename TDataType>
DArray< Triangle > dyno::TriangleSet< TDataType >::mTriangleIndex
private

Definition at line 160 of file TriangleSet.h.

◆ mVer2Tri

template<typename TDataType>
DArrayList<int> dyno::TriangleSet< TDataType >::mVer2Tri
private

Definition at line 163 of file TriangleSet.h.

◆ mVertexNormal

template<typename TDataType>
DArray<Coord> dyno::TriangleSet< TDataType >::mVertexNormal
private

Definition at line 171 of file TriangleSet.h.


The documentation for this class was generated from the following files: