HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RBD_ColliderBFA.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __RBD_ColliderBFA_h__
9 #define __RBD_ColliderBFA_h__
10 
11 #include "RBD_API.h"
12 #include "RBD_Object.h"
13 
14 #include <SIM/SIM_ColliderBFA.h>
15 #include <SIM/SIM_Isect.h>
16 
18 {
19 public:
20  /// Finds intersection of RBD objects. Fills the given queue with all
21  /// of the two way intersections.
22  void intersectRBDObjects(SIM_IsectPriorityQueue &queue,
23  RBD_Object *obj_a, RBD_Object *obj_b,
24  bool findany,
25  bool findearliest,
26  fpreal timetol,
27  const SIM_Time &starttime,
28  const SIM_Time &endtime,
29  SIM_ImpactApplyType impactapplytype,
30  int impactflags,
31  int child_a_id = -1,
32  int child_b_id = -1) const;
33 protected:
34  explicit RBD_ColliderBFA(const SIM_DataFactory *factory);
35  ~RBD_ColliderBFA() override;
36 
37  bool doCheckTangle() const override
38  { return true; }
40  const SIM_Time &timestep,
41  bool startPosOnly) const override;
42  void convertLeafToPrim(const BV_LeafIterator &leafIt,
43  int leafId,
44  int &outPrimId, int &outEdgeId) const override;
45  fpreal getLeafRadius(const BV_LeafIterator &leafIt,
46  int leafId) const override;
47 
48 private:
49  static const SIM_DopDescription *getDopDescription();
50 
54  "ThinPlate/ThinPlate Collider (Bridson)",
55  getDopDescription());
56 };
57 
58 #endif
59 
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:50
A single potential-collision event involving a pair of primitives.
bool doCheckTangle() const override
#define RBD_API
Definition: RBD_API.h:10
virtual void convertLeafToPrim(const BV_LeafIterator &leafIt, int leafId, int &outPrimId, int &outEdgeId) const =0
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:63
SIM_ImpactApplyType
Defines the possible affector types when doing collision detection.
Definition: SIM_Collider.h:56
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the queue
Definition: thread.h:623
fpreal64 fpreal
Definition: SYS_Types.h:277
virtual fpreal getLeafRadius(const BV_LeafIterator &leafIt, int leafId) const =0
virtual BV_LeafIterator * createLeafIt(const SIM_Object &object, const SIM_Time &timestep, bool startPosOnly) const =0