Defines the volume of an IGeometricObject.

Namespace: DigitalRune.Geometry.Shapes
Assembly: DigitalRune.Geometry (in DigitalRune.Geometry.dll) Version: 1.9.0.0 (1.9.3.9490)

Syntax

C#
[SerializableAttribute]
[XmlIncludeAttribute(typeof(LineShape))]
[XmlIncludeAttribute(typeof(BoxShape))]
[XmlIncludeAttribute(typeof(CapsuleShape))]
[XmlIncludeAttribute(typeof(CircleShape))]
[XmlIncludeAttribute(typeof(PerspectiveViewVolume))]
[XmlIncludeAttribute(typeof(TriangleShape))]
[XmlIncludeAttribute(typeof(ConvexPolyhedron))]
[XmlIncludeAttribute(typeof(CylinderShape))]
[XmlIncludeAttribute(typeof(EmptyShape))]
[XmlIncludeAttribute(typeof(InfiniteShape))]
[XmlIncludeAttribute(typeof(LineSegmentShape))]
[XmlIncludeAttribute(typeof(OrthographicViewVolume))]
[XmlIncludeAttribute(typeof(ConeShape))]
[XmlIncludeAttribute(typeof(PlaneShape))]
[XmlIncludeAttribute(typeof(PointShape))]
[XmlIncludeAttribute(typeof(RayShape))]
[XmlIncludeAttribute(typeof(RectangleShape))]
[XmlIncludeAttribute(typeof(SphereShape))]
[XmlIncludeAttribute(typeof(ScaledConvexShape))]
public abstract class Shape : ICloneable
Visual Basic
<SerializableAttribute> _
<XmlIncludeAttribute(GetType(LineShape))> _
<XmlIncludeAttribute(GetType(BoxShape))> _
<XmlIncludeAttribute(GetType(CapsuleShape))> _
<XmlIncludeAttribute(GetType(CircleShape))> _
<XmlIncludeAttribute(GetType(PerspectiveViewVolume))> _
<XmlIncludeAttribute(GetType(TriangleShape))> _
<XmlIncludeAttribute(GetType(ConvexPolyhedron))> _
<XmlIncludeAttribute(GetType(CylinderShape))> _
<XmlIncludeAttribute(GetType(EmptyShape))> _
<XmlIncludeAttribute(GetType(InfiniteShape))> _
<XmlIncludeAttribute(GetType(LineSegmentShape))> _
<XmlIncludeAttribute(GetType(OrthographicViewVolume))> _
<XmlIncludeAttribute(GetType(ConeShape))> _
<XmlIncludeAttribute(GetType(PlaneShape))> _
<XmlIncludeAttribute(GetType(PointShape))> _
<XmlIncludeAttribute(GetType(RayShape))> _
<XmlIncludeAttribute(GetType(RectangleShape))> _
<XmlIncludeAttribute(GetType(SphereShape))> _
<XmlIncludeAttribute(GetType(ScaledConvexShape))> _
Public MustInherit Class Shape _
	Implements ICloneable
Visual C++
[SerializableAttribute]
[XmlIncludeAttribute(typeof(LineShape))]
[XmlIncludeAttribute(typeof(BoxShape))]
[XmlIncludeAttribute(typeof(CapsuleShape))]
[XmlIncludeAttribute(typeof(CircleShape))]
[XmlIncludeAttribute(typeof(PerspectiveViewVolume))]
[XmlIncludeAttribute(typeof(TriangleShape))]
[XmlIncludeAttribute(typeof(ConvexPolyhedron))]
[XmlIncludeAttribute(typeof(CylinderShape))]
[XmlIncludeAttribute(typeof(EmptyShape))]
[XmlIncludeAttribute(typeof(InfiniteShape))]
[XmlIncludeAttribute(typeof(LineSegmentShape))]
[XmlIncludeAttribute(typeof(OrthographicViewVolume))]
[XmlIncludeAttribute(typeof(ConeShape))]
[XmlIncludeAttribute(typeof(PlaneShape))]
[XmlIncludeAttribute(typeof(PointShape))]
[XmlIncludeAttribute(typeof(RayShape))]
[XmlIncludeAttribute(typeof(RectangleShape))]
[XmlIncludeAttribute(typeof(SphereShape))]
[XmlIncludeAttribute(typeof(ScaledConvexShape))]
public ref class Shape abstract : ICloneable

Remarks

A Shape defines the space that is occupied by an object. Shape is the common base class of all types of shapes in DigitalRune Geometry.

Shapes are defined in the local coordinate system of the owning object (also known as local space, object space or body space). Shapes are abstracted from other properties such as color, material, or even position and orientation. Most shapes contain only properties that define their dimensions ("width", "height", "radius", etc.). For example, a SphereShape consists only of a radius that defines the size of the sphere. The sphere is centered in the local coordinate system.

However, some shapes like the PointShape, the TriangleShape or the RayShape, are defined using position and orientation vectors ("Vertex0", "Origin", "Direction", etc.). Thus, they can be also positioned in local coordinate space.

An IGeometricObject is used to position an object in the world coordinate space. An IGeometricObject consists of a Shape, a Scale and a Pose (= position and orientation).

Cloning: Shapes are cloneable (see ICloneable). The method Clone()()()() creates a deep copy of the shape - except when documented otherwise (see description of derived classes).

Inheritance Hierarchy

See Also