Constructive Functions


TdOMakeObject

Name

Make an object

CSpecification

int TdOMakeObject(int *object, int region)

Parameters

object specifies the object identifier.
region specifies the identifier of the region, where the object should be placed

Description

    This function creates a new object entry in the data structure. If the value of region is 0 (zero), it is considered that it is a unbounded one.

Notes

If the value of parameter object is 0 (zero), TDM returns a valid ID. Otherwise, the identifier of the new object is object.

Errors

O (zero) is returned if no error occurs.

See Also


TdVMakeVertexComponent

Name

Make a first vertex of a component

CSpecification

int TdVMakeVertexComponent (int *vertex, int object, int region, int *component)

Parameters

vertex specifies the vertex identifier.
object specifies the identifier of the object to which the vertex should be aggregated.
region specifies the identifier of the region where the new vertex should be placed.
component specifies the identifier of the new component.

Description

This function creates a vertex in an specified region. It builds a new component which is aggregated to an already existing object. If region=0, then it is unbounded; otherwise it must be defined before.
When vertex=0 or component=0, then TDM generates internally an identifier and returns it.

Notes

Errors

O (zero) is returned if no error occurs.

See Also


TdVMakeVertexSplitEdge

Name

Make a vertex on an edge

CSpecification

int TdVMakeVertexSplitedge (int *vertex, int edge, int *new_elem, int *chain)

Parameters

vertex specifies the vertex identifier.
edge specifies the identifier of the edge to be splitted.
new_elem specifies the identifier of the new edge.
chain specifies the identifier of the new chain.

Description

This function creates a vertex on an specified edge in such a way that this edge is splitted into two. The identifier of the new edge is new_elem. If new_elem=0, then TDM generates internally an appropriate identifier and returns it.

Notes

For simplicity, the new edge is aggregated to a new chain chain. If chain=0, then TDM generates internally an appropriate identifier and returns it.
It is recommended to use TdEAGetVertices to check how TDM aggregates internally the vertices to the newly created edge.

Errors

O (zero) is returned if no error occurs.

See Also


TdEMakeEdgeVertex

Name

Make a edge and a vertex from an existing vertex

CSpecification

int TdEMakeEdgeVertex(int vertex1, int region, int *edge, int *vertex2, int *chain)

Parameters

vertex1 specifies the existing vertex identifier.
region specifies the identifier of the region, where the edge should be placed
edge specifies the edge identifier.
vertex2 specifies the vertex identifier.
chain specifies the chain identifier.

Description

This function appends a new edge to the already defined vertex, vertex1. Another extreme vertex of edge, vertex2, is also created. If edge=0 and vertex2=0, TDM generates internally an appropriate identifier and returns it. The spatial location of edge is given by region. It could be a face, a "filled" volume or a "unfilled" 3D space. If region=0, it is a unbounded 3D "unfilled" space.

Notes

For simplicity, each edge is implemented as a chain in order to avoid special handling of bifurcations. A set of edges is merged to one cycle, only if they build a closed curve.

Errors

O (zero) is returned if no error occurs.

See Also


TdEMakeEdgeFace

Name

Make a new face by inserting an edge

.

CSpecification

int TdEMakeEdgeFace (int eqty, int elist[], int *edge, int *face, int n_genus, int region)

Parameters

eqty specifies the quantity of edges in elist.
elist specifies the identifiers of a "path" of edges.
edge specifies the new edge identifier.
face specifies the face identifier.
n_genus specifies the quantity of genus in the face.
region specifies the identifier of the region, where the face should be placed.

Description

The new face face is created by closing the sequence of edges, elist, with the edge edge. To maintain the topological consistency the number of genus of the new face and the region where the face should be placed are required. When region=0, it is considered that the new face is placed in the unbounded one.
If edge=0 or face=0, then TDM generates internally appropriate identifiers and returns them.

Notes

Errors

