DG Kernel Documentation


Skip Navigation Links.
Skip Navigation LinksHome Page > API Reference > Model > Entities > Geometry > Mesh Geometry > IVertexEx_KC Search Documentation


IVertexEx_KC(64) Interface

GetStarElementCount
GetStarEdge
GetStarSimplex
IsInteriorVertex
GetLinkingEdge
FindStarElement

IVertexEx_KC gives access to adjacency information related to vertices

IVertexEx_KC can be queried from IVertex interface. The mesh must be in upgraded state for this interface to be available. Query IVertex from IVertexEx_KC to access base level information about the vertex.

Star of a vertex is the set of simplexes joined at the vertex

See also Morph sample


HRESULT GetStarElementCount(int elementType, int* count)

Parameters

elementType - [in] element type to query. 1 - edges, 2 - simplexes

count - [out,retval] Count of the specified elements joined at the vertex

Remarks:

Returns count of the specified elements joined at the vertex. When elementType is 1 the method return number of edges and number of simplexes otherwise.

When the vertex is interior (does not belong to mesh edge) the returned numbed does not depend on elementType and is the number of simplexes joined at the vertex. When the vertex lies on the mesh edge count of segments equals to number of simplexes plus one.


HRESULT GetStarVertex(int i, IVertexEx_KC** vertex )

Parameters

i - [in] 0-based index of the vertex to retrieve.  i must be less than the number returned by GetStarElementCount(1, ...)

vertex- [out,retval] - the opposite to this vertex end of the i-th edge of star of this vertex

Remarks:

Returns i-th neighbour (star) vertex of this vertex. When this is not an interior vertex star vertices are numbered starting from the "out" edge which lies on the edge of the mesh. For an interior vertex numbering of vertices must be considered random.


HRESULT GetStarEdge(int i, IEdge_KC** edge )

Parameters

i - [in] 0-based index of the edge to retrieve. i must be less than the number returned by GetStarElementCount(1, ...)

edge- [out,retval] - the i-th edge of star of this vertex

Remarks:

Returns i-th edge joined at this vertex. When this is not an interior vertex the edges are numbered starting from the "out" edge which lies on the edge of the mesh. For an interior vertex numbering of vertices must be considered random.


HRESULT GetStarSimplex(int i, ISimplexEx_KC** simplex )

Parameters

i - [in] 0-based index of the simplex to retrieve. i must be less than the number returned by GetStarElementCount(2, ...)

simplex - [out,retval] - the i-th simplex of star of this vertex

Remarks:

Returns i-th simplex joined at this vertex. When this is not an interior vertex the edges are numbered starting from the "out" edge which lies on the edge of the mesh. For an interior vertex numbering of vertices must be considered random.


HRESULT IsInteriorVertex(VARIANT_BOOL* interior)

Remarks:

The method returns true when the vertex does not belong to the mesh edge. So the number of simplexes joined at the vertex coinsides with the number of edges


HRESULT GetLinkingEdge(IVertex* vertex, IEdge_KC** edge )

Parameters

vertex- [in] A vertex to test for linkage

edge- [out,retval] The returned linking edge or NULL if it does not exist. See remarks

Remarks:

The method returns the edge which joins this and vertex if it exists or NULL if there is no simplex which has the two verticies as its corners. The method can be used to test wether the verticies are neighbours.


HRESULT FindStarElement(IObject_KC* vertexSimplexOrEdge, int* index )

Parameters

vertexSimplexOrEdge- [in] The element to find.

index- [out,retval] Index of the element in start of this vertex or -1 if not found

Remarks:

The method searches the star of this vertex for the element which implements vertexSimplexOrEdge and returns its index as described in GetStar*() methods above. The vertexSimplexOrEdge is assumed to be queried from one of: ISimplex, ISimplexEx_KC, IVertex, IVertexEx_KC, IEdge_KC