OPC_HybridModel.h
Go to the documentation of this file.
1 /*
3  * OPCODE - Optimized Collision Detection
4  * Copyright (C) 2001 Pierre Terdiman
5  * Homepage: http://www.codercorner.com/Opcode.htm
6  */
8 
10 
16 
19 // Include Guard
20 #ifndef __OPC_HYBRIDMODEL_H__
21 #define __OPC_HYBRIDMODEL_H__
22 
25  {
27 
29 
33  inline_ udword GetNbTriangles() const { return (Data & 15)+1; }
35 
37 
41  inline_ udword GetTriangleIndex() const { return Data>>4; }
43  inline_ void SetData(udword nb, udword index) { ASSERT(nb>0 && nb<=16); nb--; Data = (index<<4)|(nb&15); }
44  };
45 
47  {
48  public:
49  // Constructor/Destructor
50  HybridModel();
51  virtual ~HybridModel();
52 
54 
59  override(BaseModel) bool Build(const OPCODECREATE& create);
61 
63 
67  override(BaseModel) udword GetUsedBytes() const;
69 
71 
77  override(BaseModel) bool Refit();
79 
81 
85  inline_ const LeafTriangles* GetLeafTriangles() const { return mTriangles; }
87 
89 
93  inline_ const udword* GetIndices() const { return mIndices; }
95 
96  private:
101 
102  // Internal methods
103  void Release();
104  };
105 
106 #endif // __OPC_HYBRIDMODEL_H__
BaseModel::Build
virtual bool Build(const OPCODECREATE &create)=0
HybridModel::mNbPrimitives
udword mNbPrimitives
Number of primitives in the model.
Definition: OPC_HybridModel.h:99
ASSERT
#define ASSERT(exp)
Definition: OPC_IceHook.h:24
udword
unsigned int udword
sizeof(udword) must be 4
Definition: IceTypes.h:65
HybridModel
Definition: OPC_HybridModel.h:46
HybridModel::mNbLeaves
udword mNbLeaves
Number of leaf nodes in the model.
Definition: OPC_HybridModel.h:97
create
static BodyCustomizerHandle create(BodyHandle bodyHandle, const char *modelName)
Definition: bush_customizer.cpp:126
OPCODECREATE
Model creation structure.
Definition: OPC_BaseModel.h:24
BaseModel
Definition: OPC_BaseModel.h:50
HybridModel::mIndices
udword * mIndices
Array of primitive indices.
Definition: OPC_HybridModel.h:100
BaseModel::BaseModel
BaseModel()
Definition: OPC_BaseModel.cpp:59
LeafTriangles::SetData
inline_ void SetData(udword nb, udword index)
Definition: OPC_HybridModel.h:43
HybridModel::mTriangles
LeafTriangles * mTriangles
Array of mNbLeaves leaf descriptors.
Definition: OPC_HybridModel.h:98
LeafTriangles::GetNbTriangles
inline_ udword GetNbTriangles() const
Definition: OPC_HybridModel.h:34
LeafTriangles
Leaf descriptor.
Definition: OPC_HybridModel.h:24
OPCODE_API
#define OPCODE_API
Definition: Opcode.h:68
LeafTriangles::Data
udword Data
Packed data.
Definition: OPC_HybridModel.h:26
BaseModel::GetUsedBytes
virtual udword GetUsedBytes() const =0
LeafTriangles::GetTriangleIndex
inline_ udword GetTriangleIndex() const
Definition: OPC_HybridModel.h:42
inline_
#define inline_
Definition: IcePreprocessor.h:103
BaseModel::Refit
virtual bool Refit()
Definition: OPC_BaseModel.cpp:127


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:03