Simplygon C++ API  8.3.35800.0
SimplygonSDK::IGeometryData Class Referenceabstract

#include <SimplygonSDK.h>

Inheritance diagram for SimplygonSDK::IGeometryData:
SimplygonSDK::IObject

Public Member Functions

virtual CountedPointer< IValueArrayAddBaseTypeCustomField (rid base_type, const char *name, unsigned int tuple_size)=0
 
virtual CountedPointer< IValueArrayAddBaseTypeUserCornerField (rid base_type, const char *name, unsigned int tuple_size)=0
 
virtual CountedPointer< IValueArrayAddBaseTypeUserTriangleField (rid base_type, const char *name, unsigned int tuple_size)=0
 
virtual SGDEPRECATED CountedPointer< IValueArrayAddBaseTypeUserTriangleVertexField (rid base_type, const char *name, unsigned int tuple_size)=0
 
virtual CountedPointer< IValueArrayAddBaseTypeUserVertexField (rid base_type, const char *name, unsigned int tuple_size)=0
 
virtual SGDEPRECATED void AddBitangents (rid level)=0
 
virtual SGDEPRECATED void AddBoneIds (unsigned int tuplesize)=0
 
virtual void AddBoneWeights (unsigned int tuplesize)=0
 
virtual void AddColors (rid level)=0
 
virtual void AddCustomField (IValueArray *field)=0
 
virtual SGDEPRECATED void AddDiffuseColors ()=0
 
virtual void AddGroupIds ()=0
 
virtual void AddMaterialIds ()=0
 
virtual rid AddNamedColors (const char *alternative_name)=0
 
virtual rid AddNamedTexCoords (const char *alternative_name)=0
 
virtual void AddNormals ()=0
 
virtual SGDEPRECATED void AddSpecularColors ()=0
 
virtual void AddTangents (rid level)=0
 
virtual void AddTexCoords (rid level)=0
 
virtual void AddTriangles (unsigned int count)=0
 
virtual void AddUserCornerField (IValueArray *field)=0
 
virtual void AddUserTriangleField (IValueArray *field)=0
 
virtual SGDEPRECATED void AddUserTriangleVertexField (IValueArray *field)=0
 
virtual void AddUserVertexField (IValueArray *field)=0
 
virtual void AddVertexLocks ()=0
 
virtual void AddVertexWeighting ()=0
 
virtual void AddVertices (unsigned int count)=0
 
virtual void AppendGeometry (IGeometryData *source)=0
 
virtual void CalculateExtents (bool only_triangles)=0
 
virtual void ChangeWinding ()=0
 
virtual void CleanupInvalidTriangles ()=0
 
virtual void CleanupNanValues ()=0
 
virtual void Compact ()=0
 
virtual void Compact (bool only_compact_triangles)=0
 
virtual void ConvertHandedness ()=0
 
virtual void CopyCombine3Corners (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, rid src_id_3, real alpha_1, real alpha_2)=0
 
virtual void CopyCombine3Triangles (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, rid src_id_3, real alpha_1, real alpha_2)=0
 
virtual SGDEPRECATED void CopyCombine3TriangleVertices (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, rid src_id_3, real alpha_1, real alpha_2)=0
 
virtual void CopyCombine3Vertices (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, rid src_id_3, real alpha_1, real alpha_2)=0
 
virtual void CopyCombineCorners (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, real alpha)=0
 
virtual void CopyCombineTriangles (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, real alpha)=0
 
virtual SGDEPRECATED void CopyCombineTriangleVertices (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, real alpha)=0
 
virtual void CopyCombineVertices (IGeometryData *source, rid dest_id, rid src_id_1, rid src_id_2, real alpha)=0
 
virtual void CopyCorner (IGeometryData *source, rid dest_id, rid src_id)=0
 
virtual void CopyTriangle (IGeometryData *source, rid dest_id, rid src_id)=0
 
virtual SGDEPRECATED void CopyTriangleVertex (IGeometryData *source, rid dest_id, rid src_id)=0
 
virtual void CopyVertex (IGeometryData *source, rid dest_id, rid src_id)=0
 
virtual void DeepCopy (IGeometryData *source, bool copy_data)=0
 
virtual void DetectEdgeNeighbours ()=0
 
virtual void ExpandVertices ()=0
 
virtual bool ExtentsContainCoords ()=0
 
virtual void ExtractRange (IGeometryData *dest, rid start_tri_id, unsigned int count)=0
 
virtual void ExtractTriangles (IGeometryData *dest, IRidArray *triangle_ids)=0
 
virtual void FindEdgeIdsFromVertexPairs (IRidArray *vertex_pairs, IRidArray *edge_ids)=0
 
virtual rid FindNamedColorsIndex (const char *field_name)=0
 
virtual rid FindNamedTexCoordsIndex (const char *field_name)=0
 
virtual CountedPointer< IRealArrayGetBitangents (rid level)=0
 
virtual CountedPointer< IRidArrayGetBoneIds ()=0
 
virtual CountedPointer< IRealArrayGetBoneWeights ()=0
 
virtual const char * GetClass ()
 
virtual CountedPointer< IRealArrayGetColors (rid level)=0
 
virtual CountedPointer< IRealArrayGetCoords ()=0
 
virtual CountedPointer< IFieldDataGetCorners ()=0
 
virtual CountedPointer< IValueArrayGetCustomField (const char *name)=0
 
virtual SGDEPRECATED CountedPointer< IRealArrayGetDiffuseColors ()=0
 
virtual CountedPointer< IRidArrayGetGroupIds ()=0
 
virtual void GetInf (real *realReturnDataPtr)=0
 
virtual CountedPointer< IRidArrayGetMaterialIds ()=0
 
virtual CountedPointer< IRealArrayGetNamedColors (const char *alternative_name)=0
 
virtual CountedPointer< IRealArrayGetNamedTexCoords (const char *alternative_name)=0
 
virtual CountedPointer< IRealArrayGetNormals ()=0
 
virtual SGDEPRECATED CountedPointer< IRealArrayGetSpecularColors ()=0
 
virtual void GetSup (real *realReturnDataPtr)=0
 
virtual CountedPointer< IRealArrayGetTangents (rid level)=0
 
virtual CountedPointer< IRealArrayGetTexCoords (rid level)=0
 
virtual unsigned int GetTriangleCount ()=0
 
virtual CountedPointer< IFieldDataGetTriangles ()=0
 
