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. More...
 

Typedef Documentation

◆ CullingCallback

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

Definition at line 82 of file Opcode.h.

◆ CullModeCallback

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

Definition at line 33 of file Opcode.h.

◆ GenericWalkingCallback

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

Definition at line 146 of file Opcode.h.

◆ HitCallback

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.

◆ WalkingCallback

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

◆ CollisionFlag

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.

◆ CullMode

Enumerator
CULLMODE_NONE 
CULLMODE_CW 
CULLMODE_CCW 

Definition at line 26 of file Opcode.h.

◆ ModelFlag

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.

◆ SplittingRules

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

◆ CloseOpcode()

bool Opcode::CloseOpcode ( )

Definition at line 46 of file Opcode.cpp.

◆ InitOpcode()

bool Opcode::InitOpcode ( )

Definition at line 38 of file Opcode.cpp.

◆ Picking()

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.

◆ SetupAllHits()

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

Definition at line 35 of file OPC_Picking.cpp.

◆ SetupClosestHit()

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

Definition at line 52 of file OPC_Picking.cpp.

◆ SetupInOutTest()

bool Opcode::SetupInOutTest ( RayCollider collider)

Definition at line 77 of file OPC_Picking.cpp.

◆ SetupShadowFeeler()

bool Opcode::SetupShadowFeeler ( RayCollider collider)

Definition at line 70 of file OPC_Picking.cpp.

◆ TransformPoint()

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 Sep 8 2022 02:24:09