SOFA API  aa360984
Open source framework for multi-physics simuation
sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes > Class Template Referenceabstract

#include <BaseContactMapper.h>

Base class common to all mappers able to provide a MechanicalState of a given type. More...

Inheritance diagram for sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >:

Detailed Description

template<class TDataTypes>
class sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >

Base class common to all mappers able to provide a MechanicalState of a given type.

Public Member Functions

virtual ~BaseContactMapper ()
 
virtual MMechanicalStatecreateMapping (const char *name="contactPoints")=0
 
virtual void cleanup ()=0
 
virtual void resize (Size size)=0
 
virtual Index addPoint (const Coord &, Index, Real &)
 Adding a point of the global referentiel to the mapping. More...
 
virtual Index addPointB (const Coord &P, Index elementId, Real &r, const sofa::type::Vec3 &)
 
Index addPointB (const Coord &P, Index elementId, Real &r)
 
virtual void update ()=0
 
virtual void updateXfree ()=0
 

Static Public Member Functions

static BaseContactMapper< DataTypes > * Create (core::CollisionModel *model, const std::string &name=std::string("PenalityContactForceField"))
 
template<class TCollisionModel >
static ContactMapper< TCollisionModel, DataTypes > * create (ContactMapper< TCollisionModel, DataTypes > *, core::CollisionModel *arg)
 

Constructor details

◆ ~BaseContactMapper()

template<class TDataTypes >
virtual sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::~BaseContactMapper ( )
inlinevirtual

Function details

◆ addPoint()

template<class TDataTypes >
virtual Index sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::addPoint ( const Coord ,
Index  ,
Real  
)
inlinevirtual

Adding a point of the global referentiel to the mapping.

◆ addPointB() [1/2]

template<class TDataTypes >
Index sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::addPointB ( const Coord P,
Index  elementId,
Real r 
)
inline

◆ addPointB() [2/2]

template<class TDataTypes >
virtual Index sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::addPointB ( const Coord P,
Index  elementId,
Real r,
const sofa::type::Vec3  
)
inlinevirtual

Adding a point of the global referentiel to the mapping, also giving the local referentiel Note that it cannot have the same name as addPoint otherwise it creates errors when a subclass only implement the version without barycoords

◆ cleanup()

template<class TDataTypes >
virtual void sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::cleanup ( )
pure virtual

Implemented in sofa::component::collision::response::mapper::BarycentricContactMapper< TCollisionModel, TDataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::LineCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TetrahedronCollisionModel, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TriangleCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::SubsetContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::CylinderCollisionModel< sofa::defaulttype::Rigid3Types >, TVec3Types >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::RigidSphereModel, TVec3Types >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, typename TCollisionModel::InDataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::PointCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, and sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::SphereCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >.

◆ create()

template<class TDataTypes >
template<class TCollisionModel >
static ContactMapper<TCollisionModel, DataTypes>* sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::create ( ContactMapper< TCollisionModel, DataTypes > *  ,
core::CollisionModel arg 
)
inlinestatic

◆ Create()

template<class TDataTypes >
static BaseContactMapper<DataTypes>* sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::Create ( core::CollisionModel model,
const std::string &  name = std::string("PenalityContactForceField") 
)
inlinestatic

◆ createMapping()

template<class TDataTypes >
virtual MMechanicalState* sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::createMapping ( const char name = "contactPoints")
pure virtual

Implemented in sofa::component::collision::response::mapper::BarycentricContactMapper< TCollisionModel, TDataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::LineCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TetrahedronCollisionModel, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TriangleCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::SubsetContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::CylinderCollisionModel< sofa::defaulttype::Rigid3Types >, TVec3Types >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::RigidSphereModel, TVec3Types >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::PointCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::SphereCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, and sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, typename TCollisionModel::InDataTypes >.

◆ resize()

◆ update()

template<class TDataTypes >
virtual void sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::update ( )
pure virtual

Implemented in sofa::component::collision::response::mapper::BarycentricContactMapper< TCollisionModel, TDataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::LineCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TetrahedronCollisionModel, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TriangleCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::SubsetContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::CylinderCollisionModel< sofa::defaulttype::Rigid3Types >, TVec3Types >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::RigidSphereModel, TVec3Types >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, typename TCollisionModel::InDataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::PointCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, and sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::SphereCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >.

◆ updateXfree()

template<class TDataTypes >
virtual void sofa::component::collision::response::mapper::BaseContactMapper< TDataTypes >::updateXfree ( )
pure virtual

Implemented in sofa::component::collision::response::mapper::BarycentricContactMapper< TCollisionModel, TDataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::LineCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TetrahedronCollisionModel, DataTypes >, sofa::component::collision::response::mapper::BarycentricContactMapper< collision::geometry::TriangleCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, sofa::component::collision::response::mapper::SubsetContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::CylinderCollisionModel< sofa::defaulttype::Rigid3Types >, TVec3Types >, sofa::component::collision::response::mapper::RigidContactMapper< collision::geometry::RigidSphereModel, TVec3Types >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, typename TCollisionModel::InDataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< TCollisionModel, DataTypes >, sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::PointCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >, and sofa::component::collision::response::mapper::IdentityContactMapper< collision::geometry::SphereCollisionModel< sofa::defaulttype::Vec3Types >, DataTypes >.