Classes | Typedefs | Enumerations | Functions
Opcode Namespace Reference

Classes

class  AABBCollisionNode
class  AABBCollisionTree
class  AABBNoLeafNode
class  AABBNoLeafTree
class  AABBOptimizedTree
class  AABBQuantizedNode
class  AABBQuantizedNoLeafNode
class  AABBQuantizedNoLeafTree
class  AABBQuantizedTree
class  AABBTree
class  AABBTreeBuilder
class  AABBTreeCollider
class  AABBTreeNode
class  AABBTreeOfAABBsBuilder
class  AABBTreeOfTrianglesBuilder
class  AABBTreeOfVerticesBuilder
class  BaseModel
struct  BuildSettings
 Simple wrapper around build-related settings [Opcode 1.3]. More...
struct  BVTCache
class  Collider
class  CollisionAABB
class  CollisionFace
class  CollisionFaces
class  HybridModel
class  HybridPlanesCollider
class  HybridSphereCollider
struct  LeafTriangles
 Leaf descriptor. More...
class  MeshInterface
class  Model
struct  OPCODECREATE
 Model creation structure. More...
struct  PlanesCache
class  PlanesCollider
class  QuantizedAABB
class  RayCollider
class  SAP_Box
class  SAP_Element
class  SAP_EndPoint
struct  SphereCache
class  SphereCollider
struct  VertexPointers
struct  VolumeCache
class  VolumeCollider

Typedefs

typedef void(* CullingCallback )(udword nb_primitives, udword *node_primitives, BOOL need_clipping, void *user_data)
typedef CullMode(* CullModeCallback )(udword triangle_index, void *user_data)
typedef bool(* GenericWalkingCallback )(const void *current, void *user_data)
typedef void(* HitCallback )(const CollisionFace &hit, void *user_data)
typedef bool(* WalkingCallback )(const AABBTreeNode *current, udword depth, void *user_data)

Enumerations

enum  CollisionFlag {
  OPC_FIRST_CONTACT = (1<<0), OPC_TEMPORAL_COHERENCE = (1<<1), OPC_CONTACT = (1<<2), OPC_TEMPORAL_HIT = (1<<3),
  OPC_NO_PRIMITIVE_TESTS = (1<<4), OPC_CONTACT_FOUND = OPC_FIRST_CONTACT | OPC_CONTACT, OPC_TEMPORAL_CONTACT = OPC_TEMPORAL_HIT | OPC_CONTACT, OPC_FORCE_DWORD = 0x7fffffff
}
enum  CullMode { CULLMODE_NONE = 0, CULLMODE_CW = 1, CULLMODE_CCW = 2 }
enum  ModelFlag { OPC_QUANTIZED = (1<<0), OPC_NO_LEAF = (1<<1), OPC_SINGLE_NODE = (1<<2) }
enum  SplittingRules {
  SPLIT_LARGEST_AXIS = (1<<0), SPLIT_SPLATTER_POINTS = (1<<1), SPLIT_BEST_AXIS = (1<<2), SPLIT_BALANCED = (1<<3),
  SPLIT_FIFTY = (1<<4), SPLIT_GEOM_CENTER = (1<<5), SPLIT_FORCE_DWORD = 0x7fffffff
}
 Tree splitting rules. More...

Functions

FUNCTION OPCODE_API bool CloseOpcode ()
FUNCTION OPCODE_API bool InitOpcode ()
OPCODE_API bool Picking (CollisionFace &picked_face, const Ray &world_ray, const Model &model, const Matrix4x4 *world, float min_dist, float max_dist, const Point &view_point, CullModeCallback callback, void *user_data)
OPCODE_API bool SetupAllHits (RayCollider &collider, CollisionFaces &contacts)
OPCODE_API bool SetupClosestHit (RayCollider &collider, CollisionFace &closest_contact)
OPCODE_API bool SetupInOutTest (RayCollider &collider)
OPCODE_API bool SetupShadowFeeler (RayCollider &collider)
inline_ void TransformPoint (Point &dest, const Point &source, const Matrix3x3 &rot, const Point &trans)
 Quickly rotates & translates a vector.