virtual SGDEPRECATED CountedPointer< IFieldDataGetTriangleVertices ()=0
 
virtual CountedPointer< IValueArrayGetUserCornerField (const char *name)=0
 
virtual CountedPointer< IValueArrayGetUserTriangleField (const char *name)=0
 
virtual SGDEPRECATED CountedPointer< IValueArrayGetUserTriangleVertexField (const char *name)=0
 
virtual CountedPointer< IValueArrayGetUserVertexField (const char *name)=0
 
virtual unsigned int GetVertexCount ()=0
 
virtual CountedPointer< IRidArrayGetVertexIds ()=0
 
virtual CountedPointer< IBoolArrayGetVertexLocks ()=0
 
virtual CountedPointer< IRealArrayGetVertexWeighting ()=0
 
virtual CountedPointer< IFieldDataGetVertices ()=0
 
virtual bool IsA (const char *type) const
 
virtual CountedPointer< IGeometryDataNewCopy (bool copy_data)=0
 
virtual CountedPointer< IPackedGeometryDataNewPackedCopy ()=0
 
virtual SGDEPRECATED void RemoveBitangents (rid level)=0
 
virtual SGDEPRECATED void RemoveBoneIds ()=0
 
virtual void RemoveBoneWeights ()=0
 
virtual void RemoveColors (rid level)=0
 
virtual void RemoveCustomField (const char *name)=0
 
virtual SGDEPRECATED void RemoveDiffuseColors ()=0
 
virtual void RemoveGroupIds ()=0
 
virtual void RemoveMaterialIds ()=0
 
virtual bool RemoveNamedColors (const char *alternative_name)=0
 
virtual bool RemoveNamedTexCoords (const char *alternative_name)=0
 
virtual void RemoveNormals ()=0
 
virtual SGDEPRECATED void RemoveSpecularColors ()=0
 
virtual void RemoveTangents (rid level)=0
 
virtual void RemoveTexCoords (rid level)=0
 
virtual void RemoveUserCornerField (const char *name)=0
 
virtual void RemoveUserTriangleField (const char *name)=0
 
virtual SGDEPRECATED void RemoveUserTriangleVertexField (const char *name)=0
 
virtual void RemoveUserVertexField (const char *name)=0
 
virtual void RemoveVertexLocks ()=0
 
virtual void RemoveVertexWeighting ()=0
 
virtual void SetInf (const real *vec_realInputDataPtr)=0
 
virtual void SetSup (const real *vec_realInputDataPtr)=0
 
virtual void SetTriangleCount (unsigned int count)=0
 
virtual void SetVertexCount (unsigned int count)=0
 
virtual void Transform (IMatrix4x4 *transformation)=0
 
virtual void Weld (real threshold)=0
 
- Public Member Functions inherited from SimplygonSDK::IObject
virtual rid AddObserver (robserver *Observer, rid EventId)=0
 
virtual void AddRef ()=0
 
virtual rstring GetName ()=0
 
virtual void * GetUserComponentArea (rid userid)=0
 
virtual void PrintInfo ()=0
 
virtual void Release ()=0
 
virtual void RemoveObserver (rid ObserverId)=0
 
virtual void SetName (const char *Name)=0
 

Static Public Member Functions

static bool IsClassA (const char *type)
 
static IGeometryDataSafeCast (IObject *ptr)
 
- Static Public Member Functions inherited from SimplygonSDK::IObject
static bool IsClassA (const char *type)
 
static IObjectSafeCast (IObject *ptr)
 

Detailed Description

IGeometryData represents a geometric structure consisting of point data (Vertices) and topological data (Triangles). IGeometryData may represent a whole geometric object, but can also be used by streaming data filters, and in this way, only represents a part of the object.

Different fields in the Vertices and Triangles fields data objects will contain point data and topological data. The standard naming convention used in the filters/renderers are as follows: (Case sensitive naming, other fields may also be present)

'Coords'
Positional coordinates of a vertex, expressed with a 3-component real field (XYZ).

'TexCoords0' - 'TexCoords255'
Texture coordinates of a vertex, expressed with a 2 components real field. By convention, the existing fields must be sequential, and must start with 'TexCoord0'.

'Normals'
Normal vector for the vertex, expressed with a 3-component real field, a normalized (XYZ) vector.

'VertexIds'
The id of the primitive's current vertex. This field is present even if the vertex data is directly specified in the primitive's data, to specify topology. The field is of type rid.

'MaterialIds'
The material of the primitive. The field is of type rid.

The 'Coords' and 'VertexIds' fields always exist in the object, but the other fields are optional. Also, there can exist user fields.

Definition at line 5065 of file SimplygonSDK.h.

Member Function Documentation

◆ AddBaseTypeCustomField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::AddBaseTypeCustomField ( rid  base_type,
const char *  name,
unsigned int  tuple_size 
)
pure virtual

Adds an empty custom field. To be able to add a field, it must have a name that does not conflict with the existing custom fields.

Parameters
base_typethe base_type of the new custom field, data types are listed in SimplygonSDK::BaseTypes
namethe name of the new custom field
tuple_sizethe tuple size of the new custom field, defaults to 1 if not specified
Returns
pointer to the created field

◆ AddBaseTypeUserCornerField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::AddBaseTypeUserCornerField ( rid  base_type,
const char *  name,
unsigned int  tuple_size 
)
pure virtual

Adds an empty user-specified corner field.

Parameters
base_typespecifies the base type of the new corner field, data types are listed in SimplygonSDK::BaseTypes
namethe name of the field to add
tuple_sizethe tuple size of the new field, defaults to 1 if not specified
Returns
pointer to the created field

◆ AddBaseTypeUserTriangleField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::AddBaseTypeUserTriangleField ( rid  base_type,
const char *  name,
unsigned int  tuple_size 
)
pure virtual

Adds an empty user-specified triangle field.

Parameters
base_typethe base_type of the new user triangle field, data types are listed in SimplygonSDK::BaseTypes
namethe name of the triangle field to add to the IGeometryData object
tuple_sizethe tuple size of the new field, deafaults to 1 if not specified
Returns
pointer to the newly created triangle field

◆ AddBaseTypeUserTriangleVertexField()

