SOFA plugin: CollisionOBBCapsule  master
Open source framework for multi-physics simuation
collisionobbcapsule::detection::intersection Namespace Reference

Classes

class  BaseIntTool
 
class  CapsuleDiscreteIntersection
 
class  CapsuleMeshDiscreteIntersection
 
class  CapsuleIntTool
 
class  Intersector
 
class  TIntrCapsuleOBB
 
struct  IntrUtil< TTriangle< DataType > >
 
class  IntrAxis< TTriangle< TDataTypes1 >, TOBB< TDataTypes2 > >
 
struct  IntrConfigManager< TTriangle< TDataTypes > >
 
class  FindContactSet< TTriangle< TDataTypes1 >, TOBB< TDataTypes2 > >
 
class  TIntrOBBOBB
 
class  TIntrSphereOBB
 
class  TIntrTriangleOBB
 
struct  MyBox
 
class  IntrConfiguration
 
class  CapIntrConfiguration
 
struct  IntrUtil
 
struct  IntrUtil< geometry::TOBB< DataType > >
 
class  IntrAxis
 
class  IntrAxis< geometry::TOBB< TDataTypes > >
 
struct  IntrConfigManager
 
struct  IntrConfigManager< geometry::TOBB< TDataTypes > >
 
class  FindContactSet
 
class  FindContactSet< geometry::TOBB< TDataTypes > >
 
class  MeshIntTool
 
class  RigidDiscreteIntersection
 
class  RigidMeshDiscreteIntersection
 
class  OBBIntTool
 

Typedefs

using FixParticlePerformer3d = sofa::gui::component::performer::FixParticlePerformer< defaulttype::Vec3Types >
 
typedef TIntrCapsuleOBB< sofa::defaulttype::Vec3Types, sofa::defaulttype::Rigid3TypesIntrCapsuleOBB
 
typedef TIntrOBBOBB< sofa::defaulttype::RigidTypesIntrOBBOBB
 
typedef TIntrSphereOBB< defaulttype::Vec3Types, defaulttype::Rigid3TypesIntrSphereOBB
 
typedef TIntrTriangleOBB< defaulttype::Vec3Types, defaulttype::Rigid3TypesIntrTriangleOBB
 
typedef Mat< 3, 3, SReal > Mat33
 

Functions

template COLLISIONOBBCAPSULE_API void ClipConvexPolygonAgainstPlane< SReal > (const Vec3 &, SReal, int &, Vec3 *)
 
template COLLISIONOBBCAPSULE_API Vec3 GetPointFromIndex< SReal > (int, const MyBox< SReal > &)
 
template COLLISIONOBBCAPSULE_API Vec< 3, Rigid3Types::Real > getPointFromIndex< Rigid3Types > (int index, const geometry::TOBB< Rigid3Types > &box)
 
template<typename Real >
void ClipConvexPolygonAgainstPlane (const type::Vec< 3, Real > &normal, Real bonstant, int &quantity, type::Vec< 3, Real > *P)
 
template<typename TReal >
type::Vec< 3, TReal > GetPointFromIndex (int index, const MyBox< TReal > &box)
 
template<typename TDataTypes >
type::Vec< 3, typename TDataTypes::Real > getPointFromIndex (int index, const geometry::TOBB< TDataTypes > &box)
 
template COLLISIONOBBCAPSULE_API void ClipConvexPolygonAgainstPlane (const type::Vec3 &, SReal, int &, type::Vec3 *)
 
template COLLISIONOBBCAPSULE_API type::Vec3 GetPointFromIndex (int, const MyBox< SReal > &)
 
template COLLISIONOBBCAPSULE_API type::Vec< 3, defaulttype::Rigid3Types::Real > getPointFromIndex (int, const geometry::TOBB< defaulttype::Rigid3Types > &)
 

Variables

class COLLISIONOBBCAPSULE_API BaseIntTool
 
IntersectorCreator< DiscreteIntersection, CapsuleDiscreteIntersectionCapsuleDiscreteIntersectors ("Capsule")
 
