TalanSoft Toolkits  201707
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Typedefs | Enumerations | Functions
niPhysics

Detailed Description

Classes

struct  iCollide
 Collide interface. More...
 
struct  iCollideCharacter
 Collide character interface. More...
 
struct  iCollideObject
 Collide object interface. More...
 
struct  iCollideQuery
 Collide query interface. More...
 
struct  iCollideQuery2
 Collide query interface 2nd version. More...
 
struct  iCollideQueryTriangles
 Collide triangles query interface. More...
 
struct  iCollideResponseSink
 Collide response sink. {DispatchWrapper}. More...
 
struct  iCollideResponseTable
 Collide response interface. More...
 
struct  iCollideScene
 Collide scene interface. More...
 
struct  iCollideShape
 Collide shape interface. More...
 
struct  iDynamicsBody
 DynamicsBody interface. More...
 
struct  iDynamicsJoint
 Dynamics joint interface. More...
 
struct  iDynamicsJointBall
 Dynamics ball joint interface. More...
 
struct  iDynamicsJointHinge
 Dynamics hinge joint interface. More...
 
struct  iDynamicsJointSlider
 Dynamics slider joint interface. More...
 
struct  iDynamicsMaterial
 DynamicsMaterial interface. More...
 
struct  iDynamicsScene
 Dynamics interface. More...
 
struct  iDynamicsVehicle
 Dynamics vehicle interface. More...
 

Typedefs

typedef tU32 tCollideMeshFlags
 Collide mesh flags. More...
 
typedef tU32 tCollideQueryTrianglesFlags
 Collide query triangles flags type. More...
 
typedef tU32 tPhysicsDebugDrawFlags
 Physics debug draw flags type. More...
 
typedef astl::list< Ptr
< iDynamicsJoint > > 
tDynamicsJointPtrLst
 
typedef astl::list< Ptr
< iDynamicsJoint > >::iterator 
tDynamicsJointPtrLstIt
 
typedef tU32 tDynamicsBodyFlags
 Dynamics body flags type. More...
 

Enumerations

enum  eCollideMeshFlags {
  eCollideMeshFlags_MaterialID,
  eCollideMeshFlags_DynamicScaling,
  eCollideMeshFlags_Hull,
  eCollideMeshFlags_NotQuantized,
  eCollideMeshFlags_ForceDWORD
}
 Collide mesh flags. More...
 
enum  eCollideCharacterMovement {
  eCollideCharacterMovement_Forward,
  eCollideCharacterMovement_Sideward,
  eCollideCharacterMovement_Gravity,
  eCollideCharacterMovement_Last
}
 Collide character movement type. More...
 
enum  eCollideCharacterStatus {
  eCollideCharacterStatus_None,
  eCollideCharacterStatus_Collide,
  eCollideCharacterStatus_Falling,
  eCollideCharacterStatus_FeetHit,
  eCollideCharacterStatus_Jumping,
  eCollideCharacterStatus_HeadHit,
  eCollideCharacterStatus_ForceDWORD
}
 Collide character status. More...
 
enum  eCollideQueryTrianglesFlags {
  eCollideQueryTrianglesFlags_Clip,
  eCollideQueryTrianglesFlags_CullView,
  eCollideQueryTrianglesFlags_CullClassify,
  eCollideQueryTrianglesFlags_AccNormal,
  eCollideQueryTrianglesFlags_WeightedAccNormal,
  eCollideQueryTrianglesFlags_ForceDWORD
}
 Collide query triangles flags. More...
 
enum  eCollideResponseType {
  eCollideResponseType_None,
  eCollideResponseType_Simple,
  eCollideResponseType_Witnessed,
  eCollideResponseType_Depth,
  eCollideResponseType_Multi,
  eCollideResponseType_ForceDWORD
}
 Collide response type. More...
 