virtual SGDEPRECATED CountedPointer<IValueArray> SimplygonSDK::IGeometryData::AddBaseTypeUserTriangleVertexField ( rid  base_type,
const char *  name,
unsigned int  tuple_size 
)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddBaseTypeUserCornerField() instead. AddBaseTypeUserTriangleVertexField() has been renamed AddBaseTypeUserCornerField()
Parameters
base_typethe base_type of the new custom field, data types are listed in SimplygonSDK::BaseTypes
namethe name of the new custom field
tuple_sizethe tuple size of the new custom field, defaults to 1 if not specified

◆ AddBaseTypeUserVertexField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::AddBaseTypeUserVertexField ( rid  base_type,
const char *  name,
unsigned int  tuple_size 
)
pure virtual

Adds a user-specified vertex field. To be able to add a field, it must have a name that does not conflict with the existing vertex fields.

Parameters
base_typethe BaseType of the new user field, data types are listed in SimplygonSDK::BaseTypes
namethe name of the new user field
tuple_sizethe tuple size of the new user field, defaults to 1 if not specified
Returns
pointer to the created array

◆ AddBitangents()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::AddBitangents ( rid  level)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddTangents() instead. Bitangents are Added and Removed in unison with Tangents. Only need to call AddTangents to add both Tangent and Bitangent fields, and RemoveTangents to remove both fields. Use GetBitangents to retrieve the bitangent field.
Parameters
levelthe level of the new field

◆ AddBoneIds()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::AddBoneIds ( unsigned int  tuplesize)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddBoneWeights() instead. Function is empty, does now nothing. BoneIds are added/removed when AddBoneWeights()/RemoveBoneWeights() is called.
Parameters
tuplesizethe number of bones allowed per vertex.

◆ AddBoneWeights()

virtual void SimplygonSDK::IGeometryData::AddBoneWeights ( unsigned int  tuplesize)
pure virtual

Adds the BoneWeights and BoneIds fields in the vertices. The BoneWeights and BoneIds fields are added and removed in unison, and should always be the same tuple size. (Field names: "BoneWeights" & "BoneIds", Tuple size: varying , Stored as: Vertex attribute)

Parameters
tuplesizethe number of bones allowed per vertex

◆ AddColors()

virtual void SimplygonSDK::IGeometryData::AddColors ( rid  level)
pure virtual

Adds a Color field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'Colors0' - 'Colors255'
(Field name: "Colors0"

  • "Colors255", Tuple size: 4 , Stored as: Corner attribute)
    Parameters
    levelthe color level (0-255)

◆ AddCustomField()

virtual void SimplygonSDK::IGeometryData::AddCustomField ( IValueArray field)
pure virtual

Adds a custom field. To be able to add a field, it must have a name that does not conflict with the existing custom fields.

Parameters
fieldthe custom field to add to the IGeometryData object

◆ AddDiffuseColors()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::AddDiffuseColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddColors() instead. DiffuseColors is now an alias for 'Colors0'

◆ AddGroupIds()

virtual void SimplygonSDK::IGeometryData::AddGroupIds ( )
pure virtual

Adds the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)

◆ AddMaterialIds()

virtual void SimplygonSDK::IGeometryData::AddMaterialIds ( )
pure virtual

Adds the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)

◆ AddNamedColors()

virtual rid SimplygonSDK::IGeometryData::AddNamedColors ( const char *  alternative_name)
pure virtual

Adds a named Color field in the corners.
(Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)

Parameters
alternative_namethe named color channel "Colors0" - "Colors255"

◆ AddNamedTexCoords()

virtual rid SimplygonSDK::IGeometryData::AddNamedTexCoords ( const char *  alternative_name)
pure virtual

Adds a named TexCoords field in the corners.
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)

Parameters
alternative_namethe name of the texcoord level i.e 'TexCoord0'

◆ AddNormals()

virtual void SimplygonSDK::IGeometryData::AddNormals ( )
pure virtual

Adds the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)

◆ AddSpecularColors()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::AddSpecularColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddColors() instead. SpecularColors is now an alias for 'Colors1'

◆ AddTangents()

virtual void SimplygonSDK::IGeometryData::AddTangents ( rid  level)
pure virtual

Adds Tangents and Bitangents fields in the corners. The valid id range of the level parameter is 0-255.
(Field names: "Tangents0" - "Tangents255" & "Bitangents0"

  • "Bitangents255", Tuple size: 3 , Stored as: Corner attribute)
    Parameters
    levelthe texture channel

◆ AddTexCoords()

virtual void SimplygonSDK::IGeometryData::AddTexCoords ( rid  level)
pure virtual

Adds a TexCoords field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'TexCoords0' - 'TexCoords255'
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)

Parameters
levelthe id of the texture field to add

◆ AddTriangles()

virtual void SimplygonSDK::IGeometryData::AddTriangles ( unsigned int  count)
pure virtual

AddTriangles increases the triangle count by the specified value.

Parameters
countthe number of new triangles to add

◆ AddUserCornerField()

virtual void SimplygonSDK::IGeometryData::AddUserCornerField ( IValueArray field)
pure virtual

Adds a user-specified corner field. To be able to add a field, it must have a name that does not conflict with the existing corner fields.

Parameters
fieldthe field to add into the IGeometryData object

◆ AddUserTriangleField()

virtual void SimplygonSDK::IGeometryData::AddUserTriangleField ( IValueArray field)
pure virtual

Adds a user-specified triangle field. To be able to add a field, it must have a name that does not conflict with the existing triangle fields.

Parameters
fieldthe triangle field to add to the IGeometryData object

◆ AddUserTriangleVertexField()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::AddUserTriangleVertexField ( IValueArray field)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use AddUserCornerField() instead. AddUserTriangleVertexField() is renamed AddUserCornerField() RemoveUserTriangleVertexField() is renamed RemoveUserCornerField() GetUserTriangleVertexField is renamed GetUserCornerField()
Parameters
fieldthe field to add into the IGeometryData object

◆ AddUserVertexField()

virtual void SimplygonSDK::IGeometryData::AddUserVertexField ( IValueArray field)
pure virtual

Adds a user-specified vertex field. To be able to add a field, it must have a name that does not conflict with the existing vertex fields.

Parameters
fieldthe field to add to this IGeometryData object

◆ AddVertexLocks()

virtual void SimplygonSDK::IGeometryData::AddVertexLocks ( )
pure virtual

Adds the VertexLocks field for the vertices. If the value for a vertex is true, then the vertex should be locked, and not be removed in the collapse-process. (Field name: "VertexLocks", Tuple size: 1 , Stored as: Vertex attribute)

◆ AddVertexWeighting()

