fastest 3D software for linux

Linux 3D
interactive ray-tracing
[1 introduction] [2 overview] [3 reference] [4 GUI]

Index

 E3dRPolyGroup_Area
 E3dPolyGroup_Copy
 E3dPolyGroup_Invert
 E3dPolyGroup_HasSelectedPolygons
 E3dMeshPolyGroup_NumOfSelectedEdges
 E3dPolyGroup_NumOfSelectedPolygons
 E3dPolyGroup_GetMarkedPolygonIndices
 E3dPolyGroup_DeletePolygon
 E3dPolyGroup_DeletePolygonsByIndex
 E3dPolyGroup_AddPolygon
 E3dPolyGroup_AddPolygons
 E3dPolyGroup_FreePolygons
 E3dPolyGroup_FreeTriangleStrips
 E3dPolyGroup_VertexAttributeAdd
 E3dPolyGroup_VertexAttributeDel
 E3dMeshPolyGroup_Area
 E3dMeshPolyGroup_UpdateForDisplay
 E3dMeshPolyGroup_CollectVertexAttributes


E3dRPolyGroup_Area

Calculate surface area of an E3dRPolyGroup

Syntax
E3dCoordinate E3dRPolyGroup_Area(const E3dRPolyGroup* PRPolyGroup)

Argument
const E3dRPolyGroup* PRPolyGroup The RPolyGroup
Description
This function computes the surface area of an E3dRPolyGroup.

Return value
None.

E3dPolyGroup_Copy

Clone a PolyGroup

Syntax
E3dPolyGroup* E3dPolyGroup_Copy(const E3dPolyGroup* PSrcPolyGroup, E3dPolyGroup* PDstPolyGroup, const E3dMatrix PVectorMatrix, const uint16_t PFlags)

Argument
const E3dPolyGroup* PSrcPolyGroup Pointer to the PolyGroup structure to be cloned (source) E3dPolyGroup* PDstPolyGroup Pointer to the destination PolyGroup const E3dMatrix PVectorMatrix If not NULL, transform normals and tangents, etc. with this Matrix const uint16_t PFlags Flags determining what to clone / share
Description
Creates and exact copy of PSrcPolyGroup. If PDstPolyGroup is NULL, a new PolyGroup will be created and returned. If PFlags has the flag E3dCopyMATERIALS set, the Material of the PolyGroup will be cloned as well, otherwise the Material will be shared between the original PolyGroup and the clone. PFlags accepted flags: ECopyNAME Copy the name of PSrcPolyGroup E3dCopyPOLYGONS Copy Polygons E3dCopyEDGES Copy Edges (indices into to the Mesh Edge array) E3dCopyCOMPONENTS Copy PolyGroup component objects (not yet implemented)

Return value
Pointer to the new PolyGroup structure, or NULL in case of an error.

See also
E3d_PolyGroupAllocate, E_Delete

E3dPolyGroup_Invert

Invert Polygons of a Mesh (turn the Mesh "inside-out")

Syntax
int E3dPolyGroup_Invert(E3dPolyGroup* PPolyGroup)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup
Description
Reverses the vertex order of each Polygon of PPolyGroup.

Return value
E_SUCCESS if all went well, or an error code

E3dPolyGroup_HasSelectedPolygons

Tell whether a PolyonGroup has selected Polygons

Syntax
EBool E3dPolyGroup_HasSelectedPolygons(const E3dPolyGroup* PPolyGroup)

Argument
const E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure
Description
This function returns TRUE if there are selected Polygons in the given PolyGroup. This may be faster than E3dPolyGroup_NumOfSelectedPolygons.

Return value
TRUE if there are selected Polygons in PPolyGroup, otherwise FALSE.

E3dMeshPolyGroup_NumOfSelectedEdges

Count selected Edges in a PolyonGroup

Syntax
EIndex E3dMeshPolyGroup_NumOfSelectedEdges(const E3dMesh* PMesh, const E3dPolyGroup* PPolyGroup)

Argument
const E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure
Description
Returns the number of selected Edges in the given PolyGroup.

Return value
The number of selected Edges.

E3dPolyGroup_NumOfSelectedPolygons

Count selected Polygons in a PolyonGroup

Syntax
EIndex E3dPolyGroup_NumOfSelectedPolygons(const E3dPolyGroup* PPolyGroup)

