SOFA plugin: VolumetricRendering  master
Open source framework for multi-physics simuation
volumetricrendering::OglVolumetricModel Class Reference

#include <OglVolumetricModel.h>

Render 3D models with volume primitives (for now tetrahedron and hexahedron). More...

Inheritance diagram for volumetricrendering::OglVolumetricModel:

Detailed Description

Render 3D models with volume primitives (for now tetrahedron and hexahedron).

Public Attributes

Data< sofa::type::vector< Tetrahedron > > d_tetrahedra
 Tetrahedra to draw. More...
 
Data< sofa::type::vector< Hexahedron > > d_hexahedra
 Hexahedra to draw. More...
 
Data< float > d_volumeScale
 Scale for each volumetric primitive. More...
 
Data< bool > d_depthTest
 Set Depth Test. More...
 
Data< bool > d_blending
 Set Blending. More...
 
Data< type::Vec4f > d_defaultColor
 Color for each volume (if the attribute a_vertexColor is not detected) More...
 
- Public Attributes inherited from sofa::core::visual::VisualState< class >
core::topology::PointData< VecCoord > m_positions
 
core::topology::PointData< VecCoord > m_restPositions
 
core::topology::PointData< VecDeriv > m_vnormals
 
bool modified
 
- Public Attributes inherited from State< DataTypes >
AccumulationVecId< DataTypes, V_DERIV, V_READ > accumulatedForces
 
- Public Attributes inherited from sofa::core::objectmodel::BaseObject
Data< bool > f_listening
 
- Public Attributes inherited from sofa::core::objectmodel::Base
std::vector< lifecycle::DeprecatedData * > m_oldAttributes
 
Data< int > d_messageLogCount
 
Data< std::string > name
 
Data< bool > f_printLog
 
Data< sofa::core::objectmodel::TagSetf_tags
 
Data< sofa::type::BoundingBoxf_bbox
 
Data< sofa::core::objectmodel::ComponentStated_componentState
 
std::string m_definitionSourceFileName
 
int m_definitionSourceFilePos
 
std::string m_instanciationSourceFileName
 
int m_instanciationSourceFilePos
 

Public Member Functions

 SOFA_CLASS2 (OglVolumetricModel, core::visual::VisualModel, sofa::core::visual::VisualState< defaulttype::Vec3Types >)
 
 ~OglVolumetricModel () override
 
void init () override
 
void doInitVisual (const core::visual::VisualParams *vparams) override
 
void drawTransparent (const core::visual::VisualParams *vparams) override
 
void computeBBox (const core::ExecParams *, bool onlyVisible=false) override
 
void handleTopologyChange () override
 
void doUpdateVisual (const core::visual::VisualParams *vparams) override
 
void computeMeshFromTopology ()
 
bool insertInNode (core::objectmodel::BaseNode *node) override
 
bool removeInNode (core::objectmodel::BaseNode *node) override
 
- Public Member Functions inherited from sofa::core::visual::VisualState< class >
 SOFA_CLASS (SOFA_TEMPLATE(VisualState, DataTypes), SOFA_TEMPLATE(core::State, DataTypes))
 
 VisualState ()
 
virtual void resize (Size vsize) override
 
virtual Size getSize () const override
 
virtual Data< VecCoord > * write (core::VecCoordId v) override
 
virtual const Data< VecCoord > * read (core::ConstVecCoordId v) const override
 
virtual Data< VecDeriv > * write (core::VecDerivId v) override
 
virtual const Data< VecDeriv > * read (core::ConstVecDerivId v) const override
 
virtual Data< MatrixDeriv > * write (core::MatrixDerivId) override
 
virtual const Data< MatrixDeriv > * read (core::ConstMatrixDerivId) const override
 
- Public Member Functions inherited from State< DataTypes >
 SOFA_CLASS (SOFA_TEMPLATE(State, DataTypes), BaseState)
 
sofa::type::TBoundingBox< Real > computeBBox () const
 
void computeBBox (const core::ExecParams *params, bool onlyVisible=false) override
 
virtual Data< VecCoord > * write (VecCoordId v)=0
 
virtual Data< VecDeriv > * write (VecDerivId v)=0
 
virtual Data< MatrixDeriv > * write (MatrixDerivId v)=0
 
virtual const Data< VecCoord > * read (ConstVecCoordId v) const =0
 
virtual const Data< VecDeriv > * read (ConstVecDerivId v) const =0
 
virtual const Data< MatrixDeriv > * read (ConstMatrixDerivId v) const =0
 
objectmodel::BaseData * baseWrite (VecId v) override
 
const objectmodel::BaseData * baseRead (ConstVecId v) const override
 
ReadVecCoord readPositions () const
 
WriteVecCoord writePositions ()
 
WriteOnlyVecCoord writeOnlyPositions ()
 
ReadVecCoord readRestPositions () const
 
WriteVecCoord writeRestPositions ()
 
WriteOnlyVecCoord writeOnlyRestPositions ()
 
ReadVecDeriv readVelocities () const
 
WriteVecDeriv writeVelocities ()
 
WriteOnlyVecDeriv writeOnlyVelocities ()
 