virtual void SimplygonSDK::IGeometryData::AddVertexWeighting ( )
pure virtual

Adds the VertexWeighting field for the vertices. The weights are used to determine how important it is to keep the vertices when the geometry is reduced. 1 means the weight won't change the importance, values closer to 0 means it will be less important, values > 1 means the vertex is more important and less probable to be removed. (Field name: "VertexWeighting", Tuple size: 1 , Stored as: Vertex attribute)

◆ AddVertices()

virtual void SimplygonSDK::IGeometryData::AddVertices ( unsigned int  count)
pure virtual

Increases the vertex count by the specified value.

Parameters
countthe number of vertices to add

◆ AppendGeometry()

virtual void SimplygonSDK::IGeometryData::AppendGeometry ( IGeometryData source)
pure virtual

Appends the geometry data to this geometry. This geometry will contain all triangles and vertices of both geometries. The VertexIds that are copied from the source are remapped to point at the vertices, which are appended to the end of the current vertices. Any field in the appended geometry that does not exist in this geometry will be added, with the tuples that are added set to 0. The method will fail if the source geometry has identically named fields, but with different tuple sizes or base types.

Parameters
sourcethe source geometry that will be appended to this geometry. the contents of source will not be modified.

◆ CalculateExtents()

virtual void SimplygonSDK::IGeometryData::CalculateExtents ( bool  only_triangles)
pure virtual

Calculate the extents by checking the coordinates of all vertices in the geometry. Set only_triangles to true to test only vertices that are indexed by a triangle. This is a slower test, and the bounding box may not encompass all vertices' positions. the new extents are found by calling GetInf() and GetSup() afterwards.

Parameters
only_trianglestrue if only vertices indexed by triangles should be checked, defaults to false if not specified

◆ ChangeWinding()

virtual void SimplygonSDK::IGeometryData::ChangeWinding ( )
pure virtual

Change winding

◆ CleanupInvalidTriangles()

virtual void SimplygonSDK::IGeometryData::CleanupInvalidTriangles ( )
pure virtual

Finds triangles that contain the same vertex more than once, and invalidates them, ie. sets all the vertex id references to -1. These triangles can be culled using Compact().

◆ CleanupNanValues()

virtual void SimplygonSDK::IGeometryData::CleanupNanValues ( )
pure virtual

Finds all Nan (1.#IND, 1.#INF etc) values in the real/float/double arrays in the GeometryData, and sets them to 0.0 just to make sure all numbers in the GeometryData are legit. Should not be needed if all the data loaded into the GeometryData object is ok to begin with...

◆ Compact() [1/2]

virtual void SimplygonSDK::IGeometryData::Compact ( )
pure virtual

Removes invalid triangles and vertices not referenced by any triangle. If any vertices are removed, the triangles will be remapped to the new compacted vertex field. Essentially calls Compact( false ), included for compatibility.

◆ Compact() [2/2]

virtual void SimplygonSDK::IGeometryData::Compact ( bool  only_compact_triangles)
pure virtual

Removes invalid triangles and vertices not referenced by any triangle. If any vertices are removed, the triangles will be remapped to the new compacted vertex field.

Parameters
only_compact_trianglesif true, no vertices will be removed.

◆ ConvertHandedness()

virtual void SimplygonSDK::IGeometryData::ConvertHandedness ( )
pure virtual

Converts the handedness of the triangle winding, coords, normals and texture coordinates of the geometry from left-handed to right-handed coordinate systems and vice versa. Simplygon generally uses right-handed coordinates, so this conversion needs to be done before processing any left-handed geometry

◆ CopyCombine3Corners()

virtual void SimplygonSDK::IGeometryData::CopyCombine3Corners ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
rid  src_id_3,
real  alpha_1,
real  alpha_2 
)
pure virtual

Combines three corners via barycentric coordinates.
alpha_3 = 1-(alpha_1

  • alpha_2)
    dest = src_1*alpha_1 + src_2*alpha_2 + src_3*alpha_3
    Parameters
    sourcethe IGeometryData object to combine from
    dest_idthe corner id to replace in this IGeometryData object
    src_id_1the first corner id to combine from
    src_id_2the second corner id to combine from
    src_id_3the third corner id to combine from
    alpha_1the first interpolation value
    alpha_2the second interpolation value

◆ CopyCombine3Triangles()

virtual void SimplygonSDK::IGeometryData::CopyCombine3Triangles ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
rid  src_id_3,
real  alpha_1,
real  alpha_2 
)
pure virtual

combines the fields of three triangles via barycentric coordinates.
alpha_3 = 1-(alpha_1 + alpha_2)
dest = src_1*alpha_1 + src_2*alpha_2 + src_3*alpha_3

Parameters
sourcethe IGeometryData object to combine from
dest_idthe triangle id to replace in this IGeometryData object
src_id_1the first triangle id to combine from
src_id_2the second triangle id to combine from
src_id_3the third triangle id to combine from
alpha_1the first interpolation value
alpha_2the second interpolation value

◆ CopyCombine3TriangleVertices()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::CopyCombine3TriangleVertices ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
rid  src_id_3,
real  alpha_1,
real  alpha_2 
)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use CopyCombine3Corners() instead. CopyTriangleVertex() is renamed CopyCorner() CopyCombineTriangleVertices() is renamed CopyCombineCorners() CopyCombine3TriangleVertices() is renamed CopyCombine3Corners()
Parameters
sourcethe IGeometryData object to combine from
dest_idthe corner id to replace in this IGeometryData object
src_id_1the first corner id to combine from
src_id_2the second corner id to combine from
src_id_3the third corner id to combine from
alpha_1the first interpolation value
alpha_2the second interpolation value

◆ CopyCombine3Vertices()

virtual void SimplygonSDK::IGeometryData::CopyCombine3Vertices ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
rid  src_id_3,
real  alpha_1,
real  alpha_2 
)
pure virtual

combines the fields of three vertices via barycentric coordinates.
alpha_3 = 1-(alpha_1 + alpha_2)
dest = src_1*alpha_1 + src_2*alpha_2 + src_3*alpha_3

Parameters
sourcethe IGeometryData object to combine from
dest_idthe vertex id to replace in this IGeometryData object
src_id_1the first vertex id to combine from
src_id_2the second vertex id to combine from
src_id_3the third vertex id to combine from
alpha_1the first interpolation value
alpha_2the first interpolation value

◆ CopyCombineCorners()

virtual void SimplygonSDK::IGeometryData::CopyCombineCorners ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
real  alpha 
)
pure virtual