Argument
const E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure
Description
Returns the number of selected Polygons in the given PolyGroup.

Return value
The number of selected Polygons.

E3dPolyGroup_GetMarkedPolygonIndices

Count selected Polygons in a PolyonGroup

Syntax
EIndex E3dPolyGroup_GetMarkedPolygonIndices(const E3dPolyGroup* PPolyGroup, const E3dPolygonFlags PFlag, EIndex** PIndicesP)

Argument
const E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure EIndex** PIndicesP Pointer to store the resultin array
Description
This function returns the number of selected Polygons in the given PolyGroup.

Return value
The number of selected Polygons.

E3dPolyGroup_DeletePolygon

Remove a Polygon from a PolyonGroup

Syntax
EIndex E3dPolyGroup_DeletePolygon(E3dPolyGroup* PPolyGroup, E3dPolygon* PPolygon)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure E3dPolygon* PPolygon The Polygon to be deleted
Description
Removes the PPolygon from the given PolyGroup by first copying the unselected Polygons into a new array and replacing the old array with this array.

Return value
The index of the Polygon that was removed, or -1 in case of an error

E3dPolyGroup_DeletePolygonsByIndex

Remove Polygons from a PolyonGroup

Syntax
EIndex E3dPolyGroup_DeletePolygonsByIndex(E3dPolyGroup* PPolyGroup, const EIndex* PIndices, const EIndex PIndices_Count)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the E3dPolyGroup structure const EIndex* PIndices List of indicex of Polygons to be removed const EIndex PIndices_Count Number of Polygons to be removed
Description
This function removes the Polygons listed by index, from the given PolyGroup by first copying the Polygons not listed into a new array and replacing the old array with this array.

Return value
The number of Polygons removed.

E3dPolyGroup_AddPolygon

Add one Polygon to a PolyGroup

Syntax
E3dPolygon* E3dPolyGroup_AddPolygon(E3dPolyGroup* PPolyGroup)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup structure
Description
Adds a new Polygon to the given PolyGroup and initializes this Polygon.

Return value
A pointer to the new Polygon, or NULL in case of an error.

See also
E3dPolygons_New, E3dPolygon_Init, E3dPolygon_InitAsTriangle

E3dPolyGroup_AddPolygons

Add n Polygons to a PolyGroup

Syntax
E3dPolygon* E3dPolyGroup_AddPolygons(E3dPolyGroup* PPolyGroup, const EIndex PCount)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup const EIndex PCount The number of new Polygons
Description
Adds PCount new Polygons to PPolyGroup.

Return value
Pointer to the first new Polygon

E3dPolyGroup_FreePolygons

Free the Polygons of a PolyGroup

Syntax
void E3dPolyGroup_FreePolygons(E3dPolyGroup* PPolyGroup)

Argument
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup
Description
Frees all Polygons in the specified PolyGroup.

Return value
None.

See also
E3dPolyGroup_FreeTriangleStrips

E3dPolyGroup_FreeTriangleStrips

Free the TriangleStrips of a PolyGroup

Syntax
void E3dPolyGroup_FreeTriangleStrips(E3dPolyGroup* PPolyGroup)

Argument
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup
Description
Frees the triangle strips in the specified PolyGroup.

Return value
None.

See also
E3dPolyGroup_FreePolygons

E3dPolyGroup_VertexAttributeAdd

Add a new attribute to the VertexNodes of a PolyGroup's primitives

Syntax
int E3dPolyGroup_VertexAttributeAdd(E3dPolyGroup* PPolyGroup, const char* PName, const char* PSemantic, const int PIndex, const EResource* PCustomAttr)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup const char* PName The name of the new VertexAttribute const char* PSemantic The semantic string of the new attribute const int PIndex Index of the new attribute. Only applies to texture coordinates (ST 0, 1 ...) const EResource* PCustomAttr If not NULL, it specifies a custom vertex attribute
Description
Adds a vertex attribute, such as normals, or texture coordinates, to a PolyGroup.
PIndex = -1 means: do not check whether this component already exists.
PSemantic is a string, such as E3dVtxAttribute_Normal, E3dVtxAttribute_Color, E3dVtxAttribute_ST etc.

Return value
E_SUCCESS if all went well, or an error code

See also
E3dVertexNodeAttribute_Add, E3dPolyGroup_VertexAttributeDel, E3dPolyGroup_VertexAttributeDelByIndex, Return, value, E_SUCCESS, if, all, went, well, or, an, error, code