ReadVecDeriv readForces () const
 
WriteVecDeriv writeForces ()
 
WriteOnlyVecDeriv writeOnlyForces ()
 
ReadVecDeriv readDx () const
 
WriteVecDeriv writeDx ()
 
WriteOnlyVecDeriv writeOnlyDx ()
 
ReadVecDeriv readNormals () const
 
const AccumulationVecId< DataTypes, V_DERIV, V_READ > & readTotalForces () const
 
void addToTotalForces (core::ConstVecDerivId forceId) override
 
void removeFromTotalForces (core::ConstVecDerivId forceId) override
 
virtual Data< VecCoord > * write (VecCoordId v)=0
 
virtual Data< VecDeriv > * write (VecDerivId v)=0
 
virtual Data< MatrixDeriv > * write (MatrixDerivId v)=0
 
virtual const Data< VecCoord > * read (ConstVecCoordId v) const =0
 
virtual const Data< VecDeriv > * read (ConstVecDerivId v) const =0
 
virtual const Data< MatrixDeriv > * read (ConstMatrixDerivId v) const =0
 
objectmodel::BaseData * baseWrite (VecId v) override
 
const objectmodel::BaseData * baseRead (ConstVecId v) const override
 
- Public Member Functions inherited from sofa::core::BaseState
 SOFA_ABSTRACT_CLASS (BaseState, objectmodel::BaseObject)
 
bool insertInNode (objectmodel::BaseNode *node) override
 
bool removeInNode (objectmodel::BaseNode *node) override
 
virtual void addToTotalForces (core::ConstVecDerivId forceId)
 
virtual void removeFromTotalForces (core::ConstVecDerivId forceId)
 
virtual objectmodel::BaseDatabaseWrite (VecId v)=0
 
virtual const objectmodel::BaseDatabaseRead (ConstVecId v) const=0
 
virtual objectmodel::BaseDatabaseWrite (VecId v)=0
 
virtual const objectmodel::BaseDatabaseRead (ConstVecId v) const=0
 
- Public Member Functions inherited from sofa::core::objectmodel::BaseObject
 SOFA_CLASS (BaseObject, Base)
 
virtual void draw (const core::visual::VisualParams *)
 
virtual void computeBBox (const core::ExecParams *, bool=false)
 
void setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr)
 
void setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr)
 
BasefindLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override
 
virtual std::string getPathName () const override
 
SReal getTime () const
 
const BaseContextgetContext () const
 
BaseContextgetContext ()
 
const BaseObjectgetMaster () const
 
BaseObjectgetMaster ()
 
const VecSlavesgetSlaves () const
 
BaseObjectgetSlave (const std::string &name) const
 
virtual void addSlave (BaseObject::SPtr s)
 
virtual void removeSlave (BaseObject::SPtr s)
 
virtual void handleEvent (Event *)
 
virtual void handleTopologyChange (core::topology::Topology *t)
 
void parse (BaseObjectDescription *arg) override
 
virtual void bwdInit ()
 
virtual void reinit ()
 
void updateInternal ()
 
virtual void storeResetState ()
 
virtual void reset ()
 
virtual void cleanup ()
 
SReal getTime () const
 
- Public Member Functions inherited from sofa::core::objectmodel::Base
virtual const BaseClassgetClass () const
 
void addDeprecatedAttribute (lifecycle::DeprecatedData *attribute)
 
void addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs)
 
void addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs)
 
const std::string & getName () const
 
void setName (const std::string &n)
 
void setName (const std::string &n, int counter)
 
std::string getTypeName () const
 
virtual std::string getClassName () const
 
virtual std::string getTemplateName () const final
 
std::string getNameSpaceName () const
 
void setDefinitionSourceFileName (const std::string &sourceFileName)
 
const std::string & getDefinitionSourceFileName () const
 
void setDefinitionSourceFilePos (const int)
 
int getDefinitionSourceFilePos () const
 
void setInstanciationSourceFileName (const std::string &sourceFileName)
 
const std::string & getInstanciationSourceFileName () const
 
void setInstanciationSourceFilePos (const int)
 
int getInstanciationSourceFilePos () const
 
void addMessage (const sofa::helper::logging::Message &m) const
 
size_t countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
const std::deque< sofa::helper::logging::Message > & getLoggedMessages () const
 
const std::string getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
void clearLoggedMessages () const
 
bool notMuted () const
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 
virtual bool parseField (const std::string &attribute, const std::string &value)
 
virtual bool hasField (const std::string &attribute) const
 
void parseFields (const std::list< std::string > &str)
 
virtual void parseFields (const std::map< std::string, std::string * > &str)
 
void writeDatas (std::map< std::string, std::string * > &str)=delete
 
void writeDatas (std::ostream &out, const std::string &separator=" ")
 
BaseDatafindData (const std::string &name) const
 
std::vector< BaseData * > findGlobalField (const std::string &name) const
 
BaseLinkfindLink (const std::string &name) const
 
std::vector< BaseLink * > findLinks (const std::string &name) const
 
virtual void updateLinks (bool logErrors=true)
 
