C3D Toolkit  Kernel - 117982, Vision -

MeshGeometry class for rendering polygon object. More...

#include <vsn_meshgeometry.h>

+ Inheritance diagram for VSN::MeshGeometry:
+ Collaboration diagram for VSN::MeshGeometry:

Public Member Functions

 MeshGeometry (Node *pParent=nullptr)
 Default constructor.
virtual ~MeshGeometry ()
virtual size_t GetFaceCount (size_t indexLod) const
 Returns face count.
virtual size_t GetVertexCount () const
 Returns vertex count.
size_t GetNormalCount () const
 Returns normal count.
const MbCubeGetMeshBoundingBox () const
 Returns wireframe bounding box.
virtual const MbCubeGetBoundingBox () const override
 Returns bounding box.
bool IsActiveColorVertex () const
 Checks if vertex color is active.
void SetActiveColorVertex (bool bActive)
 Sets necessity of use of indexed color in vertices.
size_t GetLevelsDetail () const
 Returns count of Levels Of Detail (LOD).
std::vector< float > GetPositions () const
 Returns position container.
std::vector< float > GetNormals () const
 Returns normal container.
std::vector< float > GetTexels () const
 Returns texel container.
bool IsExistTriangles (int indexLod, const NodeKey &materialId) const
 Checks if triangulation exists in LOD container.
std::vector< uint > GetTriIndices (int indexLod, const NodeKey &materialId) const
 Returns specified triangulation indices.
std::vector< uint > GetSimilarTriStripsFansIndex (int lod, const NodeKey &materialId)
 Returns indices of triangles not depending on material and LOD.
size_t GetTriangleCount (int lod, const NodeKey &materialId) const
 Returns triangle count in the array of LOD.
bool IsExistStrips (int lod, const NodeKey &materialId) const
 Checks if object contains the mesh with given material.
std::vector< std::vector< uint > > GetTriStripsIndex (int lod, const NodeKey &materialId) const
 Returns triangulation indices.
int GetTriStripCount (int lod, const NodeKey &materialId) const
 Returns count of triangles corresponding to LOD.
bool IsExistFans (int lod, const NodeKey &materialId) const
 Checks if triangles with given material and LOD exist.
std::vector< std::vector< uint > > GetTriFansIndex (int lod, const NodeKey &materialId) const
 Returns triangulation indices.
int GetTriFansCount (int lod, const NodeKey &materialId) const
 Returns count of triangles corresponding to material and LOD.
bool IsExistLevelOfDetail (int lod) const
 Checks if LOD with given identifier exists.
bool LevelOfDetailIncludesMaterial (int lod, const NodeKey &materialId) const
 Checks if material for the specified LOD is included.
double GetAccuracyLevelOfDetail (int lod) const
 Returns the computational accuracy for given LOD.
void SetFaceOffset (float factor, float units)
 Set the scale and units that will be used to calculate the depth values.
MaterialGetMaterialPrimitiveById (uint id, int lod=0) const
 Returns material of primitive by the specified identifier and LOD.
std::set< uint > GetArrayIDsPrimitives () const
 Returns primitive identifiers.
bool IsEmpty () const
 Checks if object is empty.
MeshGeometryCreateMeshByIndexLod (int lodIndex)
 Creates mesh of LOD.
MeshGeometryCreateMeshFromByIndexLod (int lodIndex)
 Creates mesh of LOD.
virtual void TransformVerticesByMatrix (const Matrix3DF &matrix) override
 Transforms mesh vertices by the matrix.
virtual float GetVolume () override
 Returns geometry volume.
virtual void UpdateMesh (MbMesh *pMeshItem)
 Updates object mesh.
virtual void Clear ()
 Clears all geometry.
void ClearMeshGeometry ()
 Clears the object and all LODs.
bool IsVisibleTriangles (uint primitiveId) const
 Returns true if polygons by the specified ID are visible .
void SetVisibleTriangles (uint primitiveId, bool visible)
 Set visibility of the polygon by the specified ID.
void MakeAllTrianglesVisible ()
 Make all triangles visible.
void AddVertices (const std::vector< float > &vertices)
 Adds vertex coordinates.
void AddNormals (const std::vector< float > &normals)
 Adds normals.
void AddTexels (const std::vector< float > &texels)
 Adds texels.
void AddColors (const std::vector< float > &colors)
 Adds colors.
