![]() |
Simplygon C++ API
8.3.35800.0
|
#include <SimplygonSDK.h>
Public Member Functions | |
virtual CountedPointer< IValueArray > | AddBaseTypeCustomField (rid base_type, const char *name, unsigned int tuple_size)=0 |
virtual CountedPointer< IValueArray > | AddBaseTypeUserCornerField (rid base_type, const char *name, unsigned int tuple_size)=0 |
virtual CountedPointer< IValueArray > | AddBaseTypeUserTriangleField (rid base_type, const char *name, unsigned int tuple_size)=0 |
virtual SGDEPRECATED CountedPointer< IValueArray > | AddBaseTypeUserTriangleVertexField (rid base_type, const char *name, unsigned int tuple_size)=0 |
virtual CountedPointer< IValueArray > | AddBaseTypeUserVertexField (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< IRealArray > | GetBitangents (rid level)=0 |
virtual CountedPointer< IRidArray > | GetBoneIds ()=0 |
virtual CountedPointer< IRealArray > | GetBoneWeights ()=0 |
virtual const char * | GetClass () |
virtual CountedPointer< IRealArray > | GetColors (rid level)=0 |
virtual CountedPointer< IRealArray > | GetCoords ()=0 |
virtual CountedPointer< IFieldData > | GetCorners ()=0 |
virtual CountedPointer< IValueArray > | GetCustomField (const char *name)=0 |
virtual SGDEPRECATED CountedPointer< IRealArray > | GetDiffuseColors ()=0 |
virtual CountedPointer< IRidArray > | GetGroupIds ()=0 |
virtual void | GetInf (real *realReturnDataPtr)=0 |
virtual CountedPointer< IRidArray > | GetMaterialIds ()=0 |
virtual CountedPointer< IRealArray > | GetNamedColors (const char *alternative_name)=0 |
virtual CountedPointer< IRealArray > | GetNamedTexCoords (const char *alternative_name)=0 |
virtual CountedPointer< IRealArray > | GetNormals ()=0 |
virtual SGDEPRECATED CountedPointer< IRealArray > | GetSpecularColors ()=0 |
virtual void | GetSup (real *realReturnDataPtr)=0 |
virtual CountedPointer< IRealArray > | GetTangents (rid level)=0 |
virtual CountedPointer< IRealArray > | GetTexCoords (rid level)=0 |
virtual unsigned int | GetTriangleCount ()=0 |
virtual CountedPointer< IFieldData > | GetTriangles ()=0 |
virtual SGDEPRECATED CountedPointer< IFieldData > | GetTriangleVertices ()=0 |
virtual CountedPointer< IValueArray > | GetUserCornerField (const char *name)=0 |
virtual CountedPointer< IValueArray > | GetUserTriangleField (const char *name)=0 |
virtual SGDEPRECATED CountedPointer< IValueArray > | GetUserTriangleVertexField (const char *name)=0 |
virtual CountedPointer< IValueArray > | GetUserVertexField (const char *name)=0 |
virtual unsigned int | GetVertexCount ()=0 |
virtual CountedPointer< IRidArray > | GetVertexIds ()=0 |
virtual CountedPointer< IBoolArray > | GetVertexLocks ()=0 |
virtual CountedPointer< IRealArray > | GetVertexWeighting ()=0 |
virtual CountedPointer< IFieldData > | GetVertices ()=0 |
virtual bool | IsA (const char *type) const |
virtual CountedPointer< IGeometryData > | NewCopy (bool copy_data)=0 |
virtual CountedPointer< IPackedGeometryData > | NewPackedCopy ()=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 |
![]() | |
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 IGeometryData * | SafeCast (IObject *ptr) |
![]() | |
static bool | IsClassA (const char *type) |
static IObject * | SafeCast (IObject *ptr) |
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.
|
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.
base_type | the base_type of the new custom field, data types are listed in SimplygonSDK::BaseTypes |
name | the name of the new custom field |
tuple_size | the tuple size of the new custom field, defaults to 1 if not specified |
|
pure virtual |
Adds an empty user-specified corner field.
base_type | specifies the base type of the new corner field, data types are listed in SimplygonSDK::BaseTypes |
name | the name of the field to add |
tuple_size | the tuple size of the new field, defaults to 1 if not specified |
|
pure virtual |
Adds an empty user-specified triangle field.
base_type | the base_type of the new user triangle field, data types are listed in SimplygonSDK::BaseTypes |
name | the name of the triangle field to add to the IGeometryData object |
tuple_size | the tuple size of the new field, deafaults to 1 if not specified |
|
pure virtual |
base_type | the base_type of the new custom field, data types are listed in SimplygonSDK::BaseTypes |
name | the name of the new custom field |
tuple_size | the tuple size of the new custom field, defaults to 1 if not specified |
|
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.
base_type | the BaseType of the new user field, data types are listed in SimplygonSDK::BaseTypes |
name | the name of the new user field |
tuple_size | the tuple size of the new user field, defaults to 1 if not specified |
|
pure virtual |
level | the level of the new field |
|
pure virtual |
tuplesize | the number of bones allowed per vertex. |
|
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)
tuplesize | the number of bones allowed per vertex |
|
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"
level | the color level (0-255) |
|
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.
field | the custom field to add to the IGeometryData object |
|
pure virtual |
|
pure virtual |
Adds the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Adds the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Adds a named Color field in the corners.
(Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)
alternative_name | the named color channel "Colors0" - "Colors255" |
|
pure virtual |
Adds a named TexCoords field in the corners.
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)
alternative_name | the name of the texcoord level i.e 'TexCoord0' |
|
pure virtual |
Adds the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)
|
pure virtual |
|
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"
level | the texture channel |
|
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)
level | the id of the texture field to add |
|
pure virtual |
AddTriangles increases the triangle count by the specified value.
count | the number of new triangles to add |
|
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.
field | the field to add into the IGeometryData object |
|
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.
field | the triangle field to add to the IGeometryData object |
|
pure virtual |
field | the field to add into the IGeometryData object |
|
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.
field | the field to add to this IGeometryData object |
|
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)
|
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)
|
pure virtual |
Increases the vertex count by the specified value.
count | the number of vertices to add |
|
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.
source | the source geometry that will be appended to this geometry. the contents of source will not be modified. |
|
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.
only_triangles | true if only vertices indexed by triangles should be checked, defaults to false if not specified |
|
pure virtual |
Change winding
|
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().
|
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...
|
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.
|
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.
only_compact_triangles | if true, no vertices will be removed. |
|
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
|
pure virtual |
Combines three corners via barycentric coordinates.
alpha_3 = 1-(alpha_1
source | the IGeometryData object to combine from |
dest_id | the corner id to replace in this IGeometryData object |
src_id_1 | the first corner id to combine from |
src_id_2 | the second corner id to combine from |
src_id_3 | the third corner id to combine from |
alpha_1 | the first interpolation value |
alpha_2 | the second interpolation value |
|
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
source | the IGeometryData object to combine from |
dest_id | the triangle id to replace in this IGeometryData object |
src_id_1 | the first triangle id to combine from |
src_id_2 | the second triangle id to combine from |
src_id_3 | the third triangle id to combine from |
alpha_1 | the first interpolation value |
alpha_2 | the second interpolation value |
|
pure virtual |
source | the IGeometryData object to combine from |
dest_id | the corner id to replace in this IGeometryData object |
src_id_1 | the first corner id to combine from |
src_id_2 | the second corner id to combine from |
src_id_3 | the third corner id to combine from |
alpha_1 | the first interpolation value |
alpha_2 | the second interpolation value |
|
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
source | the IGeometryData object to combine from |
dest_id | the vertex id to replace in this IGeometryData object |
src_id_1 | the first vertex id to combine from |
src_id_2 | the second vertex id to combine from |
src_id_3 | the third vertex id to combine from |
alpha_1 | the first interpolation value |
alpha_2 | the first interpolation value |
|
pure virtual |
combines the fields of two corners by linear interpolation into the destination corner.
source | the IGeometryData object to combine from |
dest_id | the corner id to replace in this IGeometryData object |
src_id_1 | the first corner id to combine from |
src_id_2 | the second corner id to combine from |
alpha | the interpolation value between 0 and 1 |
|
pure virtual |
combines the fields of two triangles by linear interpolation into the destination triangle.
source | the IGeometryData object to combine from |
dest_id | the triangle id to replace in this IGeometryData object |
src_id_1 | the first triangle id to combine from |
src_id_2 | the second triangle id to combine from |
alpha | the interpolation value between 0 and 1 |
|
pure virtual |
source | the IGeometryData object to combine from |
dest_id | the corner id to replace in this IGeometryData object |
src_id_1 | the first corner id to combine from |
src_id_2 | the second corner id to combine from |
alpha | the interpolation value between 0 and 1 |
|
pure virtual |
combines the fields of two vertices by linear interpolation into the destination vertex.
source | the IGeometryData object to combine from |
dest_id | the vertex id to replace in this IGeometryData object |
src_id_1 | the first vertex id to combine from |
src_id_2 | the second vertex id to combine from |
alpha | the interpolation value between 0 and 1 |
|
pure virtual |
Copies all fields in the specified corner in the source geometry to this geometry's corner.
source | the IGeometryData object to copy from |
dest_id | the vertex id to replace in this IGeometryData object |
src_id | the id of the vertex to copy |
|
pure virtual |
Copies all fields in the specified triangle in the source geometry to this geometry's triangle.
source | the IGeometryData object to copy from |
dest_id | the triangle id to replace in this IGeometryData object |
src_id | the id of the triangle to copy |
|
pure virtual |
source | the IGeometryData object to copy from |
dest_id | the triangle id to replace in this IGeometryData object |
src_id | the id of the triangle to copy |
|
pure virtual |
Copies all fields in the specified vertex in the source geometry to this geometry's vertex.
source | the IGeometryData object to copy from |
dest_id | the vertex id to replace in this IGeometryData object |
src_id | the id of the vertex to copy |
|
pure virtual |
Copies the field setup and data from another object into this object. To only copy the setup, set copy_data to false.
source | the IGeometryData object to copy from |
copy_data | if true, copies the data along with the IGeometryData properties |
|
pure virtual |
Detect triangle edge neighbors. Neighbor ids are stored in the "SgEdgeNeighbours" Corner field.
|
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.
|
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.
|
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.
dest | the IGeometryData object that is written to |
start_tri_id | the first triangle to be extracted |
count | the number of triangles to extract |
|
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.
dest | the IGeometryData object that is written to |
triangle_ids | the list of triangles indices to extract |
|
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
vertex_pairs | is an array with tuplesize 2, which contains start and end-vertex of the edges you want to find. |
edge_ids | will contain all edge-ids that were found from the vertex-pairs. The function will replace all previous data in this array. |
|
pure virtual |
Returns the level index of the colors field with the name returns -1 if not found
field_name | the named Colors field to be fetched |
|
pure virtual |
Returns the level index of the texcoord field with the name returns -1 if not found
field_name | the named TexCoord field to be fetched |
|
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)
level | the texture channel |
|
pure virtual |
Gets the BoneIds fields in the vertices. (Field name: "BoneIds", Tuple size: varying , Stored as: Vertex attribute)
|
pure virtual |
Gets the BoneWeights field in the vertices. (Field name: "BoneWeights", Tuple size: varying , Stored as: Vertex attribute)
|
virtual |
GetClass returns the name of the class of the object.
Reimplemented from SimplygonSDK::IObject.
|
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"
level | the color level (0-255) |
|
pure virtual |
Gets the Coords field in the vertices. (Field name: "Coords", Tuple size: 3 , Stored as: Vertex attribute)
|
pure virtual |
Retrieves the IFieldData object that contains the corner fields
|
pure virtual |
Gets a custom field.
name | the name of the custom field to get from the IGeometryData object |
|
pure virtual |
|
pure virtual |
Gets the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Get the inferior (minimum) extent of the geometry
realReturnDataPtr | pointer to a user-provided data area to receive the return value. Note! Needs to be at least 3 elements in size |
|
pure virtual |
Gets the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Gets a Color field, using the alternative name instead of the index
alternative_name | the alternative name of the field. |
|
pure virtual |
Gets a TexCoords field, using the alternative name instead of the index
alternative_name | the alternative name of the field. |
|
pure virtual |
Gets the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)
|
pure virtual |
|
pure virtual |
Get the superior (maximum) extent of the geometry
realReturnDataPtr | pointer to a user-provided data area to receive the return value. Note! Needs to be at least 3 elements in size |
|
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)
level | the texture channel |
|
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)
level | the id of the texture field to get |
|
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.
|
pure virtual |
Retrieves the IFieldData object that contains the triangle fields
|
pure virtual |
|
pure virtual |
Gets a user-specified corner field.
name | the name of the field to get |
|
pure virtual |
Gets a user-specified triangle field.
name | the name of the triangle field to get from the IGeometryData object |
|
pure virtual |
name | the name of the user triangle field to fetch from the IGeometryData object |
|
pure virtual |
Gets a user-specified vertex field.
name | the name of the user vertex field to be fetched from the IGeometryData object |
|
pure virtual |
Gets the number of vertices in the geometry.
|
pure virtual |
Gets the VertexIds field in the corners.
|
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)
|
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)
|
pure virtual |
Retrieves the IFieldData object that contains the vertex fields.
|
virtual |
The IsA function returns true if the object is a or is a descendant of the class named as the type parameter
type | is the name of the class to check if the object is, or is a descendant of |
Reimplemented from SimplygonSDK::IObject.
|
inlinestatic |
The IsClassA function returns true if IGeometryData is a or is a descendant of the class named as the type parameter
type | is the name of the class to check if the class is, or is a descendant of |
Definition at line 5086 of file SimplygonSDK.h.
|
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.
copy_data | if true, copies the data along with the IGeometryData properties |
|
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.
|
pure virtual |
level | the level of the field to be removed |
|
pure virtual |
|
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)
|
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"
level | the color level (0-255) |
|
pure virtual |
Removes a custom field.
name | the name of the custom field to remove from the IGeometryData object |
|
pure virtual |
|
pure virtual |
Removes the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Removes the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
|
pure virtual |
Removes a named Color field in the corners.
(Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)
alternative_name | the named color channel "Colors0" - "Colors255" |
|
pure virtual |
Removes a named TexCoords field in the corners. 'TexCoords0' - 'TexCoords255'
(Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)
alternative_name | the name of the texcoord level i.e 'TexCoord0' |
|
pure virtual |
Removes the Normals field in the corners.
(Field name: "Normals" , Tuple size: 3 , Stored as: Corner attribute)
|
pure virtual |
|
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)
level | the texture channel |
|
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)
level | the id of the texture field to remove |
|
pure virtual |
Removes a user-specified corner field.
name | the name of the field to remove from the IGeometryData object |
|
pure virtual |
Removes a user-specified triangle field.
name | the name of the triangle field to remove from the IGeometryData object |
|
pure virtual |
name | the field to be removed from the IGeometryData object |
|
pure virtual |
Removes a user-specified vertex field.
name | the name of the user vertex field to be removed from the IGeometryData object |
|
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)
|
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)
|
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.
ptr | is the pointer to be cast into a IGeometryData pointer |
Definition at line 5099 of file SimplygonSDK.h.
|
pure virtual |
Set the inferior (minimum) extent of the geometry
vec_realInputDataPtr | the new inferior |
|
pure virtual |
Set the superior (maximum) extent of the geometry
vec_realInputDataPtr | the new superior |
|
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.
count | the desired new triangle count Value cannot be less than 0. Value cannot be greater than INT_MAX. |
|
pure virtual |
Sets the number of vertices in the geometry.
count | the desired new vertex count Value cannot be less than 0. Value cannot be greater than INT_MAX. |
|
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
transformation | the 4x4 transformation as a IMatrix4x4 |
|
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.
threshold | the welding threshold distance |