BaseData::BaseInitData initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags)
 
BaseData::BaseInitData initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
Data< T >::InitData initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void addData (BaseData *f, const std::string &name)
 
void addData (BaseData *f)
 
void removeData (BaseData *f)
 
void addAlias (BaseData *field, const char *alias)
 
void addLink (BaseLink *l)
 
void addAlias (BaseLink *link, const char *alias)
 
const VecDatagetDataFields () const
 
const MapDatagetDataAliases () const
 
const VecLinkgetLinks () const
 
const MapLinkgetLinkAliases () const
 
virtual bool findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link)
 
bool findLinkDest (T *&ptr, const std::string &path, const BaseLink *link)
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 

Protected Member Functions

 OglVolumetricModel ()
 
- Protected Member Functions inherited from State< DataTypes >
 State ()
 
 ~State () override
 
- Protected Member Functions inherited from sofa::core::BaseState
 BaseState ()
 
 ~BaseState () override
 
- Protected Member Functions inherited from sofa::core::objectmodel::BaseObject
 BaseObject ()
 
 ~BaseObject () override
 
virtual void doUpdateInternal ()
 
void changeContextLink (BaseContext *before, BaseContext *&after)
 
void changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add)
 
void trackInternalData (const BaseData &data)
 
void cleanTracker ()
 
bool hasDataChanged (const BaseData &data)
 
- Protected Member Functions inherited from sofa::core::objectmodel::Base
 Base ()
 
virtual ~Base ()
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags)
 
void initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
- Protected Member Functions inherited from sofa::core::IntrusiveObject
virtual ~IntrusiveObject ()=default
 

Additional Inherited Members

- Protected Attributes inherited from sofa::core::objectmodel::BaseObject
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > l_context
 
LinkSlaves l_slaves
 
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > l_master
 
- Protected Attributes inherited from sofa::core::objectmodel::Base
std::map< std::string, sofa::core::DataTrackerCallbackm_internalEngine
 
VecData m_vecData
 
MapData m_aliasData
 
VecLink m_vecLink
 
MapLink m_aliasLink
 
- Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject
static bool canCreate (T *, BaseContext *, BaseObjectDescription *)
 
static T::SPtr create (T *, BaseContext *context, BaseObjectDescription *arg)
 
- Static Public Member Functions inherited from sofa::core::objectmodel::Base
static const BaseClassGetClass ()
 
static std::string shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr)
 

Attribute details

◆ d_blending

Data<bool> volumetricrendering::OglVolumetricModel::d_blending

Set Blending.

◆ d_defaultColor

Data<type::Vec4f> volumetricrendering::OglVolumetricModel::d_defaultColor

Color for each volume (if the attribute a_vertexColor is not detected)

◆ d_depthTest

Data<bool> volumetricrendering::OglVolumetricModel::d_depthTest

Set Depth Test.

◆ d_hexahedra

Data< sofa::type::vector<Hexahedron> > volumetricrendering::OglVolumetricModel::d_hexahedra

Hexahedra to draw.

◆ d_tetrahedra

Data< sofa::type::vector<Tetrahedron> > volumetricrendering::OglVolumetricModel::d_tetrahedra

Tetrahedra to draw.

◆ d_volumeScale

Data<float> volumetricrendering::OglVolumetricModel::d_volumeScale

Scale for each volumetric primitive.

Constructor details

◆ ~OglVolumetricModel()

volumetricrendering::OglVolumetricModel::~OglVolumetricModel ( )
override

◆ OglVolumetricModel()

volumetricrendering::OglVolumetricModel::OglVolumetricModel ( )
protected

Function details

◆ computeBBox()

void volumetricrendering::OglVolumetricModel::computeBBox ( const core::ExecParams *  params,
bool  onlyVisible = false 
)
override

◆ computeMeshFromTopology()

void volumetricrendering::OglVolumetricModel::computeMeshFromTopology ( )

◆ doInitVisual()

void volumetricrendering::OglVolumetricModel::doInitVisual ( const core::visual::VisualParams *  vparams)
override

◆ doUpdateVisual()

void volumetricrendering::OglVolumetricModel::doUpdateVisual ( const core::visual::VisualParams *  vparams)
override

◆ drawTransparent()

void volumetricrendering::OglVolumetricModel::drawTransparent ( const core::visual::VisualParams *  vparams)
override

◆ handleTopologyChange()

void volumetricrendering::OglVolumetricModel::handleTopologyChange ( )
overridevirtual

◆ init()

void volumetricrendering::OglVolumetricModel::init ( void  )
overridevirtual

◆ insertInNode()

bool volumetricrendering::OglVolumetricModel::insertInNode ( core::objectmodel::BaseNode *  node)
inlineoverride

◆ removeInNode()

bool volumetricrendering::OglVolumetricModel::removeInNode ( core::objectmodel::BaseNode *  node)
inlineoverride

◆ SOFA_CLASS2()

volumetricrendering::OglVolumetricModel::SOFA_CLASS2 ( OglVolumetricModel  ,
core::visual::VisualModel  ,
sofa::core::visual::VisualState< defaulttype::Vec3Types >   
)