uint AddTriangles (TypeTriangulation type, Material *pMaterial, const std::vector< uint > &indices, int lod=0, float accuracy=0.0f)
 Adds triangulation and returns identifier.
void ReverseNormals ()
 Inverts direction of all normals.
void CloseMesh ()
 Completes preparing the object with set data.
virtual void SetLevelDetail (int value)
 Sets LOD in the range from 0 to 100.
virtual void ReplaceMainMaterial (Material *pMaterial)
 Replaces the main material with the specified material.
void ReplaceMaterial (const NodeKey &key, Material *pMaterial)
 Replaces the material with given identifier.
void SetWireframeColor (const Color &color)
 Sets wireframe color.
virtual void DuplicateVertexBufferToClientSide ()
 Duplicates vertex buffer into memory.
virtual void ReleaseVertexBufferClientSide (bool update)
 Creates vertex buffer.
virtual void PickObjectsInsideRect (const MbRect &rect, const Matrix3DF &viewMatrix, const Matrix3DF &mx, Filter filter, bool bUnifying, HitList &hits) override
 Find objects that are in the specified area.
- Public Member Functions inherited from VSN::WireframeGeometry
 WireframeGeometry (Node *pParent=nullptr)
virtual ~WireframeGeometry ()
bool IsValid () const
 Checks if geometry is valid.
bool HasMaterial () const
 Checks if material is set.
MaterialGetHeadMaterial () const
 Returns the first material from the table.
size_t GetMaterialCount () const override
 Returns material count from the table.
MaterialGetMaterialById (NodeKey id) const
 Returns the pointer corresponding to the identifier.
std::set< Material * > GetMaterialSet () const override
 Returns material table.
std::list< NodeKeyGetMaterialIds () const
 Returns material identifier list.
virtual bool HasMaterialById (const NodeKey &key) const override
 Checks if the material with set identifier exists in the table.
const MbCubeGetWireBoundingBox () const
 Returns wireframe bounding box.
bool IsBoundingBoxValid () const override
 Checks if bounding box is valid.
bool IsTransparent () const override
 Checks if geometry is transparent.
bool IsExistTransparentMaterials () const
 Checks if transparent material exists in the table.
bool IsColorEachVertex () const
 Checks if color of each vertex is set.
void SetColorEachVertex (bool bColorEachVertex)
 Sets flag of setting color for each vertex.
bool IsWireframe () const
 Checks if geometry is wireframe.
float GetLineWidth () const
 Returns line width(functions are overloaded for convenience).
void SetLineWidth (float lineWidth)
 Sets line width(functions are overloaded for convenience).
float GetSelectedLineWidth () const
 Returns width of the selected line(functions are overloaded for convenience).
void SetSelectedLineWidth (float lineWidth)
 Sets width of the selected line(functions are overloaded for convenience).
Color GetWireframeColor () const
 Returns wireframe color(functions are overloaded for convenience).
void SetWireframeColor (const Color &color)
 Sets wireframe color(functions are overloaded for convenience).
virtual Pen GetPen () const override
 Get pen.
virtual void SetPen (const Pen &pen) override
 Set pen.
bool IsWireframeEmpty () const
 Checks if wireframe is empty.
std::vector< float > GetWireFrameVertexPositions () const
 Returns vertex positions.
int GetPolylineCount () const
 Returns polyline count.
uint GetPolylineOffset (int index) const
 Returns polyline offset with set index in the container.
int GetPolylineSize (int index) const
 Returns size of polyline with given index.
virtual bool IsIgnorePixelCulling () const override
virtual void IgnorePixelCulling (bool value)
void AddMaterial (Material *pMaterial)
 Adds material to the table.
virtual void UpdateTransparentMaterialCount () override
 Updates transparent material count after table operations.
virtual void InvertNormals () override
 Inverts direction of all vertex normals.
uint AddPolygonGroup (const std::vector< float > &vector, uint id=0)
 Adds vertex group and returns its identifier.
uint AddPoligonQuadrangleGroup (const std::vector< float > &vector)
 Adds vertex quadrangle grid group and returns its identifier.
void SetUseGlobalIdentifier (int global)
 Sets if the global identifier will be used.
virtual void CopyVertexBufferToClientSide ()
 Copies vertex buffer into memory.
virtual TranslucentValue GetTranslucentValue () const override
 Translucent value.
virtual void DoRender (const RenderState &) override
 Performs rendering.
virtual void Render (RenderContext &) override
 Performs rendering.
