A simple convex shape built from a low number of points in local space. More...
#include <collisionshape.h>
Public Member Functions | |
ConvexHullCollisionShape (const String &Name, const std::vector< Vector3 > &Points) | |
Class Constructor. More... | |
ConvexHullCollisionShape (const String &Name, btConvexHullShape *BulletShape) | |
Internal Constructor. More... | |
ConvexHullCollisionShape (XML::Node OneNode) | |
DeSerializing Constructor. More... | |
virtual | ~ConvexHullCollisionShape () |
Class Destructor. | |
virtual void | AddPoint (const Vector3 &Point) |
Adds a point to this shape. More... | |
virtual btConvexHullShape * | GetBulletHullShape () const |
virtual Whole | GetNumPoints () const |
Gets the total number of points being stored in this shape. More... | |
virtual Vector3 | GetPoint (const Whole &Index) const |
Gets a stored point as it is scaled in this ConvexHull. More... | |
virtual CollisionShape::ShapeType | GetType () const |
Gets the type of Collision shape this is. More... | |
virtual Vector3 | GetUnscaledPoint (const Whole &Index) const |
Gets an unscaled stored point in this ConvexHull. More... | |
virtual bool | IsInside (const Vector3 &Location, const Real &Tolerance) const |
Checks to see if a point in local space is inside this shape. More... | |
virtual void | ProtoDeSerialize (const XML::Node &OneNode) |
virtual void | ProtoSerialize (XML::Node &CurrentRoot) const |
Public Member Functions inherited from Mezzanine::Physics::PrimitiveCollisionShape | |
PrimitiveCollisionShape () | |
Class Constructor. | |
virtual | ~PrimitiveCollisionShape () |
Class Destructor. | |
virtual btConvexInternalShape * | GetBulletConvexShape () const |
Public Member Functions inherited from Mezzanine::Physics::CollisionShape | |
CollisionShape () | |
Class Constructor. | |
virtual | ~CollisionShape () |
Class Destructor. | |
virtual btCollisionShape * | _GetInternalShape () const |
Gets the internal shape pointer this collision shape is based on. More... | |
virtual void | _SetShapeName (const String &NewName) |
Sets the name of this collision shape. More... | |
virtual Real | GetMargin () const |
Gets the amount of padding currently being applied to the collision shape. More... | |
virtual const String & | GetName () const |
Gets the name of this shape. More... | |
virtual Vector3 | GetScaling () const |
Gets the current scaling being applied to the collision shape. More... | |
virtual void | SetMargin (const Real &Margin) |
Sets the padding that will be applied when checking for collisions. More... | |
virtual void | SetScaling (const Vector3 &Scaling) |
Scales the collision shape on each of it's axes. More... | |
Static Public Member Functions | |
static String | SerializableName () |
Get the name of the the XML tag this class will leave behind as its instances are serialized. More... | |
Static Public Member Functions inherited from Mezzanine::Physics::PrimitiveCollisionShape | |
static String | SerializableName () |
Get the name of the the XML tag this class will leave behind as its instances are serialized. More... | |
Static Public Member Functions inherited from Mezzanine::Physics::CollisionShape | |
static String | SerializableName () |
Get the name of the the XML tag this class will leave behind as its instances are serialized. More... | |
Additional Inherited Members | |
Public Types inherited from Mezzanine::Physics::CollisionShape | |
enum | ShapeType { ST_Box = 0, ST_Capsule = 1, ST_Compound = 2, ST_Cone = 3, ST_ConvexHull = 4, ST_Cylinder = 5, ST_MultiSphere = 6, ST_Sphere = 7, ST_DynamicTriMesh = 8, ST_Heightfield = 9, ST_Plane = 10, ST_Soft = 11, ST_StaticTriMesh = 12 } |
This enum describes what kind of shape you are currently working with. More... | |
Protected Member Functions inherited from Mezzanine::Physics::PrimitiveCollisionShape | |
void | SetPointers (btConvexInternalShape *Shape) |
Sets the internal pointers on the base classes. | |
Protected Attributes inherited from Mezzanine::Physics::CollisionShape | |
String | Name |
Storage for the name of this class instance. | |
btCollisionShape * | ShapeBase |
A pointer to the bullet collision this uses. | |
A simple convex shape built from a low number of points in local space.
A convex hull is commonly used to generate a simple approximation of another, and more complicated, shape. Usually the number of points in a convex hull doesn't exceed 32.
When a convex hull is generated automatically from an algorithm, the best way to think of the resulting shape in relation to the original shape is if you were to wrap a rubber band around it on one plane. Then do this for all planes and all surfaces. The resulting shape looks and behaves similar to that.
Definition at line 62 of file convexhullcollisionshape.h.
Mezzanine::Physics::ConvexHullCollisionShape::ConvexHullCollisionShape | ( | const String & | Name, |
const std::vector< Vector3 > & | Points | ||
) |
Class Constructor.
Name | The name of this Shape. |
Points | A vector of vector3's containing all the points in local space to construct this shape from. |
Definition at line 56 of file convexhullcollisionshape.cpp.
Mezzanine::Physics::ConvexHullCollisionShape::ConvexHullCollisionShape | ( | const String & | Name, |
btConvexHullShape * | BulletShape | ||
) |
Internal Constructor.
Name | The name of this Shape. |
BulletShape | The internal shape this shape is based on. |
Definition at line 72 of file convexhullcollisionshape.cpp.
Mezzanine::Physics::ConvexHullCollisionShape::ConvexHullCollisionShape | ( | XML::Node | OneNode) |
DeSerializing Constructor.
OneNode | The node to use for constructing this shape |
Definition at line 79 of file convexhullcollisionshape.cpp.
|
virtual |
Adds a point to this shape.
Point | The location in local space to be added. |
Definition at line 101 of file convexhullcollisionshape.cpp.
|
virtual |
Definition at line 132 of file convexhullcollisionshape.cpp.
|
virtual |
Gets the total number of points being stored in this shape.
Definition at line 117 of file convexhullcollisionshape.cpp.
Gets a stored point as it is scaled in this ConvexHull.
Index | The index of the point desired. |
Definition at line 112 of file convexhullcollisionshape.cpp.
|
virtual |
Gets the type of Collision shape this is.
Implements Mezzanine::Physics::PrimitiveCollisionShape.
Definition at line 127 of file convexhullcollisionshape.cpp.
|
virtual |
Gets an unscaled stored point in this ConvexHull.
Index | The index of the point desired. |
Definition at line 106 of file convexhullcollisionshape.cpp.
|
virtual |
Checks to see if a point in local space is inside this shape.
Location | The specified point to perform the check. |
Tolerance | The amount of leeway to give in the check. If the distance from the specified point is equal or less then the Tolorance provided then this will return true. |
Definition at line 122 of file convexhullcollisionshape.cpp.
|
virtual |
Reimplemented from Mezzanine::Physics::PrimitiveCollisionShape.
Definition at line 157 of file convexhullcollisionshape.cpp.
|
virtual |
Reimplemented from Mezzanine::Physics::PrimitiveCollisionShape.
Definition at line 135 of file convexhullcollisionshape.cpp.
|
static |
Get the name of the the XML tag this class will leave behind as its instances are serialized.
Definition at line 187 of file convexhullcollisionshape.cpp.