E3dPolyGroup_VertexAttributeDel

Remove a component from the VertexNodes of a PolyGroup's primitives

Syntax
int E3dPolyGroup_VertexAttributeDel(E3dPolyGroup* PPolyGroup, const char* PSemantic, const EIndex PIndex)

Arguments
E3dPolyGroup* PPolyGroup Pointer to the PolyGroup const char* PSemantic The semantic string of the new attribute const EIndex PIndex Index of the new attribute. Only applies to texture coordinates (ST 0, 1 ...)
Description
Removes a vertex attribute, such as normals, or texture coordinates, from a PolyGroup.
PSemantic is a string, such as E3dVtxAttribute_Normal, E3dVtxAttribute_Color, E3dVtxAttribute_ST etc.

Return value
E_SUCCESS if all went well, or an error code

See also
E3dVertexNodeAttribute_Add, E3dPolyGroup_VertexAttributeAdd, E3dPolyGroup_VertexAttributeDelByIndex, Return, value, E_SUCCESS, if, all, went, well, or, an, error, code

E3dMeshPolyGroup_Area

Calculate surface area of a PolyGroup

Syntax
E3dCoordinate E3dMeshPolyGroup_Area(const E3dMesh* PMesh, const E3dPolyGroup* PPolyGroup)

Arguments
const E3dMesh* PMesh The Mesh const E3dPolyGroup* PPolyGroup The PolyGroup
Description
This function computes the surface area of a PolyGroup.

Return value
None.

See also
E3dRPolyGroup_Area

E3dMeshPolyGroup_UpdateForDisplay

EUNUSED_CODE
Update a PolyGroup of a Mesh for drawing

Syntax
void E3dMeshPolyGroup_UpdateForDisplay(E3dMesh* PMesh, E3dPolyGroup* PPolyGroup, const EUpdateFlags PUpdateFlags, const ECallFlags PCallFlags)

Arguments
E3dMesh* PMesh The Mesh to update PFlags OR-ed together flags, telling what to update E3dPolyGroup* PPolyGroup The PolyGroup to update
Description
This function updates the given PolyGroup of the given Mesh for drawing. This is a platform-independent procedure that ensures that the given Mesh will be drawn correctly after changes to its components. Calling this function for a Geometry after change, with only the necessary flags set, helps EQUINOX-3D greatly improve performance by only updating things that really changed. For example, if the position of a few Vertices changed in a Mesh, use the E3dUpdateMeshSHAPE flag.

Return value
None.

E3dMeshPolyGroup_CollectVertexAttributes

Collect VertexNode components of a PolyGroup
E3dNOTE: This function could be used to build arrays for E3glDrawArrays?

Syntax
EIndex E3dMeshPolyGroup_CollectVertexAttributes(const E3dMesh* PMesh, const E3dPolyGroup* PPolyGroup, const char* PSemantic, const int PIndex, const EBool PIndexed, EResource** PAttributesRet, void* PBufferRet, unsigned int* PStrideRet, E3dVertexIndex** PIndicesRet, EIndex* PTotalNumOfVertexNodesRet)

Arguments
const E3dMesh* PMesh Pointer to the Mesh const E3dPolyGroup* PPolyGroup Pointer to the PolyGroup const char* PSemantic The name of the VertexAttribute. E.g. E3dVtxAttribute_Normal const int PIndex The index of the VertexAttribute. E.g. PSemantic = E3dVtxAttribute_ST and PIndex = 0 means the first texcoord set const EBool PIndexed If TRUE, there's a 1:1 match to Mesh Vertices EResource** PAttributesRet If not NULL, return attribute information here void* PBufferRet Buffer to return the values in unsigned int* PStrideRet Return the byte stride here E3dVertexIndex** PIndicesRet Return the index list here. EIndex* PTotalNumOfVertexNodesRet Return the total number of all VertexNodes on all Polygons of PPolyGroup. This will be the size of the array in PIndicesRet
Description
Collects VertexNode data into an array for serialization (e.g. into a file), or potentially for building GPU vertex arrays.

Return value
E_SUCCESS, if successful, or an error code. Also: An array of E3dCoord, E3dST or other values in PBufferRet, the byte stride in PStrideRet and a list of indices in PIndicesRet, if PIndicesRet is not NULL.
© 1996-2022 By Gabor Nagy