Click or drag to resize
DigitalRuneDcelMesh Class
A mesh represented by a Doubly-Connected Edge List (DCEL).
Inheritance Hierarchy
SystemObject
  DigitalRune.Geometry.MeshesDcelMesh

Namespace: DigitalRune.Geometry.Meshes
Assembly: DigitalRune.Geometry (in DigitalRune.Geometry.dll) Version: 1.18.0.0 (1.18.2.14427)
Syntax
public class DcelMesh

The DcelMesh type exposes the following members.

Constructors
  NameDescription
Public methodDcelMesh
Initializes a new empty instance of the DcelMesh class.
Public methodDcelMesh(DcelMesh)
Initializes a new instance of the DcelMesh class that is a copy of the given mesh.
Top
Methods
  NameDescription
Public methodAreTagsEqualTo
Gets a value indicating whether the tags of all components in the mesh are equal to the given tag value.
Public methodContains
Determines whether the specified point is contained in the mesh. (This method assumes that the mesh is a convex polyhedron.)
Public methodStatic memberCreateCube
Creates a mesh for unit cube.
Public methodCutConvex
Cuts mesh with a plane.
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodStatic memberFromTriangleMesh(ITriangleMesh)
Converts the given ITriangleMesh to a DcelMesh.
Public methodStatic memberFromTriangleMesh(TriangleMesh)
Converts the given ITriangleMesh to a DcelMesh.
Public methodGetAabb
Gets the axis-aligned bounding box of this mesh.
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsClosed
Determines whether this mesh is a closed mesh.
Public methodIsConvex
Determines whether this mesh is a convex mesh.
Public methodIsConvex(Single)
Determines whether this mesh is a convex mesh using a specific tolerance.
Public methodIsTriangleMesh
Determines whether the mesh is a valid triangle mesh.
Public methodIsValid
Determines whether this instance is a valid mesh.
Public methodIsValid(String)
Determines whether this instance is a valid mesh and returns an error description.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodModifyConvex(Int32, Vector3F)
Modifies a convex mesh by reducing the vertices and applying a skin width.
Public methodModifyConvex(Int32, Single)
Modifies a convex mesh by reducing the vertices and applying a skin width.
Public methodResetTags
Resets the tags in the DCEL data. (Tags are set to 0.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodToTriangleMesh
Converts this mesh to a TriangleMesh.
Top
Properties
  NameDescription
Public propertyDirty
Gets or sets a value indicating whether this DcelMesh is dirty.
Public propertyEdges
Gets the edges (as a read-only list).
Public propertyFaces
Gets the faces (as a read-only list).
Public propertyVertex
Gets or sets the vertex.
Public propertyVertices
Gets the vertices (as a read-only list).
Top
Remarks

This implementation follows the description of Doubly-Connected Edge Lists in the book "Computational Geometry", de Berg et al.

This class exposes one vertex of the mesh. Other mesh components can be found by navigating the DCEL data structures beginning at Vertex.

For convenience, component lists (Vertices, Edges and Faces) are automatically generated when required. Whenever the mesh is modified (components are added or removed), the flag Dirty must be set. Then the component list are automatically recreated the next time they are accessed.

Handling Tags: The DCEL data structures (DcelVertex, DcelEdge and DcelFace) have "tags" (integer properties) which can be used to mark components when navigating or modifying the mesh. This tags can be used by different operations that act on the mesh.

See Also