Typedef Documentation

typedef void(* Opcode::CullingCallback)(udword nb_primitives, udword *node_primitives, BOOL need_clipping, void *user_data)

Definition at line 82 of file Opcode.h.

typedef CullMode(* Opcode::CullModeCallback)(udword triangle_index, void *user_data)

Definition at line 33 of file Opcode.h.

typedef bool(* Opcode::GenericWalkingCallback)(const void *current, void *user_data)

Definition at line 146 of file Opcode.h.

typedef void(* Opcode::HitCallback)(const CollisionFace &hit, void *user_data)

User-callback, called by OPCODE to record a hit.

Parameters:
hit[in] current hit
user_data[in] user-defined data from SetCallback()

Definition at line 61 of file Opcode.h.

typedef bool(* Opcode::WalkingCallback)(const AABBTreeNode *current, udword depth, void *user_data)

User-callback, called for each node by the walking code.

Parameters:
current[in] current node
depth[in] current node's depth
user_data[in] user-defined data
Returns:
true to recurse through children, else false to bypass them

Definition at line 112 of file Opcode.h.


Enumeration Type Documentation

Enumerator:
OPC_FIRST_CONTACT 

Report all contacts (false) or only first one (true)

OPC_TEMPORAL_COHERENCE 

Use temporal coherence or not.

OPC_CONTACT 

Final contact status after a collision query.

OPC_TEMPORAL_HIT 

There has been an early exit due to temporal coherence.

OPC_NO_PRIMITIVE_TESTS 

Keep or discard primitive-bv tests in leaf nodes (volume-mesh queries)

OPC_CONTACT_FOUND 
OPC_TEMPORAL_CONTACT 
OPC_FORCE_DWORD 

Definition at line 24 of file Opcode.h.

Enumerator:
CULLMODE_NONE 
CULLMODE_CW 
CULLMODE_CCW 

Definition at line 26 of file Opcode.h.

Enumerator:
OPC_QUANTIZED 

Compressed/uncompressed tree.

OPC_NO_LEAF 

Leaf/NoLeaf tree.

OPC_SINGLE_NODE 

Special case for 1-node models.

Definition at line 44 of file Opcode.h.

Tree splitting rules.

Enumerator:
SPLIT_LARGEST_AXIS 

Split along the largest axis.

SPLIT_SPLATTER_POINTS 

Splatter primitive centers (QuickCD-style)

SPLIT_BEST_AXIS 

Try largest axis, then second, then last.

SPLIT_BALANCED 

Try to keep a well-balanced tree.

SPLIT_FIFTY 

Arbitrary 50-50 split.

SPLIT_GEOM_CENTER 

Split at geometric center (else split in the middle)

SPLIT_FORCE_DWORD 

Definition at line 25 of file Opcode.h.


Function Documentation

Definition at line 46 of file Opcode.cpp.

Definition at line 38 of file Opcode.cpp.

bool Opcode::Picking ( CollisionFace picked_face,
const Ray world_ray,
const Model model,
const Matrix4x4 world,
float  min_dist,
float  max_dist,
const Point view_point,
CullModeCallback  callback,
void user_data 
)

Definition at line 85 of file OPC_Picking.cpp.

bool Opcode::SetupAllHits ( RayCollider collider,
CollisionFaces contacts 
)

Definition at line 35 of file OPC_Picking.cpp.

bool Opcode::SetupClosestHit ( RayCollider collider,
CollisionFace closest_contact 
)

Definition at line 52 of file OPC_Picking.cpp.

bool Opcode::SetupInOutTest ( RayCollider collider)

Definition at line 77 of file OPC_Picking.cpp.

bool Opcode::SetupShadowFeeler ( RayCollider collider)

Definition at line 70 of file OPC_Picking.cpp.

inline_ void Opcode::TransformPoint ( Point dest,
const Point source,
const Matrix3x3 rot,
const Point trans 
)

Quickly rotates & translates a vector.

Definition at line 119 of file Opcode.h.



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:22