|
typedef Function< void(Node *pContext, GeometricBase *pObject, IntersectionData &data) > | IntersectionFunction |
|
typedef UnorderedMap< Node *, IntersectionFunction > | ObjectCallbackMap |
|
typedef UnorderedMap< Handle, IntersectionFunction > | PlaneCallbackMap |
|
using | BoundaryPlane = BoundaryPrimitive< Vector4f > |
|
using | BoundaryPolygon = BoundaryPrimitive< Primitive3D::Polygon > |
|
typedef UnorderedMap< GeometricBase *, Primitive3D::Capsule > | GeometricCapsuleMap |
|
typedef UnorderedMap< GeometricBase *, Primitive3D::Segment > | GeometricSegmentMap |
|
typedef UnorderedMap< GeometricBase *, Primitive3D::SegmentArray > | GeometricSegmentArrayMap |
|
typedef UnorderedMap< GeometricBase *, Vector4f > | GeometricPlaneMap |
|
typedef UnorderedMap< GeometricBase *, Primitive3D::Disk > | GeometricDiskMap |
|
typedef UnorderedMap< GeometricBase *, Primitive3D::Polygon > | GeometricPolygonMap |
|
typedef UnorderedMap< GeometricBase *, Vertex3fArray > | GeometricContourMap |
|
typedef List< GeometricBase * > | GeometricBaseList |
|
|
| Physical (const Attribute &attribute, const Matrix4f &matrix, float nearZClip, float farZClip) |
|
virtual | ~Physical () |
|
virtual void | createModel () |
|
virtual void | renderMaterialLists () |
|
void | evaluate () |
|
virtual void | addGeometricObject (GeometricBase *pObject) |
|
virtual void | removeGeometricObject (GeometricBase *pObject) |
|
void | setAttribute (const Attribute &attribute) |
|
const Attribute & | getAttribute () |
|
const Velocity & | getVelocity (GeometricBase *pObject) |
|
void | setVelocity (GeometricBase *pObject, const Velocity &velocity) |
|
GeometricAttribute & | getGeometricAttribute (GeometricBase *pObject) |
|
void | setGeometricAttributes (GeometricBase *pObject, const GeometricAttribute &attributes) |
|
void | applyTranslationalForce (GeometricBase *pObject, const Vector3f &force) |
|
void | applyRotationalForce (GeometricBase *pObject, const Vector3f &force) |
|
bool | boundingRadiusIntersect (GeometricBase *pObjectA, GeometricBase *pObjectB) |
|
bool | sphereObjectIntersect (const Primitive3D::Sphere &sphere, GeometricBase *pObjectB) |
|
bool | capsuleObjectIntersect (const Primitive3D::Capsule &capsule, GeometricBase *pObjectB) |
|
IntersectionData | getIntersection (GeometricBase *pObjectA, GeometricBase *pObjectB) |
|
IntersectionData | getIntersection (Primitive3D::Sphere sphere, GeometricBase *pObject) |
|
IntersectionData | getIntersection (Primitive3D::Capsule capsule, GeometricBase *pObject) |
|
void | setSegment (GeometricBase *pObject, const Primitive3D::Segment &segment) |
|
void | setSegmentArray (GeometricBase *pObject, const Primitive3D::SegmentArray &array) |
|
void | setContour (GeometricBase *pObject, const Vertex3fArray &contour) |
|
void | setCapsule (GeometricBase *pObject, const Primitive3D::Capsule &capsule) |
|
void | setPolygon (GeometricBase *pObject, const Primitive3D::Polygon &polygon) |
|
void | setPlane (GeometricBase *pObject, const Vector4f &plane) |
|
void | setDisk (GeometricBase *pObject, const Primitive3D::Disk &disk) |
|
void | addCollisionCallback (Node *pContext, IntersectionFunction function) |
|
void | addBoundary (Boundary *pBoundary) |
|
Vertex3f | boundPosition (GeometricBase *pObject, Vertex3f newPosition) |
|
| Display (const Matrix4f &projectionMatrix, float nearZClip, float farZClip) |
|
virtual void | addMaterialList (const Surface::MaterialList &pMaterial) |
|
virtual void | clearMaterialLists () |
|
void | addPreprocessor (Scene *pScene) |
|
void | removePreprocessor (Scene *pScene) |
|
| Scene (const Matrix4f &projectionMatrix, float nearZClip, float farZClip) |
|
virtual | ~Scene () |
|
virtual void | removeGeometricObject (Node *pObject) |
|
virtual void | addMaterials () |
|
void | queueGeometricObject (GeometricBase *pObject) |
|
void | queueGeometricObject (Node *pObject) |
|
bool | hasFrameBuffer (FrameBuffer *pFrameBuffer) |
|
void | addFrameBuffer (FrameBuffer *pFrameBuffer) |
|
void | removeFrameBuffer (FrameBuffer *pFrameBuffer) |
|
bool | inDisplayArea (GeometricBase *pObject) |
|
bool | inDisplayArea () |
|
const Matrix4f & | getModel (GeometricBase *pObject) |
|
const UnorderedMap< Node *, Matrix4f > & | getNodeModel () const |
|
Primitive3D::AABoundingBox | getAABoundingBox () |
|
Primitive3D::AABoundingBox | getAABoundingBox (GeometricBase *pObject) |
|
Primitive3D::AABoundingBox | getNDCAABoundingBox () |
|
Primitive3D::AABoundingBox | getNDCAABoundingBox (GeometricBase *pObject) |
|
uint | getGeometricObjectSize () |
|
const GeometricBaseList & | getGeometricObject () |
|
void | updateCamera () |
|
void | renderMaterialList (Surface::MaterialList &pList, Surface::MaterialSortFunction sortFunction, float clipFactor=1.0f) |
|
void | renderMaterial (Surface::Material *pMaterial) |
|
void | setCamera (Camera *pCamera) |
|
Camera * | getCamera () |
|
const Matrix4f & | getProjectionMatrix () |
|
const Matrix4f & | getViewMatrix () |
|
float | getNearZClip () |
|
float | getFarZClip () |
|
bool | hasGeometricObject (GeometricBase *pObject) |
|
Vertex4f | project (const Vertex3f &vertex) |
|
Vertex3f | unProject (const Vertex4f &vertex) |
|
Vertex3f | localToNdc (Vertex3f point) |
|
Vertex3f | ndcToLocal (Vertex3f point, float w) |
|
| DynamicType () |
|
template<class C > |
void | addType () |
|
TypeID | getDerivedTypeId () const |
|
template<class C > |
const bool | isType () const |
|
template<class C > |
const C * | cast () const |
|
template<class C > |
C * | cast () |
|
template<class FROM , class TO > |
TO * | cast () |
|
template<class FROM , class TO > |
const TO * | cast () const |
|
A Scene that applies laws of newtonian/classical physics to objects.
For a given GeometricObject, apply a translational-contact force for a single moment in time. Note that this Scene does not create animations. And if an Animation is created for this object outside the context of this Scene, unexpected results will occur. In general callbacks generated by this Scene would be used for that purpose (eg. explosions, special-effects..).
An example usage of this method would be a user-driven event such as move in a direction, turns, and jumps. In the case of a jump, the vector would have a non-zero y-component to the force.
- Parameters
-
Pointer | to the object within Physical::Node family. |
The | vector representation of force to be applied to the object. |