combines the fields of two corners by linear interpolation into the destination corner.

Parameters
sourcethe IGeometryData object to combine from
dest_idthe corner id to replace in this IGeometryData object
src_id_1the first corner id to combine from
src_id_2the second corner id to combine from
alphathe interpolation value between 0 and 1

◆ CopyCombineTriangles()

virtual void SimplygonSDK::IGeometryData::CopyCombineTriangles ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
real  alpha 
)
pure virtual

combines the fields of two triangles by linear interpolation into the destination triangle.

Parameters
sourcethe IGeometryData object to combine from
dest_idthe triangle id to replace in this IGeometryData object
src_id_1the first triangle id to combine from
src_id_2the second triangle id to combine from
alphathe interpolation value between 0 and 1

◆ CopyCombineTriangleVertices()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::CopyCombineTriangleVertices ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
real  alpha 
)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use CopyCombineCorners() instead. CopyTriangleVertex() is renamed CopyCorner() CopyCombineTriangleVertices() is renamed CopyCombineCorners() CopyCombine3TriangleVertices() is renamed CopyCombine3Corners()
Parameters
sourcethe IGeometryData object to combine from
dest_idthe corner id to replace in this IGeometryData object
src_id_1the first corner id to combine from
src_id_2the second corner id to combine from
alphathe interpolation value between 0 and 1

◆ CopyCombineVertices()

virtual void SimplygonSDK::IGeometryData::CopyCombineVertices ( IGeometryData source,
rid  dest_id,
rid  src_id_1,
rid  src_id_2,
real  alpha 
)
pure virtual

combines the fields of two vertices by linear interpolation into the destination vertex.

Parameters
sourcethe IGeometryData object to combine from
dest_idthe vertex id to replace in this IGeometryData object
src_id_1the first vertex id to combine from
src_id_2the second vertex id to combine from
alphathe interpolation value between 0 and 1

◆ CopyCorner()

virtual void SimplygonSDK::IGeometryData::CopyCorner ( IGeometryData source,
rid  dest_id,
rid  src_id 
)
pure virtual

Copies all fields in the specified corner in the source geometry to this geometry's corner.

Parameters
sourcethe IGeometryData object to copy from
dest_idthe vertex id to replace in this IGeometryData object
src_idthe id of the vertex to copy

◆ CopyTriangle()

virtual void SimplygonSDK::IGeometryData::CopyTriangle ( IGeometryData source,
rid  dest_id,
rid  src_id 
)
pure virtual

Copies all fields in the specified triangle in the source geometry to this geometry's triangle.

Parameters
sourcethe IGeometryData object to copy from
dest_idthe triangle id to replace in this IGeometryData object
src_idthe id of the triangle to copy

◆ CopyTriangleVertex()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::CopyTriangleVertex ( IGeometryData source,
rid  dest_id,
rid  src_id 
)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use CopyCorner() instead. CopyTriangleVertex() is renamed CopyCorner() CopyCombineTriangleVertices() is renamed CopyCombineCorners() CopyCombine3TriangleVertices() is renamed CopyCombine3Corners()
Parameters
sourcethe IGeometryData object to copy from
dest_idthe triangle id to replace in this IGeometryData object
src_idthe id of the triangle to copy

◆ CopyVertex()

virtual void SimplygonSDK::IGeometryData::CopyVertex ( IGeometryData source,
rid  dest_id,
rid  src_id 
)
pure virtual

Copies all fields in the specified vertex in the source geometry to this geometry's vertex.

Parameters
sourcethe IGeometryData object to copy from
dest_idthe vertex id to replace in this IGeometryData object
src_idthe id of the vertex to copy

◆ DeepCopy()

virtual void SimplygonSDK::IGeometryData::DeepCopy ( IGeometryData source,
bool  copy_data 
)
pure virtual

Copies the field setup and data from another object into this object. To only copy the setup, set copy_data to false.

Parameters
sourcethe IGeometryData object to copy from
copy_dataif true, copies the data along with the IGeometryData properties

◆ DetectEdgeNeighbours()

virtual void SimplygonSDK::IGeometryData::DetectEdgeNeighbours ( )
pure virtual

Detect triangle edge neighbors. Neighbor ids are stored in the "SgEdgeNeighbours" Corner field.

◆ ExpandVertices()

virtual void SimplygonSDK::IGeometryData::ExpandVertices ( )
pure virtual

Expands the Vertices field data so that there exists one vertex for each of the three corners of each triangle in the geometry. The vertices will be organized identical to the Corners field. The triangles will be remapped to use the new vertices correctly. Expanding the vertex field is required to be able to extract a range of the geometry, and to be able to stream it. Note! This will lead to increased memory requirement, as vertex data is not shared among neigbouring triangles. It also removes the connectivity information of the triangles, and effectively detaches all triangles from one another. This call may replace fields in the Vertices field data. Requery any previously cached field pointer after the call. All user fields are copied as well.

◆ ExtentsContainCoords()

virtual bool SimplygonSDK::IGeometryData::ExtentsContainCoords ( )
pure virtual

Tests if the extents of the geometry fully contain all vertex coordinates. Note! ExtentsContainCoords() checks all vertices in the geometry, regardless to whether the vertex is referenced by any triangle. Use Compact() to remove any non-referenced vertex before calling ExtentsContainCoords.

Returns
true if geometry fully contain all vertex coordinates

◆ ExtractRange()

virtual void SimplygonSDK::IGeometryData::ExtractRange ( IGeometryData dest,
rid  start_tri_id,
unsigned int  count 
)
pure virtual

Extracts a range of triangles with their vertices from the geometry. ExpandVertices() must first be called for the extraction to succeed. ExtractGeometry() can be used to stream geometries in chunks. If writing to a stream, the extracted geometry is guaranteed to have the same setup as the original. Any previous data in the destination will be deleted.

Parameters
destthe IGeometryData object that is written to
start_tri_idthe first triangle to be extracted
countthe number of triangles to extract

◆ ExtractTriangles()

virtual void SimplygonSDK::IGeometryData::ExtractTriangles ( IGeometryData dest,
IRidArray triangle_ids 
)
pure virtual

Extracts specified triangles from the geometry. The destination geometry will contain the triangles and vertices. The vertices in the destination will be expanded so that there exists one vertex for each of the three corners of each triangle in the geometry.

Parameters
destthe IGeometryData object that is written to
triangle_idsthe list of triangles indices to extract