IntersectorCreator< NewProximityIntersection, CapsuleMeshDiscreteIntersectionCapsuleMeshDiscreteIntersectors ("CapsuleMesh")
 
int capsuleFixParticle
 
class COLLISIONOBBCAPSULE_API CapsuleIntTool
 
template class COLLISIONOBBCAPSULE_API TIntrCapsuleOBB< Vec3Types, Rigid3Types >
 
template class COLLISIONOBBCAPSULE_API TIntrCapsuleOBB< Rigid3Types, Rigid3Types >
 
template class COLLISIONOBBCAPSULE_API TIntrSphereOBB< Vec3Types, Rigid3Types >
 
template class COLLISIONOBBCAPSULE_API TIntrSphereOBB< Rigid3Types, Rigid3Types >
 
template struct COLLISIONOBBCAPSULE_API IntrUtil< SReal >
 
template class COLLISIONOBBCAPSULE_API IntrConfiguration< SReal >
 
template struct COLLISIONOBBCAPSULE_API IntrConfigManager< SReal >
 
template class COLLISIONOBBCAPSULE_API CapIntrConfiguration< SReal >
 
class COLLISIONOBBCAPSULE_API MeshIntTool
 
IntersectorCreator< DiscreteIntersection, RigidDiscreteIntersectionRigidDiscreteIntersectors ("Rigid")
 
IntersectorCreator< NewProximityIntersection, RigidMeshDiscreteIntersectionRigidMeshDiscreteIntersectors ("RigidMesh")
 
int obbFixParticle
 

Typedef Documentation

◆ FixParticlePerformer3d

◆ IntrCapsuleOBB

◆ IntrOBBOBB

◆ IntrSphereOBB

◆ IntrTriangleOBB

◆ Mat33

Function Documentation

◆ ClipConvexPolygonAgainstPlane() [1/2]

template COLLISIONOBBCAPSULE_API void collisionobbcapsule::detection::intersection::ClipConvexPolygonAgainstPlane ( const type::Vec3 ,
SReal  ,
int &  ,
type::Vec3  
)

◆ ClipConvexPolygonAgainstPlane() [2/2]

template<typename Real >
void collisionobbcapsule::detection::intersection::ClipConvexPolygonAgainstPlane ( const type::Vec< 3, Real > &  normal,
Real  bonstant,
int &  quantity,
type::Vec< 3, Real > *  P 
)

◆ ClipConvexPolygonAgainstPlane< SReal >()

template COLLISIONOBBCAPSULE_API void collisionobbcapsule::detection::intersection::ClipConvexPolygonAgainstPlane< SReal > ( const Vec3 ,
SReal  ,
int &  ,
Vec3  
)

◆ getPointFromIndex() [1/2]

template<typename TDataTypes >
type::Vec< 3, typename TDataTypes::Real > collisionobbcapsule::detection::intersection::getPointFromIndex ( int  index,
const geometry::TOBB< TDataTypes > &  box 
)

◆ GetPointFromIndex() [1/2]

template<typename TReal >
type::Vec< 3, TReal > collisionobbcapsule::detection::intersection::GetPointFromIndex ( int  index,
const MyBox< TReal > &  box 
)

◆ getPointFromIndex() [2/2]

template COLLISIONOBBCAPSULE_API type::Vec<3,defaulttype::Rigid3Types::Real> collisionobbcapsule::detection::intersection::getPointFromIndex ( int  ,
const geometry::TOBB< defaulttype::Rigid3Types > &   
)

◆ GetPointFromIndex() [2/2]

template COLLISIONOBBCAPSULE_API type::Vec3 collisionobbcapsule::detection::intersection::GetPointFromIndex ( int  ,
const MyBox< SReal > &   
)

◆ getPointFromIndex< Rigid3Types >()

template COLLISIONOBBCAPSULE_API Vec<3,Rigid3Types::Real> collisionobbcapsule::detection::intersection::getPointFromIndex< Rigid3Types > ( int  index,
const geometry::TOBB< Rigid3Types > &  box 
)

◆ GetPointFromIndex< SReal >()

