# class
PackedGeometryData
PackedGeometryData keeps the same information as GeometryData, but with all corner data fields moved into per-vertex fields. No per-corner fields exist, apart from the VertexIds field. Please note that the number of vertices in an PackedGeometryData is commonly higher than in an GeometryData, as vertices must be split to accommodate for different corner data.
See also: GeometryData
# Properties
Property | Description |
---|---|
TriangleCount | The number of triangles in the geometry. |
VertexCount | The number of vertices in the geometry. |
# Methods
Method | Description |
---|---|
AddBaseTypeUserTriangleField | Adds an empty 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. |
AddBaseTypeUserVertexField | Adds an empty 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. |
AddBoneWeights | 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) |
AddColors | Adds a Color field in the vertices. 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: Vertex attribute) |
AddGroupIds | Adds the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute) |
AddMaterialIds | Adds the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute) |
AddNamedColors | Adds a named Color field in the corners. (Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute) |
AddNamedTexCoords | Adds a named TexCoords field in the corners. (Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute) |
AddNormals | Adds the Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute) |
AddTangents | Adds a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute) |
AddTexCoords | Adds a TexCoords field in the vertices. 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: Vertex attribute) |
AddTriangles | Increases the triangle count by the specified value. |
AddUserTriangleField | Adds a user-specified triangle field from an already populated array. To be able to add a field, it must have a name that does not conflict with the existing triangle fields. |
AddUserVertexField | Adds a user-specified vertex field from an already populated value array. To be able to add a field, it must have a name that does not conflict with the existing vertex fields. |
AddVertexLocks | 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 | Adds the VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
AddVertexWeights | Adds the VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
AddVertices | AddVertices increases the vertex count by the specified value. |
AppendPackedGeometry | Appends all vertex-tuples in "source" that don't already exists in the current GeometryData. For each vertex field in this PackedGeometryData, the "source" must contain a corresponding vertex or corner field. All extra-fields in "source" will be skipped however. Returns the number of new and unique vertices created, and the NewVertexIds will contain the indices for the triangles of the "source" Geometry. The VertexIds of the current GeometryData will still be valid. If collapseToOriginalVertices is set to true, all vertices from source will be collapsed to the closest matching vertex of the current geometry. This means that no new vertices will be added, so the returned value will always be 0. If the "NewVertexIds"-array is not initiated before send into this function, it will do nothing and return -1 instead, as error value. The method does not append triangle ids or triangle field data from "source" to the current object. |
DeepCopy | Copies the field setup and data from another object. To only copy the setup, set copy_data to false. |
GetBitangents | Gets a Bitangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute) |
GetBoneIds | The BoneIds field. (Field name: "BoneIds", Tuple size: varying , Stored as: Vertex attribute) |
GetBoneWeights | The BoneWeights field. (Field name: "BoneWeights", Tuple size: varying , Stored as: Vertex attribute) |
GetClass | Get the name of the PackedGeometryData class. |
GetColors | Gets a Color field in the vertices. 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: Vertex attribute) |
GetCoords | The Coords field in the vertices. (Field name: "Coords", Tuple size: 3 , Stored as: Vertex attribute) |
GetGroupIds | The GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute) |
GetInf | The inferior (minimum) extent of the geometry. |
GetMaterialIds | The MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute) |
GetNamedColors | Gets a Color field, using the alternative name instead of the index. |
GetNamedTexCoords | Gets a TexCoords field, using the alternative name instead of the index. |
GetNormals | The Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute) |
GetSup | The superior (maximum) extent of the geometry. |
GetTangents | Gets a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute) |
GetTexCoords | Gets a TexCoords field in the vertices. 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: Vertex attribute) |
GetTriangles | Retrieves the ReFieldData object that contains the triangle fields. |
GetUserTriangleField | Gets 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. |
GetUserVertexField | Gets a user-specified vertex field. |
GetVertexIds | The VertexIds field in the triangles. |
GetVertexLocks | 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 | The VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
GetVertexWeights | The VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
GetVertices | Retrieves the FieldData object that contains the vertex fields. |
IsA | Returns true if PackedGeometryData is a or is a descendant of the class named as the type parameter. |
IsNull | Returns true if the PackedGeometryData object is invalid. |
NewCopy | Creates another geometry data object with the same field setup. To also copy the data to the new object, set copy_data to true. |
NewUnpackedCopy | Creates an "unpacked" GeometryData object. Please note that since the data in the PackedGeometryData structure is per-vertex, you may have to weld the resulting GeometryData to remove vertices with the same spatial coordinates. |
RemoveBoneWeights | 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 | Removes a Color field in the vertices. 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: Vertex attribute) |
RemoveGroupIds | Removes the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute) |
RemoveMaterialIds | Removes the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute) |
RemoveNamedColors | Removes a named Color field in the corners. (Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute) |
RemoveNamedTexCoords | Removes a named TexCoords field in the corners. 'TexCoords0' - 'TexCoords255' (Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute) |
RemoveNormals | Removes the Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute) |
RemoveTangents | Removes a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute) |
RemoveTexCoords | Removes a TexCoords field in the vertices. 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: Vertex attribute) |
RemoveUserTriangleField | Removes 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. |
RemoveUserVertexField | Removes a user-specified vertex field. |
RemoveVertexLocks | 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 | Removes the VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
RemoveVertexWeights | Removes the VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute) |
SetInf | The inferior (minimum) extent of the geometry. |
SetSup | The superior (maximum) extent of the geometry. |
# Static methods
Method | Description |
---|---|
IsClassA | Returns true if the class is a or is a descendant of the class named as the type parameter. |
SafeCast | SafeCast makes sure the input object is of a class that can be cast into spPackedGeometryData, and if this is the case, returns the object cast into spPackedGeometryData. |
# Properties details
# TriangleCount
The number of triangles in the geometry.
# VertexCount
The number of vertices in the geometry.
# Methods details
# AddBaseTypeUserTriangleField
Adds an empty 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.
# AddBaseTypeUserVertexField
Adds an empty 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.
# AddBoneWeights
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)
# AddColors
Adds a Color field in the vertices. 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: Vertex attribute)
# AddGroupIds
Adds the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
# AddMaterialIds
Adds the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
# AddNamedColors
Adds a named Color field in the corners. (Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)
# AddNamedTexCoords
Adds a named TexCoords field in the corners. (Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)
# AddNormals
Adds the Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute)
# AddTangents
Adds a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute)
# AddTexCoords
Adds a TexCoords field in the vertices. 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: Vertex attribute)
# AddTriangles
Increases the triangle count by the specified value.
# AddUserTriangleField
Adds a user-specified triangle field from an already populated array. To be able to add a field, it must have a name that does not conflict with the existing triangle fields.
# AddUserVertexField
Adds a user-specified vertex field from an already populated value array. To be able to add a field, it must have a name that does not conflict with the existing vertex fields.
# AddVertexLocks
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
Adds the VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# AddVertexWeights
Adds the VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# AddVertices
AddVertices increases the vertex count by the specified value.
# AppendPackedGeometry
Appends all vertex-tuples in "source" that don't already exists in the current GeometryData. For each vertex field in this PackedGeometryData, the "source" must contain a corresponding vertex or corner field. All extra-fields in "source" will be skipped however. Returns the number of new and unique vertices created, and the NewVertexIds will contain the indices for the triangles of the "source" Geometry. The VertexIds of the current GeometryData will still be valid. If collapseToOriginalVertices is set to true, all vertices from source will be collapsed to the closest matching vertex of the current geometry. This means that no new vertices will be added, so the returned value will always be 0. If the "NewVertexIds"-array is not initiated before send into this function, it will do nothing and return -1 instead, as error value. The method does not append triangle ids or triangle field data from "source" to the current object.
# DeepCopy
Copies the field setup and data from another object. To only copy the setup, set copy_data to false.
# GetBitangents
Gets a Bitangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute)
# GetBoneIds
The BoneIds field. (Field name: "BoneIds", Tuple size: varying , Stored as: Vertex attribute)
# GetBoneWeights
The BoneWeights field. (Field name: "BoneWeights", Tuple size: varying , Stored as: Vertex attribute)
# GetClass
Get the name of the PackedGeometryData class.
# GetColors
Gets a Color field in the vertices. 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: Vertex attribute)
# GetCoords
The Coords field in the vertices. (Field name: "Coords", Tuple size: 3 , Stored as: Vertex attribute)
# GetGroupIds
The GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
# GetInf
The inferior (minimum) extent of the geometry.
# GetMaterialIds
The MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
# GetNamedColors
Gets a Color field, using the alternative name instead of the index.
# GetNamedTexCoords
Gets a TexCoords field, using the alternative name instead of the index.
# GetNormals
The Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute)
# GetSup
The superior (maximum) extent of the geometry.
# GetTangents
Gets a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute)
# GetTexCoords
Gets a TexCoords field in the vertices. 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: Vertex attribute)
# GetTriangles
Retrieves the ReFieldData object that contains the triangle fields.
# GetUserTriangleField
Gets 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.
# GetUserVertexField
Gets a user-specified vertex field.
# GetVertexIds
The VertexIds field in the triangles.
# GetVertexLocks
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
The VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# GetVertexWeights
The VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# GetVertices
Retrieves the FieldData object that contains the vertex fields.
# IsA
Returns true if PackedGeometryData is a or is a descendant of the class named as the type parameter.
# IsNull
Returns true if the PackedGeometryData object is invalid.
# NewCopy
Creates another geometry data object with the same field setup. To also copy the data to the new object, set copy_data to true.
# NewUnpackedCopy
Creates an "unpacked" GeometryData object. Please note that since the data in the PackedGeometryData structure is per-vertex, you may have to weld the resulting GeometryData to remove vertices with the same spatial coordinates.
# RemoveBoneWeights
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
Removes a Color field in the vertices. 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: Vertex attribute)
# RemoveGroupIds
Removes the GroupIds field in the triangles. (Field name: "GroupIds", Tuple size: 1 , Stored as: triangle attribute)
# RemoveMaterialIds
Removes the MaterialIds field in the triangles. (Field name: "MaterialIds", Tuple size: 1 , Stored as: triangle attribute)
# RemoveNamedColors
Removes a named Color field in the corners. (Field name: "Colors0" - "Colors255", Tuple size: 4 , Stored as: Corner attribute)
# RemoveNamedTexCoords
Removes a named TexCoords field in the corners. 'TexCoords0' - 'TexCoords255' (Field name: "TexCoords0" - "TexCoords255", Tuple size: 2 , Stored as: Corner attribute)
# RemoveNormals
Removes the Normals field in the vertices. (Field name: "Normals" , Tuple size: 3 , Stored as: Vertex attribute)
# RemoveTangents
Removes a Tangents field in the vertices. (Field name: "Tangents0" - "Tangents255" & "Bitangents0" - "Bitangents255", Tuple size: 3 , Stored as: Vertex attribute)
# RemoveTexCoords
Removes a TexCoords field in the vertices. 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: Vertex attribute)
# RemoveUserTriangleField
Removes 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.
# RemoveUserVertexField
Removes a user-specified vertex field.
# RemoveVertexLocks
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
Removes the VertexWeighting field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# RemoveVertexWeights
Removes the VertexWeights field for the vertices. (Field name: "VertexWeights", Tuple size: 1 , Stored as: Vertex attribute)
# SetInf
The inferior (minimum) extent of the geometry.
# SetSup
The superior (maximum) extent of the geometry.
# Static methods details
# IsClassA
Returns true if the class is a or is a descendant of the class named as the type parameter.
# SafeCast
SafeCast makes sure the input object is of a class that can be cast into spPackedGeometryData, and if this is the case, returns the object cast into spPackedGeometryData.