◆ FindEdgeIdsFromVertexPairs()

virtual void SimplygonSDK::IGeometryData::FindEdgeIdsFromVertexPairs ( IRidArray vertex_pairs,
IRidArray edge_ids 
)
pure virtual

Each tuple in the "vertex_pairs" array contains the start-vertex and end-vertex of a half-edge in the geometry. If a half-edge is found from a tuple in the "vertex_pairs" array, the edge-id of that half-edge will be stored in the edge_ids array. Do note: the half-edges are directed, so if you want all half-edges that contains 2 vertices, you need to add the tuple twice. O

Parameters
vertex_pairsis an array with tuplesize 2, which contains start and end-vertex of the edges you want to find.
edge_idswill contain all edge-ids that were found from the vertex-pairs. The function will replace all previous data in this array.

◆ FindNamedColorsIndex()

virtual rid SimplygonSDK::IGeometryData::FindNamedColorsIndex ( const char *  field_name)
pure virtual

Returns the level index of the colors field with the name returns -1 if not found

Parameters
field_namethe named Colors field to be fetched
Returns
the index of the field

◆ FindNamedTexCoordsIndex()

virtual rid SimplygonSDK::IGeometryData::FindNamedTexCoordsIndex ( const char *  field_name)
pure virtual

Returns the level index of the texcoord field with the name returns -1 if not found

Parameters
field_namethe named TexCoord field to be fetched
Returns
the index of the field

◆ GetBitangents()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetBitangents ( rid  level)
pure virtual

Gets a Bitangents field in the corners. The valid id range of the level parameter is 0-255.
(Field name: "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Corner attribute)

Parameters
levelthe texture channel
Returns
the bi-tangent field for the selected texture channel

◆ GetBoneIds()

virtual CountedPointer<IRidArray> SimplygonSDK::IGeometryData::GetBoneIds ( )
pure virtual

Gets the BoneIds fields in the vertices. (Field name: "BoneIds", Tuple size: varying , Stored as: Vertex attribute)

Returns
the array containing the bone ids, i.e the bones per vertex that affects them

◆ GetBoneWeights()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetBoneWeights ( )
pure virtual

Gets the BoneWeights field in the vertices. (Field name: "BoneWeights", Tuple size: varying , Stored as: Vertex attribute)

Returns
the array containing the bone weights

◆ GetClass()

virtual const char* SimplygonSDK::IGeometryData::GetClass ( )
virtual

GetClass returns the name of the class of the object.

Returns
the name of the actual class of the object, as a const char string

Reimplemented from SimplygonSDK::IObject.

◆ GetColors()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetColors ( rid  level)
pure virtual

Gets a Color field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'Colors0' - 'Colors255'
(Field name: "Colors0"

  • "Colors255", Tuple size: 4 , Stored as: Corner attribute)
    Parameters
    levelthe color level (0-255)
    Returns
    the color field

◆ GetCoords()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetCoords ( )
pure virtual

Gets the Coords field in the vertices. (Field name: "Coords", Tuple size: 3 , Stored as: Vertex attribute)

Returns
the array of coords

◆ GetCorners()

virtual CountedPointer<IFieldData> SimplygonSDK::IGeometryData::GetCorners ( )
pure virtual

Retrieves the IFieldData object that contains the corner fields

Returns
the corner IFieldData

◆ GetCustomField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::GetCustomField ( const char *  name)
pure virtual

Gets a custom field.

Parameters
namethe name of the custom field to get from the IGeometryData object
Returns
the requested custom field

◆ GetDiffuseColors()

virtual SGDEPRECATED CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetDiffuseColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use GetColors() instead. DiffuseColors is now an alias for 'Colors0'

◆ GetGroupIds()

virtual CountedPointer<IRidArray> SimplygonSDK::IGeometryData::GetGroupIds ( )
pure virtual

Gets the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)

◆ GetInf()

virtual void SimplygonSDK::IGeometryData::GetInf ( real realReturnDataPtr)
pure virtual

Get the inferior (minimum) extent of the geometry

Parameters
realReturnDataPtrpointer to a user-provided data area to receive the return value. Note! Needs to be at least 3 elements in size

◆ GetMaterialIds()

virtual CountedPointer<IRidArray> SimplygonSDK::IGeometryData::GetMaterialIds ( )
pure virtual

Gets the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)

Returns
The MaterialIds field

◆ GetNamedColors()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetNamedColors ( const char *  alternative_name)
pure virtual

Gets a Color field, using the alternative name instead of the index

Parameters
alternative_namethe alternative name of the field.
Returns
the requested field, if it was found, or null if not

◆ GetNamedTexCoords()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetNamedTexCoords ( const char *  alternative_name)
pure virtual

Gets a TexCoords field, using the alternative name instead of the index

Parameters
alternative_namethe alternative name of the field.
Returns
the requested field, if it was found, or null if not

◆ GetNormals()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetNormals ( )
pure virtual

Gets the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)

Returns
the normals field

◆ GetSpecularColors()

virtual SGDEPRECATED CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetSpecularColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use GetColors() instead. SpecularColors is now an alias for 'Colors1'

◆ GetSup()

virtual void SimplygonSDK::IGeometryData::GetSup ( real realReturnDataPtr)
pure virtual

Get the superior (maximum) extent of the geometry

Parameters
realReturnDataPtrpointer to a user-provided data area to receive the return value. Note! Needs to be at least 3 elements in size

◆ GetTangents()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetTangents ( rid  level)
pure virtual

Gets a Tangents field in the corners. The valid id range of the level parameter is 0-255.
(Field name: "Tangents0" - "Tangents255", Tuple size: 3 , Stored as: Corner attribute)

Parameters
levelthe texture channel
Returns
the tangent field for the selected texture channel

◆ GetTexCoords()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetTexCoords ( rid  level)
pure virtual

Gets a TexCoords field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'TexCoords0' - 'TexCoords255'
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)

Parameters
levelthe id of the texture field to get
Returns
the requested field

◆ GetTriangleCount()

virtual unsigned int SimplygonSDK::IGeometryData::GetTriangleCount ( )
pure virtual

Gets the number of triangles in the geometry. The number of corners is always set to (TriangleCount*3), so there is no specific method to set the number of corners.

Returns
the number of

◆ GetTriangles()

virtual CountedPointer<IFieldData> SimplygonSDK::IGeometryData::GetTriangles ( )
pure virtual