template COLLISIONOBBCAPSULE_API Vec3 collisionobbcapsule::detection::intersection::GetPointFromIndex< SReal > ( int  ,
const MyBox< SReal > &   
)

Variable Documentation

◆ BaseIntTool

◆ CapIntrConfiguration< SReal >

template class COLLISIONOBBCAPSULE_API collisionobbcapsule::detection::intersection::CapIntrConfiguration< SReal >

◆ CapsuleDiscreteIntersectors

IntersectorCreator<DiscreteIntersection, CapsuleDiscreteIntersection> collisionobbcapsule::detection::intersection::CapsuleDiscreteIntersectors("Capsule") ( "Capsule"  )

◆ capsuleFixParticle

int collisionobbcapsule::detection::intersection::capsuleFixParticle
Initial value:
= FixParticlePerformer3d::RegisterSupportedModel<CapsuleCollisionModel<sofa::defaulttype::Vec3Types>>(
[]
(sofa::core::sptr<sofa::core::CollisionModel> model, const Index idx, type::vector<Index>& points, FixParticlePerformer3d::Coord& fixPoint)
{
auto* caps = dynamic_cast<CapsuleCollisionModel<sofa::defaulttype::Vec3Types>*>(model.get());
if (!caps)
return false;
fixPoint = (caps->point1(idx) + caps->point2(idx))/2.0;
points.push_back(caps->point1Index(idx));
points.push_back(caps->point2Index(idx));
return true;
}
)
boost::intrusive_ptr< T > sptr

◆ CapsuleIntTool

◆ CapsuleMeshDiscreteIntersectors

IntersectorCreator<NewProximityIntersection, CapsuleMeshDiscreteIntersection> collisionobbcapsule::detection::intersection::CapsuleMeshDiscreteIntersectors("CapsuleMesh") ( "CapsuleMesh"  )

◆ IntrConfigManager< SReal >

template struct COLLISIONOBBCAPSULE_API collisionobbcapsule::detection::intersection::IntrConfigManager< SReal >

◆ IntrConfiguration< SReal >

template class COLLISIONOBBCAPSULE_API collisionobbcapsule::detection::intersection::IntrConfiguration< SReal >

◆ IntrUtil< SReal >

template struct COLLISIONOBBCAPSULE_API collisionobbcapsule::detection::intersection::IntrUtil< SReal >

◆ MeshIntTool

◆ obbFixParticle

int collisionobbcapsule::detection::intersection::obbFixParticle
Initial value:
= FixParticlePerformer3d::RegisterSupportedModel<OBBCollisionModel<sofa::defaulttype::Rigid3Types>>(
[]
(sofa::core::sptr<sofa::core::CollisionModel> model, const Index idx, type::vector<Index>& points, FixParticlePerformer3d::Coord& fixPoint)
{
auto* obb = dynamic_cast<OBBCollisionModel<sofa::defaulttype::Rigid3Types>*>(model.get());
if (!obb)
return false;
auto* collisionState= model->getContext()->getMechanicalState();
fixPoint[0] = collisionState->getPX(idx);
fixPoint[1] = collisionState->getPY(idx);
fixPoint[2] = collisionState->getPZ(idx);
points.push_back(idx);
return true;
}
)

◆ RigidDiscreteIntersectors

IntersectorCreator<DiscreteIntersection, RigidDiscreteIntersection> collisionobbcapsule::detection::intersection::RigidDiscreteIntersectors("Rigid") ( "Rigid"  )

◆ RigidMeshDiscreteIntersectors

IntersectorCreator<NewProximityIntersection, RigidMeshDiscreteIntersection> collisionobbcapsule::detection::intersection::RigidMeshDiscreteIntersectors("RigidMesh") ( "RigidMesh"  )

◆ TIntrCapsuleOBB< Rigid3Types, Rigid3Types >

◆ TIntrCapsuleOBB< Vec3Types, Rigid3Types >

◆ TIntrSphereOBB< Rigid3Types, Rigid3Types >

◆ TIntrSphereOBB< Vec3Types, Rigid3Types >