using Chernobyl.Mathematics.Movement;
namespace Chernobyl.Mathematics.Geometry
{
///
/// A that can be translated, rotated, scaled, etc.,
/// but not have a dimension (width, depth, volume, etc).
///
public class NullShape : MatrixTransform, IShape
{
///
/// The largest width of the object in the object's X axis. This property
/// will always return 0.
///
public float Width
{
get { return 0; }
}
///
/// The largest height of the object in the object's Y axis. This property
/// will always return 0.
///
public float Height
{
get { return 0; }
}
///
/// The largest depth of the object in the object's Z axis. If the depth
/// is zero, the object is 2D. This property will always return 0.
///
public float Depth
{
get { return 0; }
}
///
/// True if this is convex, false if it is concave
/// or has 0 (such as a point). A
/// is convex if for every pair of points within
/// the object, every point on the straight line segment that joins them
/// is also within the object. A concave is the
/// opposite of this. This property always return false for the
/// .
///
public bool IsConvex
{
get { return false; }
}
///
/// The amount of space taken up by an object on a flat plane in
/// square metres (m^2). This property always return 0 for the
/// .
///
public float Area
{
get { return 0; }
}
///
/// The amount of 3D space this object consumes in cubic metres (m^3).
/// If this object is 2D, then the value of this property is zero.
/// This property always return 0 for the .
///
public float Volume
{
get { return 0; }
}
///
/// The length of the path that surrounds a shape specified in metres (m).
/// In the case of a closed curve such as a circle, this value represents
/// the circumference of the object. This property always return 0 for
/// the .
///
public float Perimeter
{
get { return 0; }
}
///
/// The minimum number of coordinates needed to specify each point
/// within this object. For example: a point has 0 dimensions, a
/// line has 1 dimension, a circle or rectangle has 2 dimensions, a
/// cube or sphere has 3 dimensions, and a moving cube or sphere has 4.
/// This property always return 0 for the .
///
public uint Dimensions
{
get { return 0; }
}
}
}