fastest 3D software for linux

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

Index

 E3dRPolyGroup_Area
 E3dPolyGroup_CountTriangles
 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
PRPolyGroup The RPolyGroup
Description
This function computes the surface area of an E3dRPolyGroup.

Return value
None.

E3dPolyGroup_CountTriangles

Get renderable triangles for a PolyGroup

Syntax
EIndex E3dPolyGroup_CountTriangles(const E3dPolyGroup* PPolyGroup, EIndex* PTriangleStartIndices)

Arguments
PPolyGroup Pointer to the PolyGroup PTriangleStartIndices Start index for the 1st triangle of each Polygon
Description
Returns the total number of triangles of the Polygons in PPolyGroup. If PTriangleStartIndices is not NULL, for eacn Polygon it returns the PolyGroup-global index of the first triangle. For example, if PPolyGroup has a pentagon that was triangulated to 3 triangles, and 2 quads (2 triangles each), PTriangleStartIndices will contain: 0, 3, 5, 7

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
PSrcPolyGroup Pointer to the PolyGroup structure to be cloned (source) PDstPolyGroup Pointer to the destination PolyGroup PVectorMatrix If not NULL, transform normals and tangents, etc. with this Matrix 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
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
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
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
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
PPolyGroup Pointer to the E3dPolyGroup structure 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
PPolyGroup Pointer to the E3dPolyGroup structure 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
PPolyGroup Pointer to the E3dPolyGroup structure PIndices List of indicex of Polygons to be removed 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
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
PPolyGroup Pointer to the PolyGroup 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
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
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
PPolyGroup Pointer to the PolyGroup PName The name of the new VertexAttribute PSemantic The semantic string of the new attribute PIndex Index of the new attribute. Only applies to texture coordinates (ST 0, 1 ...) 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
PPolyGroup Pointer to the PolyGroup PSemantic The semantic string of the new attribute 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
PMesh The Mesh PPolyGroup The PolyGroup
Description
This function computes the surface area of a PolyGroup.

Return value
None.

See also
E3dRPolyGroup_Area

E3dMeshPolyGroup_UpdateForDisplay

EUNUSED_CODE
USED_CODE
D_CODE
ODE

Update a PolyGroup of a Mesh for drawing

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

Arguments
PMesh The Mesh to update PFlags OR-ed together flags, telling what to update 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
lect VertexNode components of a PolyGroup
t VertexNode components of a PolyGroup
ertexNode components of a PolyGroup
exNode components of a PolyGroup
ode components of a PolyGroup
components of a PolyGroup
mponents of a PolyGroup
nents of a PolyGroup
ts of a PolyGroup
of a PolyGroup
a PolyGroup
olyGroup
Group
up
// E3dNOTE: Could we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
E3dNOTE: Could we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
NOTE: Could we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
E: Could we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
Could we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
ld we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
we unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
unify this function with E3dPolyGroup_GLCreateVertexArrayExt?
fy this function with E3dPolyGroup_GLCreateVertexArrayExt?
this function with E3dPolyGroup_GLCreateVertexArrayExt?
s function with E3dPolyGroup_GLCreateVertexArrayExt?
unction with E3dPolyGroup_GLCreateVertexArrayExt?
tion with E3dPolyGroup_GLCreateVertexArrayExt?
n with E3dPolyGroup_GLCreateVertexArrayExt?
ith E3dPolyGroup_GLCreateVertexArrayExt?
E3dPolyGroup_GLCreateVertexArrayExt?
dPolyGroup_GLCreateVertexArrayExt?
lyGroup_GLCreateVertexArrayExt?
roup_GLCreateVertexArrayExt?
p_GLCreateVertexArrayExt?
LCreateVertexArrayExt?
eateVertexArrayExt?
eVertexArrayExt?
rtexArrayExt?
xArrayExt?
rayExt?
Ext?
?
/ This function only supports TextureMappers / ST sets on the PolyGroup (not on the Mesh).

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
PMesh Pointer to the Mesh PPolyGroup Pointer to the PolyGroup PSemantic The name of the VertexAttribute. E.g. E3dVtxAttribute_Normal PIndex The index of the VertexAttribute. E.g. PSemantic = E3dVtxAttribute_ST and PIndex = 0 means the first texcoord set PIndexed If TRUE, there's a 1:1 match to Mesh Vertices PAttributesRet If not NULL, return attribute information here PBufferRet Buffer to return the values in PStrideRet Return the byte stride here PIndicesRet Return the index list here. 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-2024 By Gabor Nagy