Abstract class which implements partially VisualModel.
This class implemented all non-hardware (i.e OpenGL or DirectX) specific functions for rendering. It takes a 3D model (basically a .OBJ model) and apply transformations on it. At the moment, it is only implemented by OglModel for OpenGL systems.
|
bool | useTopology |
| True if list of d_facets should be taken from the attached topology. More...
|
|
int | lastMeshRev |
| Time stamps from the last time the mesh was updated from the topology. More...
|
|
bool | castShadow |
| True if object cast shadows. More...
|
|
sofa::core::topology::BaseMeshTopology * | m_topology |
|
sofa::core::objectmodel::RenamedData< bool > | m_initRestPositions |
|
sofa::core::objectmodel::RenamedData< bool > | m_useNormals |
|
sofa::core::objectmodel::RenamedData< bool > | m_updateNormals |
|
sofa::core::objectmodel::RenamedData< bool > | m_computeTangents |
|
sofa::core::objectmodel::RenamedData< bool > | m_updateTangents |
|
sofa::core::objectmodel::RenamedData< bool > | m_handleDynamicTopology |
|
sofa::core::objectmodel::RenamedData< bool > | m_fixMergedUVSeams |
|
sofa::core::objectmodel::RenamedData< bool > | m_keepLines |
|
sofa::core::objectmodel::RenamedData< VecCoord > | m_vertices2 |
|
sofa::core::objectmodel::RenamedData< VecTexCoord > | m_vtexcoords |
|
sofa::core::objectmodel::RenamedData< VecCoord > | m_vtangents |
|
sofa::core::objectmodel::RenamedData< VecCoord > | m_vbitangents |
|
sofa::core::objectmodel::RenamedData< VecVisualEdge > | m_edges |
|
sofa::core::objectmodel::RenamedData< VecVisualTriangle > | m_triangles |
|
sofa::core::objectmodel::RenamedData< VecVisualQuad > | m_quads |
|
sofa::core::objectmodel::RenamedData< type::vector< visual_index_type > > | m_vertPosIdx |
|
sofa::core::objectmodel::RenamedData< type::vector< visual_index_type > > | m_vertNormIdx |
|
Data< bool > | d_initRestPositions |
| True if rest positions must be initialized with initial positions. More...
|
|
Data< bool > | d_useNormals |
| True if normals should be read from file. More...
|
|
Data< bool > | d_updateNormals |
| True if normals should be updated at each iteration. More...
|
|
Data< bool > | d_computeTangents |
| True if tangents should be computed at startup. More...
|
|
Data< bool > | d_updateTangents |
| True if tangents should be updated at each iteration. More...
|
|
Data< bool > | d_handleDynamicTopology |
| True if topological changes should be handled. More...
|
|
Data< bool > | d_fixMergedUVSeams |
| True if UV seams should be handled even when duplicate UVs are merged. More...
|
|
Data< bool > | d_keepLines |
| keep and draw lines (false by default) More...
|
|
Data< VecCoord > | d_vertices2 |
| vertices of the model (only if vertices have multiple normals/texcoords, otherwise positions are used) More...
|
|
core::topology::PointData< VecTexCoord > | d_vtexcoords |
| coordinates of the texture More...
|
|
core::topology::PointData< VecCoord > | d_vtangents |
| tangents for normal mapping More...
|
|
core::topology::PointData< VecCoord > | d_vbitangents |
| tangents for normal mapping More...
|
|
core::topology::EdgeData< VecVisualEdge > | d_edges |
| edges of the model More...
|
|
core::topology::TriangleData< VecVisualTriangle > | d_triangles |
| triangles of the model More...
|
|
core::topology::QuadData< VecVisualQuad > | d_quads |
| quads of the model More...
|
|
bool | m_textureChanged {false} |
|
Data< type::vector< visual_index_type > > | d_vertPosIdx |
|
Data< type::vector< visual_index_type > > | d_vertNormIdx |
|
sofa::core::objectmodel::DataFileName | fileMesh |
|
sofa::core::objectmodel::DataFileName | texturename |
|
sofa::core::objectmodel::DataFileName | d_fileMesh |
|
sofa::core::objectmodel::DataFileName | d_texturename |
|
sofa::type::Vec3f | bbox [2] |
|
sofa::core::objectmodel::RenamedData< sofa::type::Material > | material |
|
sofa::core::objectmodel::RenamedData< bool > | putOnlyTexCoords |
|
sofa::core::objectmodel::RenamedData< bool > | srgbTexturing |
|
Data< sofa::type::Material > | d_material |
|
Data< bool > | d_putOnlyTexCoords |
|
Data< bool > | d_srgbTexturing |
|
sofa::core::objectmodel::RenamedData< type::vector< sofa::type::Material > > | materials |
|
sofa::core::objectmodel::RenamedData< type::vector< FaceGroup > > | groups |
|
Data< type::vector< sofa::type::Material > > | d_materials |
|
Data< type::vector< FaceGroup > > | d_groups |
|
SingleLink< VisualModelImpl, sofa::core::topology::BaseMeshTopology, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > | l_topology |
| Link to be set to the topology container in the component graph. More...
|
|
sofa::defaulttype::Rigid3fTypes::VecCoord | xforms |
| Temporary added here from RigidState deprecated inheritance. More...
|
|
bool | xformsModified |
|
Data< bool > | d_enable |
| Display the object or not. More...
|
|
Data< bool > | f_listening |
| if true, handle the events, otherwise ignore the events More...
|
|
std::vector< lifecycle::DeprecatedData * > | m_oldAttributes |
|
Data< int > | d_messageLogCount |
|
Data< std::string > | name |
| Name of the object. More...
|
|
Data< bool > | f_printLog |
| if true, emits extra messages at runtime. More...
|
|
Data< sofa::core::objectmodel::TagSet > | f_tags |
| list of the subsets the object belongs to More...
|
|
Data< sofa::type::BoundingBox > | f_bbox |
| this object bounding box More...
|
|
Data< sofa::core::objectmodel::ComponentState > | d_componentState |
| The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). More...
|
|
std::string | m_definitionSourceFileName {""} |
|
int | m_definitionSourceFilePos {-1} |
|
std::string | m_instanciationSourceFileName {""} |
|
int | m_instanciationSourceFilePos {-1} |
|
core::topology::PointData< VecCoord > | m_positions |
| Vertices coordinates. More...
|
|
core::topology::PointData< VecCoord > | m_restPositions |
| Vertices rest coordinates. More...
|
|
core::topology::PointData< VecDeriv > | m_vnormals |
| Normals of the model. More...
|
|
bool | modified |
| True if input vertices modified since last rendering. More...
|
|
AccumulationVecId< TDataTypes, V_DERIV, V_READ > | accumulatedForces |
| Stores all the VecDerivId corresponding to a force. They can then be accumulated. More...
|
|
|
| SOFA_CLASS2 (VisualModelImpl, core::visual::VisualModel, sofa::core::visual::VisualState< defaulttype::Vec3Types >) |
|
| SOFA_ATTRIBUTE_REPLACED__TYPEMEMBER (Index, sofa::Index) |
|
virtual void | internalDraw (const core::visual::VisualParams *, bool) |
| Rendering method. More...
|
|
void | parse (core::objectmodel::BaseObjectDescription *arg) override |
| Parse the given description to assign values to this object's fields and potentially other parameters. More...
|
|
virtual bool | hasTransparent () |
|
bool | hasOpaque () |
|
void | doDrawVisual (const core::visual::VisualParams *vparams) override |
|
void | drawTransparent (const core::visual::VisualParams *vparams) override |
| Display transparent surfaces. More...
|
|
void | drawShadow (const core::visual::VisualParams *vparams) override |
| Display shadow-casting surfaces. More...
|
|
virtual bool | loadTextures () |
|
virtual bool | loadTexture (const std::string &) |
|
bool | load (const std::string &filename, const std::string &loader, const std::string &textureName) |
|
void | flipFaces () |
|
void | setFilename (std::string s) |
|
std::string | getFilename () |
|
void | setColor (float r, float g, float b, float a) |
|
void | setColor (std::string color) |
|
void | setUseNormals (bool val) |
|
bool | getUseNormals () const |
|
void | setCastShadow (bool val) |
|
bool | getCastShadow () const |
|
void | setMesh (helper::io::Mesh &m, bool tex=false) |
|
bool | isUsingTopology () const |
|
const VecCoord & | getVertices () const |
|
const VecDeriv & | getVnormals () const |
|
const VecTexCoord & | getVtexcoords () const |
|
const VecCoord & | getVtangents () const |
|
const VecCoord & | getVbitangents () const |
|
const VecVisualTriangle & | getTriangles () const |
|
const VecVisualQuad & | getQuads () const |
|
const VecVisualEdge & | getEdges () const |
|
void | setVertices (VecCoord *x) |
|
void | setVnormals (VecDeriv *vn) |
|
void | setVtexcoords (VecTexCoord *vt) |
|
void | setVtangents (VecCoord *v) |
|
void | setVbitangents (VecCoord *v) |
|
void | setTriangles (VecVisualTriangle *t) |
|
void | setQuads (VecVisualQuad *q) |
|
void | setEdges (VecVisualEdge *e) |
|
virtual void | computePositions () |
|
virtual void | computeMesh () |
|
virtual void | computeNormals () |
|
virtual void | computeTangents () |
|
void | computeBBox (const core::ExecParams *params, bool=false) override |
|
virtual void | computeUVSphereProjection () |
|
virtual void | updateBuffers () |
|
virtual void | deleteBuffers () |
|
virtual void | deleteTextures () |
|
void | doUpdateVisual (const core::visual::VisualParams *) override |
|
void | init () override |
| Initialization method called at graph creation and modification, during top-down traversal. More...
|
|
void | initFromTopology () |
|
void | initPositionFromVertices () |
|
void | initFromFileMesh () |
|
void | exportOBJ (std::string name, std::ostream *out, std::ostream *mtl, sofa::Index &vindex, sofa::Index &nindex, sofa::Index &tindex, int &count) override |
|
bool | insertInNode (core::objectmodel::BaseNode *node) override |
|
bool | removeInNode (core::objectmodel::BaseNode *node) override |
|
| SOFA_ABSTRACT_CLASS (VisualModel, objectmodel::BaseObject) |
|
virtual void | drawVisual (const VisualParams *) final |
| Display the VisualModel object. More...
|
|
void | initVisual (const VisualParams *) |
| Initialize the textures, or other graphical resources. More...
|
|
virtual void | initVisual () final |
|
void | updateVisual (const VisualParams *) |
| used to update the model if necessary. More...
|
|
virtual void | updateVisual () final |
|
virtual void | clearVisual () |
| clear some graphical resources (generally called before the deleteVisitor). More...
|
|
virtual void | fwdDraw (VisualParams *) |
| Called before objects in the current branch are displayed. More...
|
|
virtual void | bwdDraw (VisualParams *) |
| Called after objects in the current branch are displayed. More...
|
|
virtual void | parallelUpdateVisual () |
| used to update the model if necessary. More...
|
|
virtual bool | addBBox (SReal *, SReal *) |
| used to add the bounding-box of this visual model to the given bounding box in order to compute the scene bounding box or cull hidden objects. More...
|
|
bool | insertInNode (objectmodel::BaseNode *node) override |
|
bool | removeInNode (objectmodel::BaseNode *node) override |
|
| SOFA_CLASS (BaseObject, Base) |
|
virtual void | draw (const core::visual::VisualParams *) |
| Render internal data of this object, for debugging purposes. More...
|
|
void | setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr) |
| Sets a source Object and parses it to collect dependent Data. More...
|
|
void | setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr) |
|
Base * | findLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override |
|
virtual std::string | getPathName () const override |
| Return the full path name of this object. More...
|
|
SReal | getTime () const |
| Current time. More...
|
|
const BaseContext * | getContext () const |
|
BaseContext * | getContext () |
|
const BaseObject * | getMaster () const |
|
BaseObject * | getMaster () |
|
const VecSlaves & | getSlaves () const |
|
BaseObject * | getSlave (const std::string &name) const |
|
virtual void | addSlave (BaseObject::SPtr s) |
|
virtual void | removeSlave (BaseObject::SPtr s) |
|
virtual void | handleEvent (Event *) |
| Handle an event. More...
|
|
virtual void | handleTopologyChange () |
|
virtual void | handleTopologyChange (core::topology::Topology *t) |
|
void | parse (BaseObjectDescription *arg) override |
| Parse the given description to assign values to this object's fields and potentially other parameters. More...
|
|
virtual void | bwdInit () |
| Initialization method called at graph creation and modification, during bottom-up traversal. More...
|
|
virtual void | reinit () |
| Update method called when variables used in precomputation are modified. More...
|
|
void | updateInternal () |
| Update method called when variables (used to compute other internal variables) are modified. More...
|
|
virtual void | storeResetState () |
| Save the initial state for later uses in reset() More...
|
|
virtual void | reset () |
| Reset to initial state. More...
|
|
virtual void | cleanup () |
|
virtual const BaseClass * | getClass () 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 |
| Accessor to the object name. More...
|
|
void | setName (const std::string &n) |
| Set the name of this object. More...
|
|
void | setName (const std::string &n, int counter) |
| Set the name of this object, adding an integer counter. More...
|
|
std::string | getTypeName () const |
| Get the type name of this object (i.e. class and template types) More...
|
|
virtual std::string | getClassName () const |
| Get the class name of this object. More...
|
|
virtual std::string | getTemplateName () const final |
| Get the template type names (if any) used to instantiate this object. More...
|
|
std::string | getNameSpaceName () const |
| Get the template type names (if any) used to instantiate this object. More...
|
|
void | setDefinitionSourceFileName (const std::string &sourceFileName) |
| Set the source filename (where the component is implemented) More...
|
|
const std::string & | getDefinitionSourceFileName () const |
| Get the source filename (where the component is implemented) More...
|
|
void | setDefinitionSourceFilePos (const int) |
| Set the source location (where the component is implemented) More...
|
|
int | getDefinitionSourceFilePos () const |
| Get the source location (where the component is implemented) More...
|
|
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::TagSet & | getTags () const |
| Represents the subsets the object belongs to. More...
|
|
bool | hasTag (Tag t) const |
| Return true if the object belong to the given subset. More...
|
|
void | addTag (Tag t) |
| Add a subset qualification to the object. More...
|
|
void | removeTag (Tag t) |
| Remove a subset qualification to the object. More...
|
|
ComponentState | getComponentState () const |
|
bool | isComponentStateValid () const |
|
virtual bool | parseField (const std::string &attribute, const std::string &value) |
| Assign one field value (Data or Link) More...
|
|
virtual bool | hasField (const std::string &attribute) const |
| Check if a given Data field or Link exists. More...
|
|
void | parseFields (const std::list< std::string > &str) |
| Assign the field values stored in the given list of name + value pairs of strings. More...
|
|
virtual void | parseFields (const std::map< std::string, std::string * > &str) |
| Assign the field values stored in the given map of name -> value pairs. More...
|
|
void | writeDatas (std::map< std::string, std::string * > &str) |
| Write the current field values to the given map of name -> value pairs. More...
|
|
void | writeDatas (std::ostream &out, const std::string &separator=" ") |
|
BaseData * | findData (const std::string &name) const |
|
std::vector< BaseData * > | findGlobalField (const std::string &name) const |
| Find data fields given a name: several can be found as we look into the alias map. More...
|
|
BaseLink * | findLink (const std::string &name) const |
|
std::vector< BaseLink * > | findLinks (const std::string &name) const |
| Find link fields given a name: several can be found as we look into the alias map. More...
|
|
virtual void | updateLinks (bool logErrors=true) |
| Update pointers in case the pointed-to objects have appeared. More...
|
|
template<class T > |
BaseData::BaseInitData | initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags) |
| Helper method used to initialize a data field containing a value of type T. More...
|
|
template<class T > |
BaseData::BaseInitData | initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used to initialize a data field containing a value of type T. More...
|
|
template<class T > |
Data< T >::InitData | initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used to initialize a data field containing a value of type T. More...
|
|
void | addData (BaseData *f, const std::string &name) |
|
void | addData (BaseData *f) |
|
void | removeData (BaseData *f) |
| Remove a data field. More...
|
|
void | addAlias (BaseData *field, const char *alias) |
| Add an alias to a Data. More...
|
|
void | addLink (BaseLink *l) |
| Add a link. More...
|
|
void | addAlias (BaseLink *link, const char *alias) |
| Add an alias to a Link. More...
|
|
const VecData & | getDataFields () const |
| Accessor to the vector containing all the fields of this object. More...
|
|
const MapData & | getDataAliases () const |
| Accessor to the map containing all the aliases of this object. More...
|
|
const VecLink & | getLinks () const |
| Accessor to the vector containing all the fields of this object. More...
|
|
const MapLink & | getLinkAliases () const |
| Accessor to the map containing all the aliases of this object. More...
|
|
virtual bool | findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link) |
|
template<class T > |
bool | findLinkDest (T *&ptr, const std::string &path, const BaseLink *link) |
|
| SOFA_CLASS (VisualState, SOFA_TEMPLATE(core::State, defaulttype::Vec3Types)) |
|
| VisualState () |
|
virtual void | resize (Size vsize) override |
| Resize all stored vector. More...
|
|
virtual Size | getSize () const override |
| Current size of all stored vectors. More...
|
|
virtual Data< VecCoord > * | write (core::VecCoordId v) override |
|
virtual Data< VecDeriv > * | write (core::VecDerivId v) override |
|
virtual Data< MatrixDeriv > * | write (core::MatrixDerivId) override |
|
virtual const Data< VecCoord > * | read (core::ConstVecCoordId v) const override |
|
virtual const Data< VecDeriv > * | read (core::ConstVecDerivId v) const override |
|
virtual const Data< MatrixDeriv > * | read (core::ConstMatrixDerivId) const override |
|
| SOFA_CLASS (SOFA_TEMPLATE(State, TDataTypes), BaseState) |
|
sofa::type::TBoundingBox< Real > | computeBBox () const |
| Compute the bounding box independently from the visibility parameters. More...
|
|
void | computeBBox (const core::ExecParams *params, bool onlyVisible=false) override |
|
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< TDataTypes, V_DERIV, V_READ > & | readTotalForces () const |
| Returns a proxy objects offering simplified access to elements of the cumulative sum of all force containers. More...
|
|
void | addToTotalForces (core::ConstVecDerivId forceId) override |
| The provided VecDerivId will contribute to the sum of all force containers. More...
|
|
void | removeFromTotalForces (core::ConstVecDerivId forceId) override |
|
| SOFA_ABSTRACT_CLASS (BaseState, objectmodel::BaseObject) |
|
bool | insertInNode (objectmodel::BaseNode *node) override |
|
bool | removeInNode (objectmodel::BaseNode *node) override |
|