Public Member Functions | Protected Member Functions | Protected Attributes
PlanesCollider Class Reference

#include <OPC_PlanesCollider.h>

Inheritance diagram for PlanesCollider:
Inheritance graph
[legend]

List of all members.

Public Member Functions

bool Collide (PlanesCache &cache, const Plane *planes, udword nb_planes, const Model &model, const Matrix4x4 *worldm=null)
inline_ bool Collide (PlanesCache &cache, const OBB &box, const Model &model, const Matrix4x4 *worldb=null, const Matrix4x4 *worldm=null)
 override (Collider) const char *ValidateSettings()
 PlanesCollider ()
void setCollisionPairInserter (hrp::CollisionPairInserterBase *collisionPairInserter)
virtual ~PlanesCollider ()

Protected Member Functions

void _Collide (const AABBCollisionNode *node, udword clip_mask)
void _Collide (const AABBNoLeafNode *node, udword clip_mask)
void _Collide (const AABBQuantizedNode *node, udword clip_mask)
void _Collide (const AABBQuantizedNoLeafNode *node, udword clip_mask)
void _CollideNoPrimitiveTest (const AABBCollisionNode *node, udword clip_mask)
void _CollideNoPrimitiveTest (const AABBNoLeafNode *node, udword clip_mask)
void _CollideNoPrimitiveTest (const AABBQuantizedNode *node, udword clip_mask)
void _CollideNoPrimitiveTest (const AABBQuantizedNoLeafNode *node, udword clip_mask)
BOOL InitQuery (PlanesCache &cache, const Plane *planes, udword nb_planes, const Matrix4x4 *worldm=null)
inline_ BOOL PlanesAABBOverlap (const Point &center, const Point &extents, udword &out_clip_mask, udword in_clip_mask)
inline_ BOOL PlanesTriOverlap (udword in_clip_mask)

Protected Attributes

hrp::CollisionPairInserterBasecollisionPairInserter
udword mNbPlanes
PlanemPlanes
VertexPointers mVP

Detailed Description

Contains a Planes-vs-tree collider.

Author:
Pierre Terdiman
Version:
1.3
Date:
January, 1st, 2002

Definition at line 30 of file OPC_PlanesCollider.h.


Constructor & Destructor Documentation

virtual PlanesCollider::~PlanesCollider ( ) [virtual]

Member Function Documentation

void PlanesCollider::_Collide ( const AABBCollisionNode node,
udword  clip_mask 
) [protected]
void PlanesCollider::_Collide ( const AABBNoLeafNode node,
udword  clip_mask 
) [protected]
void PlanesCollider::_Collide ( const AABBQuantizedNode node,
udword  clip_mask 
) [protected]
void PlanesCollider::_Collide ( const AABBQuantizedNoLeafNode node,
udword  clip_mask 
) [protected]
void PlanesCollider::_CollideNoPrimitiveTest ( const AABBNoLeafNode node,
udword  clip_mask 
) [protected]
bool PlanesCollider::Collide ( PlanesCache cache,
const Plane planes,
udword  nb_planes,
const Model model,
const Matrix4x4 worldm = null 
)

Generic collision query for generic OPCODE models. After the call, access the results:

Parameters:
cache[in/out] a planes cache
planes[in] list of planes in world space
nb_planes[in] number of planes
model[in] Opcode model to collide with
worldm[in] model's world matrix, or null
Returns:
true if success
Warning:
SCALE NOT SUPPORTED. The matrices must contain rotation & translation parts only.
inline_ bool PlanesCollider::Collide ( PlanesCache cache,
const OBB box,
const Model model,
const Matrix4x4 worldb = null,
const Matrix4x4 worldm = null 
) [inline]

Definition at line 59 of file OPC_PlanesCollider.h.

BOOL PlanesCollider::InitQuery ( PlanesCache cache,
const Plane planes,
udword  nb_planes,
const Matrix4x4 worldm = null 
) [protected]

Validates current settings. You should call this method after all the settings and callbacks have been defined for a collider.

Returns:
null if everything is ok, else a string describing the problem

Reimplemented from VolumeCollider.

inline_ BOOL PlanesCollider::PlanesAABBOverlap ( const Point center,
const Point extents,
udword out_clip_mask,
udword  in_clip_mask 
) [protected]

Planes-AABB overlap test.

  • original code by Ville Miettinen, from Umbra/dPVS (released on the GD-Algorithms mailing list)
  • almost used "as-is", I even left the comments (hence the frustum-related notes)
Parameters:
center[in] box center
extents[in] box extents
out_clip_mask[out] bitmask for active planes
in_clip_mask[in] bitmask for active planes
Returns:
TRUE if boxes overlap planes

Definition at line 14 of file OPC_PlanesAABBOverlap.h.

inline_ BOOL PlanesCollider::PlanesTriOverlap ( udword  in_clip_mask) [protected]

Planes-triangle overlap test.

Parameters:
in_clip_mask[in] bitmask for active planes
Returns:
TRUE if triangle overlap planes
Warning:
THIS IS A CONSERVATIVE TEST !! Some triangles will be returned as intersecting, while they're not!

Definition at line 11 of file OPC_PlanesTriOverlap.h.

Definition at line 37 of file OPC_PlanesCollider.h.


Member Data Documentation

Definition at line 91 of file OPC_PlanesCollider.h.

Definition at line 93 of file OPC_PlanesCollider.h.

Definition at line 94 of file OPC_PlanesCollider.h.

Definition at line 96 of file OPC_PlanesCollider.h.


The documentation for this class was generated from the following files:


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Apr 11 2019 03:30:21