enum  ePhysicsDebugDrawFlags {
  ePhysicsDebugDrawFlags_NoDebug,
  ePhysicsDebugDrawFlags_DrawWireframe,
  ePhysicsDebugDrawFlags_DrawAabb,
  ePhysicsDebugDrawFlags_DrawFeaturesText,
  ePhysicsDebugDrawFlags_DrawContactPoints,
  ePhysicsDebugDrawFlags_NoDeactivation,
  ePhysicsDebugDrawFlags_NoHelpText,
  ePhysicsDebugDrawFlags_DrawText,
  ePhysicsDebugDrawFlags_ProfileTimings,
  ePhysicsDebugDrawFlags_EnableSatComparison,
  ePhysicsDebugDrawFlags_DisableBulletLCP,
  ePhysicsDebugDrawFlags_EnableCCD,
  ePhysicsDebugDrawFlags_DrawConstraints,
  ePhysicsDebugDrawFlags_DrawConstraintLimits,
  ePhysicsDebugDrawFlags_FastWireframe,
  ePhysicsDebugDrawFlags_ForceDWORD
}
 Physics debug draw flags. More...
 
enum  eCollideShapeType {
  eCollideShapeType_Box,
  eCollideShapeType_Sphere,
  eCollideShapeType_Cylinder,
  eCollideShapeType_Mesh,
  eCollideShapeType_MeshHull,
  eCollideShapeType_Compound,
  eCollideShapeType_ForceDWORD
}
 Collide shape type. More...
 
enum  eDynamicsMaterialCombMode {
  eDynamicsMaterialCombMode_Average,
  eDynamicsMaterialCombMode_Min,
  eDynamicsMaterialCombMode_Multiply,
  eDynamicsMaterialCombMode_Max,
  eDynamicsMaterialCombMode_ForceDWORD
}
 Dynamics material combination modes. More...
 
enum  eDynamicsBodyFlags {
  eDynamicsBodyFlags_Static,
  eDynamicsBodyFlags_ForceDWORD
}
 Dynamics body flags. More...
 

Functions

iUnknown * New_niPhysics_Collide (const Var &avarA, const Var &avarB)
 

Typedef Documentation

typedef tU32 tCollideMeshFlags

Collide mesh flags.

See also
ni::eCollideMeshFlags
typedef tU32 tCollideQueryTrianglesFlags

Collide query triangles flags type.

See also
ni::eCollideQueryTrianglesFlags_FirstHitOnly
typedef tU32 tPhysicsDebugDrawFlags

Physics debug draw flags type.

See also
ni::ePhysicsDebugDrawFlags
typedef astl::list< Ptr<iDynamicsJoint> > tDynamicsJointPtrLst
typedef astl::list< Ptr<iDynamicsJoint> >::iterator tDynamicsJointPtrLstIt
typedef tU32 tDynamicsBodyFlags

Dynamics body flags type.

See also
ni::eDynamicsBodyFlags

Enumeration Type Documentation

enum eCollideMeshFlags

Collide mesh flags.

Enumerator
eCollideMeshFlags_MaterialID 

Material ID.

Remarks
The material id should be put as fourth index in the index array.
eCollideMeshFlags_DynamicScaling 

Dynamic Scaling.

Remarks
The collide mesh is frequently rescaled (maybe every frame) and as such should support fast non-uniform scaling.
eCollideMeshFlags_Hull 

Computes a convex hull of the mesh and sets it as the collide shape.

eCollideMeshFlags_NotQuantized 

Don't quantize the aabb tree, sacrifice memory usage for faster build time.

eCollideMeshFlags_ForceDWORD 
enum eCollideCharacterMovement

Collide character movement type.

Enumerator
eCollideCharacterMovement_Forward 

Forward movement.

eCollideCharacterMovement_Sideward 

Sideward/strafe movement.

eCollideCharacterMovement_Gravity 

Gravity/upward movement.

eCollideCharacterMovement_Last 
enum eCollideCharacterStatus

Collide character status.

Enumerator
eCollideCharacterStatus_None 
eCollideCharacterStatus_Collide 
eCollideCharacterStatus_Falling 
eCollideCharacterStatus_FeetHit 
eCollideCharacterStatus_Jumping 
eCollideCharacterStatus_HeadHit 
eCollideCharacterStatus_ForceDWORD 
enum eCollideQueryTrianglesFlags

Collide query triangles flags.

Enumerator
eCollideQueryTrianglesFlags_Clip 

Clip the triangles according to the specified clipping planes.

eCollideQueryTrianglesFlags_CullView 

Cull/Discard the triangles according to the specified culling 'view'.

See also
ni::iCollideQueryTriangles::SetCullingView
eCollideQueryTrianglesFlags_CullClassify 