- Public Member Functions inherited from VSN::Geometry
 Geometry (Node *pParent=nullptr)
 Default constructor.
virtual ~Geometry ()
void SetDoubleSidedLighting (bool value)
 Set double side lighting.
bool IsDoubleSidedLighting () const
 Does geometry use double sided lighting.
void SetVisible (bool value)
 Set the visibility value to the geometry object.
bool IsVisible () const
 Check the visibility value.
virtual bool IsAnnotation () const
virtual void UpdateGeometry ()
 Updates geometry by new data.
- Public Member Functions inherited from VSN::Node
 Node (Node *pParent=nullptr)
 Constructor with parent.
virtual ~Node ()
NodeKey GetUniqueKey () const
 Returns key identifing Node instance.
void SetUniqueKey (const NodeKey &key)
 Sets the unique key for the instance.
NodeKey GetCustomKey () const
 Returns custom key identifing Node instance.
void SetCustomKey (const NodeKey &key)
 Sets the custom unique key for the instance.
NodeGetParentNode () const
 Returns pointer to the parent object or nullptr if no parent.
bool IsEnabled () const
 Returns the Node enabled flag. By default, the flag is always on.
ObjectList< Node * > GetChildNodes () const
 Return an array of child nodes for this node.
void SetParent (Node *pParent)
 Sets parent object to the object.
bool IsNotificationsBlocked () const
 True if notifications are blocked, otherwise, False.
bool SetBlockNotifications (bool block)
 Sets blocking of notifications and returns the previous blocking value.
- Public Member Functions inherited from VSN::Object
 Object (Object *pParent=nullptr)
 Default constructor. More...
virtual ~Object ()
void SetParent (Object *pParent)
MutexGetMutex ()
 Object mutex.
String GetObjectName () const
 Returns name.
void SetObjectName (const String &name)
 Sets name.
bool IsControlType () const
ObjectGetParent () const
Variant GetProperty (const String &name) const
bool IsSignalsBlocked () const
bool SetBlockSignals (bool bBlock)
void AddEventListener (Object *pObject)
void RemoveEventListener (Object *pObject)
ObjectGetSender () const
Thread * GetThread () const
void BindWithThread (Thread *thread)
int StartTimer (int interval, TimerType timerType=tt_CoarseTimer)
void KillTimer (int id)
const ObjectList< Object * > & GetChildren () const
template<typename T >
FindChild (const String &objName=String()) const
template<typename T >
ObjectList< T > FindChildren (const String &objName=String(), VSN::ChildFindingPolicies policies=VSN::FindAllNestedChildren) const
- Public Member Functions inherited from VSN::BasicObject
 BasicObject ()
 Default constructor.
virtual ~BasicObject ()

Protected Member Functions

virtual void OpenGLDraw (const RenderState &) override
 Performs rendering.
void RenderWireframe (const RenderState &state)
 MeshGeometry (MeshGeometryPrivate &dd, Node *pParent)
 Constructor for internal use.
- Protected Member Functions inherited from VSN::WireframeGeometry
virtual void OGLInitGeom (const RenderState &)
 Performs rendering.
void OGLDrawWireframe (const RenderState &, uint mode)
 Renders wireframe in one of the modes: GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP GL_LINES.
void ClearWireframe ()
 Clears all wireframe.
 WireframeGeometry (WireframeGeometryPrivate &dd, Node *pParent)
- Protected Member Functions inherited from VSN::Geometry
ObjectVector< GeometryTraits * > GetGeometryTraits () const
 Returns list of geometry data from this object.
void AddGeometryTraits (GeometryTraits *pTraits)
 Adds data group of geometric solid body.
void RemoveGeometryTraits (GeometryTraits *pTraits)
 Removes data group of geometric solid body.
 Geometry (GeometryPrivate &dd, Node *pParent)
 Signal about the end of rebuilding the whole geometry. More...
- Protected Member Functions inherited from VSN::Node
 Node (NodePrivate &dd, Node *pParent)
 Sets the node enable flag. More...
virtual void SceneModificationEvent (const std::shared_ptr< SceneModification > &modification)
 The function is called in case of scene being modified.

Detailed Description

MeshGeometry class for rendering polygon object.

MeshGeometry class contains triangle representation as triangle list, and also triangle strips that is a method for setting geometry with triangle strip. Thus, only the first triangle from the strip is set with all three vertices. Each following triangle is set with only one vertex that is added to previous two vertices from the array. Finally, the last one is triangle fan.

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