Retrieves the IFieldData object that contains the triangle fields

Returns
the triangle field data object

◆ GetTriangleVertices()

virtual SGDEPRECATED CountedPointer<IFieldData> SimplygonSDK::IGeometryData::GetTriangleVertices ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use GetCorners() instead. GetTriangleVertices() is renamed GetCorners()

◆ GetUserCornerField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::GetUserCornerField ( const char *  name)
pure virtual

Gets a user-specified corner field.

Parameters
namethe name of the field to get
Returns
the requested field

◆ GetUserTriangleField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::GetUserTriangleField ( const char *  name)
pure virtual

Gets a user-specified triangle field.

Parameters
namethe name of the triangle field to get from the IGeometryData object
Returns
the requested triangle field

◆ GetUserTriangleVertexField()

virtual SGDEPRECATED CountedPointer<IValueArray> SimplygonSDK::IGeometryData::GetUserTriangleVertexField ( const char *  name)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use GetUserCornerField() instead. AddUserTriangleVertexField() is renamed AddUserCornerField() RemoveUserTriangleVertexField() is renamed RemoveUserCornerField() GetUserTriangleVertexField is renamed GetUserCornerField()
Parameters
namethe name of the user triangle field to fetch from the IGeometryData object

◆ GetUserVertexField()

virtual CountedPointer<IValueArray> SimplygonSDK::IGeometryData::GetUserVertexField ( const char *  name)
pure virtual

Gets a user-specified vertex field.

Parameters
namethe name of the user vertex field to be fetched from the IGeometryData object
Returns
the requested user-specified vertex field

◆ GetVertexCount()

virtual unsigned int SimplygonSDK::IGeometryData::GetVertexCount ( )
pure virtual

Gets the number of vertices in the geometry.

Returns
the vertex count

◆ GetVertexIds()

virtual CountedPointer<IRidArray> SimplygonSDK::IGeometryData::GetVertexIds ( )
pure virtual

Gets the VertexIds field in the corners.

Returns
the VertexIds field

◆ GetVertexLocks()

virtual CountedPointer<IBoolArray> SimplygonSDK::IGeometryData::GetVertexLocks ( )
pure virtual

Gets the VertexLocks field for the vertices. If the value for a vertex is true, then the vertex should be locked, and not be removed in the collapse-process. (Field name: "VertexLocks", Tuple size: 1 , Stored as: Vertex attribute)

◆ GetVertexWeighting()

virtual CountedPointer<IRealArray> SimplygonSDK::IGeometryData::GetVertexWeighting ( )
pure virtual

Gets the VertexWeighting field for the vertices. The weights are used to determine how important it is to keep the vertices when the geometry is reduced. 1 means the weight won't change the importance, values closer to 0 means it will be less important, values > 1 means the vertex is more important and less probable to be removed. (Field name: "VertexWeighting", Tuple size: 1 , Stored as: Vertex attribute)

Returns
the array of vertex weights

◆ GetVertices()

virtual CountedPointer<IFieldData> SimplygonSDK::IGeometryData::GetVertices ( )
pure virtual

Retrieves the IFieldData object that contains the vertex fields.

Returns
the vertex fields

◆ IsA()

virtual bool SimplygonSDK::IGeometryData::IsA ( const char *  type) const
virtual

The IsA function returns true if the object is a or is a descendant of the class named as the type parameter

Parameters
typeis the name of the class to check if the object is, or is a descendant of
Returns
true if the object is of the specified class, false if not

Reimplemented from SimplygonSDK::IObject.

◆ IsClassA()

static bool SimplygonSDK::IGeometryData::IsClassA ( const char *  type)
inlinestatic

The IsClassA function returns true if IGeometryData is a or is a descendant of the class named as the type parameter

Parameters
typeis the name of the class to check if the class is, or is a descendant of
Returns
true if the class is of the specified class, false if not

Definition at line 5086 of file SimplygonSDK.h.

◆ NewCopy()

virtual CountedPointer<IGeometryData> SimplygonSDK::IGeometryData::NewCopy ( bool  copy_data)
pure virtual

Creates another geometry data object with the same field setup. To also copy the data to the new object, set copy_data to true.

Parameters
copy_dataif true, copies the data along with the IGeometryData properties
Returns
the new geometry data object

◆ NewPackedCopy()

virtual CountedPointer<IPackedGeometryData> SimplygonSDK::IGeometryData::NewPackedCopy ( )
pure virtual

Creates a "packed" IPackedGeometryData object, where all fields in the Corner field data object is moved to the vertex field data object. Please note that the vertex field data object will be enlarged to accommodate for data in a vertex shared by multiple triangles, where the corner data differs between the triangles. The method will fail if a Corner field is named the same as an existing Vertices field, please make sure to remove any such field before calling the method.

Returns
the new IPackedGeometryData object

◆ RemoveBitangents()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::RemoveBitangents ( rid  level)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use RemoveTangents() instead. Bitangents are Added and Removed in unison with Tangents. Only need to call AddTangents to add both Tangent and Bitangent fields, and RemoveTangents to remove both fields. Use GetBitangents to retrieve the bitangent field.
Parameters
levelthe level of the field to be removed

◆ RemoveBoneIds()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::RemoveBoneIds ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use RemoveBoneWeights() instead. Function is empty, does now nothing. BoneIds are added/removed when AddBoneWeights()/RemoveBoneWeights() is called.

◆ RemoveBoneWeights()

virtual void SimplygonSDK::IGeometryData::RemoveBoneWeights ( )
pure virtual

Removes the BoneWeights and BoneIds fields in the vertices. The BoneWeights and BoneIds fields are added and removed in unison, and should always be the same tuple size. (Field names: "BoneWeights" & "BoneIds", Tuple size: varying , Stored as: Vertex attribute)

◆ RemoveColors()

virtual void SimplygonSDK::IGeometryData::RemoveColors ( rid  level)
pure virtual

Removes a Color field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'Colors0' - 'Colors255'
(Field name: "Colors0"

  • "Colors255", Tuple size: 4 , Stored as: Corner attribute)
    Parameters
    levelthe color level (0-255)

◆ RemoveCustomField()

virtual void SimplygonSDK::IGeometryData::RemoveCustomField ( const char *  name)
pure virtual

Removes a custom field.

Parameters
namethe name of the custom field to remove from the IGeometryData object

◆ RemoveDiffuseColors()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::RemoveDiffuseColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use RemoveColors() instead. DiffuseColors is now an alias for 'Colors0'