Cull/Discard the triangles according to the clipping planes and the culling classification flags.

See also
ni::iCollideQueryTriangles::SetCullingClassify
eCollideQueryTrianglesFlags_AccNormal 

Compute the accumulated normal.

eCollideQueryTrianglesFlags_WeightedAccNormal 

Compute a area weighted accumulated normal.

eCollideQueryTrianglesFlags_ForceDWORD 
enum eCollideResponseType

Collide response type.

Enumerator
eCollideResponseType_None 

No collision detection.

eCollideResponseType_Simple 

Simple collision detection, not additional information set in the collide query.

eCollideResponseType_Witnessed 

Witnessed collision detection. Sets point1 and point2 to points that are contained in the intersection of the two objects.

Remarks
Point1 and point2 do not represent the penetration depth as any of the contact points will be set.
eCollideResponseType_Depth 

Depth collision detection. Sets point1 and point2 to points from which the penetration depth can be derived.

Remarks
The penetration depth vector is the shortest vector over which one object needs to be translated in order to bring the two objects into touching contact. The point1 and point2 fields contain the witness points of the penetration depth, thus the penetration depth direction is: point2 - point1.
eCollideResponseType_Multi 

Mutliple contact points collision detection, in the collide query the normal represent the penetration depth vector.

Remarks
This is similar to depth collision response excepted that the response sink will be called once for each contact point reported whereas Depth will report only an 'average' of the contact points to get the object out of collision.
The normal is the normal where the second object is in contact. The normal of 'point2' on object2.
eCollideResponseType_ForceDWORD 
enum ePhysicsDebugDrawFlags

Physics debug draw flags.

Enumerator
ePhysicsDebugDrawFlags_NoDebug 
ePhysicsDebugDrawFlags_DrawWireframe 
ePhysicsDebugDrawFlags_DrawAabb 
ePhysicsDebugDrawFlags_DrawFeaturesText 
ePhysicsDebugDrawFlags_DrawContactPoints 
ePhysicsDebugDrawFlags_NoDeactivation 
ePhysicsDebugDrawFlags_NoHelpText 
ePhysicsDebugDrawFlags_DrawText 
ePhysicsDebugDrawFlags_ProfileTimings 
ePhysicsDebugDrawFlags_EnableSatComparison 
ePhysicsDebugDrawFlags_DisableBulletLCP 
ePhysicsDebugDrawFlags_EnableCCD 
ePhysicsDebugDrawFlags_DrawConstraints 
ePhysicsDebugDrawFlags_DrawConstraintLimits 
ePhysicsDebugDrawFlags_FastWireframe 
ePhysicsDebugDrawFlags_ForceDWORD 
enum eCollideShapeType

Collide shape type.

Enumerator
eCollideShapeType_Box 

Box. The datatable is :

  • type: "Box"
  • size: vec3
eCollideShapeType_Sphere 

Sphere. The datatable is.

  • type: "Sphere"
  • radius: float
eCollideShapeType_Cylinder 

Cylinder. The datatable is :

  • type: "Cylinder"
  • radius: float
  • height: float
eCollideShapeType_Mesh 

Mesh. The datatable is :

eCollideShapeType_MeshHull 

Mesh Hull.

Remarks
Same as the mesh excepted that the eCollideMeshFlags_Hull is always set
eCollideShapeType_Compound 

Compound object. The datatable is :

eCollideShapeType_ForceDWORD 
enum eDynamicsMaterialCombMode

Dynamics material combination modes.

Remarks
This decides how two material properties are combined when colliding. If the two differ the enum with the highest number is used.
Enumerator
eDynamicsMaterialCombMode_Average 

result = (value1 + value2)/2

eDynamicsMaterialCombMode_Min 

result = min(value1, value2)

eDynamicsMaterialCombMode_Multiply 

result = value1 * value2

eDynamicsMaterialCombMode_Max 

result = max(value1, value2)

eDynamicsMaterialCombMode_ForceDWORD 
enum eDynamicsBodyFlags

Dynamics body flags.

Enumerator
eDynamicsBodyFlags_Static 

Static/kinematic body.

eDynamicsBodyFlags_ForceDWORD 

Function Documentation

ni::iUnknown * New_niPhysics_Collide ( const Var &  avarA,
const Var &  avarB 
)