![]() |
PeriDyno 1.0.0
|
#include <CollisionDetectionBroadPhase.h>
Public Types | |
typedef TDataType::Real | Real |
typedef TDataType::Coord | Coord |
typedef TDataType::Matrix | Matrix |
![]() | |
typedef std::vector< FBase * > | FieldVector |
typedef std::map< FieldID, FBase * > | FieldMap |
Public Member Functions | |
CollisionDetectionBroadPhase () | |
~CollisionDetectionBroadPhase () override | |
DECLARE_ENUM (EStructure, BVH=0, Octree=1) | |
DEF_ENUM (EStructure, AccelerationStructure, EStructure::BVH, "Acceleration structure") | |
DEF_VAR (Real, GridSizeLimit, 0.005, "Limit the smallest grid size") | |
DEF_VAR (bool, SelfCollision, false, "") | |
DEF_ARRAY_IN (AABB, Source, DeviceType::GPU, "") | |
DEF_ARRAY_IN (AABB, Target, DeviceType::GPU, "") | |
DEF_ARRAYLIST_OUT (int, ContactList, DeviceType::GPU, "Contact pairs") | |
CollisionDetectionBroadPhase () | |
virtual | ~CollisionDetectionBroadPhase () |
DEF_ARRAY_IN (AlignedBox3D, BoundingBox, DeviceType::GPU, "") | |
DEF_ARRAY_IN (uint32_t, CollisionMask, DeviceType::GPU, "") | |
DEF_ARRAY_IN (uint32_t, ShapeType, DeviceType::GPU, "") | |
DEF_ARRAY_OUT (Vec2u, Contacts, DeviceType::GPU, "") | |
![]() | |
ComputeModule () | |
~ComputeModule () override | |
std::string | getModuleType () override |
![]() | |
Module (std::string name="default") | |
~Module (void) override | |
bool | initialize () |
void | update () |
void | setName (std::string name) |
std::string | getName () override |
virtual void | setParentNode (Node *node) |
Set the parent node. | |
Node * | getParentNode () |
SceneGraph * | getSceneGraph () |
bool | isInitialized () |
bool | attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override |
Attach a field to Base. | |
bool | isInputComplete () |
Check the completeness of input fields. | |
bool | isOutputCompete () |
DEF_VAR (bool, ForceUpdate, false, "") | |
void | setUpdateAlways (bool b) |
Set the update strategy for the module. | |
![]() | |
OBase () | |
~OBase () override | |
virtual std::string | caption () |
Return the caption. | |
virtual bool | captionVisible () |
Whether to hide the caption in the GUI. | |
virtual std::string | description () |
Return a description for the node or module, override this function to support user-defined description. | |
bool | addField (FBase *data) |
Add a field to Base FieldID will be set to the name of Field by default. | |
bool | addField (FieldID name, FBase *data) |
Add a field to Base. | |
bool | addFieldAlias (FieldID name, FBase *data) |
bool | addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias) |
bool | findField (FBase *data) |
Find a field by its pointer. | |
bool | findFieldAlias (const FieldID name) |
Find a field by its name. | |
bool | findFieldAlias (const FieldID name, FieldMap &fieldAlias) |
Find a field in fieldAlias by its name This function is typically called by other functions. | |
bool | removeField (FBase *data) |
Remove a field by its pointer. | |
bool | removeFieldAlias (const FieldID name) |
Remove a field by its name. | |
bool | removeFieldAlias (const FieldID name, FieldMap &fieldAlias) |
FBase * | getField (const FieldID name) |
Return a field by its name. | |
std::vector< FBase * > & | getAllFields () |
template<typename T> | |
T * | getField (FieldID name) |
bool | isAllFieldsReady () |
Check the completeness of all required fields. | |
std::vector< FieldID > | getFieldAlias (FBase *data) |
int | getFieldAliasCount (FBase *data) |
void | setBlockCoord (float x, float y) |
float | bx () |
float | by () |
bool | findInputField (FBase *field) |
bool | addInputField (FBase *field) |
bool | removeInputField (FBase *field) |
std::vector< FBase * > & | getInputFields () |
bool | findOutputField (FBase *field) |
bool | addOutputField (FBase *field) |
bool | addToOutput (FBase *field) |
bool | removeOutputField (FBase *field) |
bool | removeFromOutput (FBase *field) |
std::vector< FBase * > & | getOutputFields () |
bool | findParameter (FBase *field) |
bool | addParameter (FBase *field) |
bool | removeParameter (FBase *field) |
std::vector< FBase * > & | getParameters () |
![]() | |
Object () | |
virtual | ~Object () |
ObjectId | objectId () |
Public Attributes | |
float | mGridSizeLimit |
Protected Member Functions | |
void | compute () override |
void | compute () override |
![]() | |
virtual bool | initializeImpl () |
virtual void | preprocess () |
virtual void | postprocess () |
virtual bool | validateInputs () |
virtual bool | validateOutputs () |
virtual bool | requireUpdate () |
virtual void | updateStarted () |
Two functions called at the beginning and end of update() used for debug. | |
virtual void | updateEnded () |
Private Member Functions | |
void | doCollisionWithSparseOctree () |
void | doCollisionWithLinearBVH () |
Private Attributes | |
Reduction< Real > | m_reduce_real |
Reduction< Coord > | m_reduce_coord |
DArray< Real > | mH |
DArray< Coord > | mV0 |
DArray< Coord > | mV1 |
DArray< uint > | mCounter |
DArray< uint > | mNewCounter |
DArray< int > | mIds |
DArray< PKey > | mKeys |
LinearBVH< TDataType > | bvh |
std::shared_ptr< VkReduce< int > > | vkr |
std::shared_ptr< VkScan< int > > | vks |
DArray< int > | counter |
DArray< int > | startIndex |
Additional Inherited Members | |
![]() | |
static bool | registerClass (ClassInfo *ci) |
static Object * | createObject (std::string name) |
static std::map< std::string, ClassInfo * > * | getClassMap () |
static ObjectId | baseId () |
Base Id. | |
![]() | |
std::vector< FBase * > | fields_input |
std::vector< FBase * > | fields_output |
std::vector< FBase * > | fields_param |
Definition at line 16 of file CollisionDetectionBroadPhase.h.
typedef TDataType::Coord dyno::CollisionDetectionBroadPhase< TDataType >::Coord |
Definition at line 20 of file CollisionDetectionBroadPhase.h.
typedef TDataType::Matrix dyno::CollisionDetectionBroadPhase< TDataType >::Matrix |
Definition at line 21 of file CollisionDetectionBroadPhase.h.
typedef TDataType::Real dyno::CollisionDetectionBroadPhase< TDataType >::Real |
Definition at line 19 of file CollisionDetectionBroadPhase.h.
dyno::CollisionDetectionBroadPhase< TDataType >::CollisionDetectionBroadPhase | ( | ) |
Definition at line 10 of file CollisionDetectionBroadPhase.cpp.
|
override |
Definition at line 40 of file CollisionDetectionBroadPhase.cpp.
dyno::CollisionDetectionBroadPhase< TDataType >::CollisionDetectionBroadPhase | ( | ) |
|
virtual |
|
overrideprotectedvirtual |
Implements dyno::ComputeModule.
Definition at line 44 of file CollisionDetectionBroadPhase.cpp.
|
overrideprotectedvirtual |
Implements dyno::ComputeModule.
dyno::CollisionDetectionBroadPhase< TDataType >::DECLARE_ENUM | ( | EStructure | , |
BVH | = 0, | ||
Octree | = 1 ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN | ( | AABB | , |
Source | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN | ( | AABB | , |
Target | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN | ( | AlignedBox3D | , |
BoundingBox | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN | ( | uint32_t | , |
CollisionMask | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN | ( | uint32_t | , |
ShapeType | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_OUT | ( | Vec2u | , |
Contacts | , | ||
DeviceType::GPU | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAYLIST_OUT | ( | int | , |
ContactList | , | ||
DeviceType::GPU | , | ||
"Contact pairs" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ENUM | ( | EStructure | , |
AccelerationStructure | , | ||
EStructure::BVH | , | ||
"Acceleration structure" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_VAR | ( | bool | , |
SelfCollision | , | ||
false | , | ||
"" | ) |
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_VAR | ( | Real | , |
GridSizeLimit | , | ||
0. | 005, | ||
"Limit the smallest grid size" | ) |
|
private |
|
private |
|
private |
Definition at line 65 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 47 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 52 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 51 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 59 of file CollisionDetectionBroadPhase.h.
float dyno::CollisionDetectionBroadPhase< TDataType >::mGridSizeLimit |
Definition at line 23 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 54 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 62 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 63 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 60 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 56 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 57 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 48 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 43 of file CollisionDetectionBroadPhase.h.
|
private |
Definition at line 45 of file CollisionDetectionBroadPhase.h.