◆ RemoveGroupIds()

virtual void SimplygonSDK::IGeometryData::RemoveGroupIds ( )
pure virtual

Removes the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)

◆ RemoveMaterialIds()

virtual void SimplygonSDK::IGeometryData::RemoveMaterialIds ( )
pure virtual

Removes the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)

◆ RemoveNamedColors()

virtual bool SimplygonSDK::IGeometryData::RemoveNamedColors ( const char *  alternative_name)
pure virtual

Removes a named Color field in the corners.
(Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)

Parameters
alternative_namethe named color channel "Colors0" - "Colors255"

◆ RemoveNamedTexCoords()

virtual bool SimplygonSDK::IGeometryData::RemoveNamedTexCoords ( const char *  alternative_name)
pure virtual

Removes a named TexCoords field in the corners. 'TexCoords0' - 'TexCoords255'
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)

Parameters
alternative_namethe name of the texcoord level i.e 'TexCoord0'

◆ RemoveNormals()

virtual void SimplygonSDK::IGeometryData::RemoveNormals ( )
pure virtual

Removes the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)

◆ RemoveSpecularColors()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::RemoveSpecularColors ( )
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use RemoveColors() instead. SpecularColors is now an alias for 'Colors1'

◆ RemoveTangents()

virtual void SimplygonSDK::IGeometryData::RemoveTangents ( rid  level)
pure virtual

Removes Tangents and Bitangents fields in the corners. The valid id range of the level parameter is 0-255.
(Field names: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Corner attribute)

Parameters
levelthe texture channel

◆ RemoveTexCoords()

virtual void SimplygonSDK::IGeometryData::RemoveTexCoords ( rid  level)
pure virtual

Removes a TexCoords field in the corners. The valid id range of the level parameter is 0-255, which equals fields 'TexCoords0' - 'TexCoords255'
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)

Parameters
levelthe id of the texture field to remove

◆ RemoveUserCornerField()

virtual void SimplygonSDK::IGeometryData::RemoveUserCornerField ( const char *  name)
pure virtual

Removes a user-specified corner field.

Parameters
namethe name of the field to remove from the IGeometryData object

◆ RemoveUserTriangleField()

virtual void SimplygonSDK::IGeometryData::RemoveUserTriangleField ( const char *  name)
pure virtual

Removes a user-specified triangle field.

Parameters
namethe name of the triangle field to remove from the IGeometryData object

◆ RemoveUserTriangleVertexField()

virtual SGDEPRECATED void SimplygonSDK::IGeometryData::RemoveUserTriangleVertexField ( const char *  name)
pure virtual
Deprecated:
Method is marked as deprecated and will be removed in future version. Use RemoveUserCornerField() instead. AddUserTriangleVertexField() is renamed AddUserCornerField() RemoveUserTriangleVertexField() is renamed RemoveUserCornerField() GetUserTriangleVertexField is renamed GetUserCornerField()
Parameters
namethe field to be removed from the IGeometryData object

◆ RemoveUserVertexField()

virtual void SimplygonSDK::IGeometryData::RemoveUserVertexField ( const char *  name)
pure virtual

Removes a user-specified vertex field.

Parameters
namethe name of the user vertex field to be removed from the IGeometryData object

◆ RemoveVertexLocks()

virtual void SimplygonSDK::IGeometryData::RemoveVertexLocks ( )
pure virtual

Removes the VertexLocks field for the vertices. If the value for a vertex is true, then the vertex should be locked, and not be removed in the collapse-process. (Field name: "VertexLocks", Tuple size: 1 , Stored as: Vertex attribute)

◆ RemoveVertexWeighting()

virtual void SimplygonSDK::IGeometryData::RemoveVertexWeighting ( )
pure virtual

Removes the VertexWeighting field for the vertices. The weights are used to determine how important it is to keep the vertices when the geometry is reduced. 1 means the weight won't change the importance, values closer to 0 means it will be less important, values > 1 means the vertex is more important and less probable to be removed. (Field name: "VertexWeighting", Tuple size: 1 , Stored as: Vertex attribute)

◆ SafeCast()

static IGeometryData* SimplygonSDK::IGeometryData::SafeCast ( IObject ptr)
inlinestatic

SafeCast makes sure the pointer is of a class that can be cast into a IGeometryData pointer, and if this is possible, returns the cast pointer.

Parameters
ptris the pointer to be cast into a IGeometryData pointer
Returns
a pointer to the IGeometryData object, if the cast can be made, and a NULL pointer otherwise

Definition at line 5099 of file SimplygonSDK.h.

◆ SetInf()

virtual void SimplygonSDK::IGeometryData::SetInf ( const real vec_realInputDataPtr)
pure virtual

Set the inferior (minimum) extent of the geometry

Parameters
vec_realInputDataPtrthe new inferior

◆ SetSup()

virtual void SimplygonSDK::IGeometryData::SetSup ( const real vec_realInputDataPtr)
pure virtual

Set the superior (maximum) extent of the geometry

Parameters
vec_realInputDataPtrthe new superior

◆ SetTriangleCount()

virtual void SimplygonSDK::IGeometryData::SetTriangleCount ( unsigned int  count)
pure virtual

Sets the number of triangles in the geometry. The number of corners is always set to (TriangleCount*3), so there is no specific method to set the number of corners.

Parameters
countthe desired new triangle count Value cannot be less than 0. Value cannot be greater than INT_MAX.

◆ SetVertexCount()

virtual void SimplygonSDK::IGeometryData::SetVertexCount ( unsigned int  count)
pure virtual

Sets the number of vertices in the geometry.

Parameters
countthe desired new vertex count Value cannot be less than 0. Value cannot be greater than INT_MAX.

◆ Transform()

virtual void SimplygonSDK::IGeometryData::Transform ( IMatrix4x4 transformation)
pure virtual

Transforms the geometry using the supplied matrix transformation. The fields that are modified are the Coords field of Vertices, as well as the Normals and all Tangent and Bi-tangent fields of the Corners

Parameters
transformationthe 4x4 transformation as a IMatrix4x4

◆ Weld()

virtual void SimplygonSDK::IGeometryData::Weld ( real  threshold)
pure virtual

Welds all vertices in the geometry that are closer than the welding threshold. Non-referenced vertices will not be removed, only the vertex indices will be remapped. Call Compact() to clean up the geometry and free up memory.

Parameters
thresholdthe welding threshold distance

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