O (zero) is returned if no error occurs.

See Also


TdEMakeEdgeCycle

Name

Make a topological cycle by inserting an edge

CSpecification

int TdEMakeEdgeCycle (int eqty, int elist[], region, *edge, *cycle)

Parameters

eqty specifies the quantity of edges/vertices in elist.
elist specifies the identifiers of a "path" of edges/vertices.
region specifies the identifier of the region, where the topological cycle should be placed
edge specifies the edge identifier.
cycle specifies the cycle identifier.

Description

The new topological cycle cycle is created by closing the sequence of edges, elist, with the edge edge. Alternatively, the sequence of edges might be specified by the sequence of their vertices. To maintain the topological consistency, the region where the new cycle should be placed is required. When region=0, it is considered that the new face is placed in the unbounded one.
If edge=0 or cycle=0, then TDM generates internally appropriate identifiers and returns them.

Notes

Errors

O (zero) is returned if no error occurs.

See Also


TdEMakeEdgeKillComponent

Name

Make a new edge between components A and B

CSpecification

int TdEMakeEdgeKillComponent(int vertex1, int vertex2, int region, int *edge, int *chain)

Parameters

vertex1 specifies the vertex identifier of the component A.
vertex2 specifies the vertex identifier of the component B
region specifies the identifier of the region, where the edge should be placed
edge specifies the edge identifier.
chain specifies the chain identifier.

Description

This function merges two components into one by connecting their vertices through an edge.
If edge=0 or chain=0, then TDM generates internally appropriate identifiers and returns them.

Notes

The argument region is included to reinforce the maintenance of topological consistency.

Errors

O (zero) is returned if no error occurs.

See Also


TdEMakeEdgeSplitFace

Name

Make a vertex on an edge

CSpecification

int TdEMakeEdgeSplitFace (int vertex1, int vertex2, int face, int *edge, int *cycle1, int *cycle2, int *new_face)

Parameters

vertex1 specifies one extreme vertex identifier.
vertex2 specifies another extreme vertex identifier.
face specifies the identifier of the face to be splitted.
edge specifies the identifier of the new edge.
cycle1 specifies the identifier of the new chain of one face.
cycle2 specifies the identifier of the new chain of another face.
new_face specifies the identifier of the new face.

Description

This function creates a edge on an specified face face, in such a way that this face is splitted into two faces. The extreme vertices of this new edge are vertex1 and vertex2. The identifier of the new edge and face are edge and new_face, respectively. If new_face=0, then TDM generates internally an appropriate identifier and returns it. Similarly, TDM generates an appropriate identifier for the new edge, if edge=0.

Notes

Two chains of edges, cycle1 and cycle2, are generated internally. It is recommended to make cycle1 = cycle2 = 0 before calling this function. It is also recommended to use TdFAGetAdjVertices or TdFAGetAdjEdges to check how TDM aggregates internally the vertices/edges to the newly created face.

Errors

O (zero) is returned if no error occurs.

See Also


TdFMakeFaceShell

Name

Make a shell by inserting a face

CSpecification

int TdFMakeFaceShell (int eqty, elist, *face, n_genus, region, *shell)

Parameters

eqty specifies the quantity of edges in elist.
elist specifies the identifiers of a "path" of edges.
face specifies the face identifier.
n_genus specifies the quantity of genus in the face.
region specifies the identifier of the region, where the face should be placed
shell specifies the shell identifier.

Description

This function creates a shell when the boundary of a set of faces defined by elist is closed by the new face face. Therefore, a new bounded region, region is created. To maintain the topological consistency the number of genus on the new face must be specified.
If face=0, or shell=0, or region=0, then TDM generates internally appropriate identifiers and returns them.

Notes

The orientation of the face depends on the sequence of edges given in elist.

Errors

O (zero) is returned if no error occurs.

See Also


Last Edited: Thu Sep 4 08:46:11 BRA 1997

Ting