25 #ifndef WFIBERDRAWABLE_H
26 #define WFIBERDRAWABLE_H
29 #include <shared_mutex>
32 #include <boost/thread.hpp>
33 #include <boost/thread/thread.hpp>
34 #include <osg/Drawable>
75 virtual osg::Object*
clone(
const osg::CopyOp& copyop )
const;
101 using osg::Drawable::setBound;
107 void setBitfield( std::shared_ptr< std::vector< bool > > bitField );
125 void setVerts( std::shared_ptr< std::vector< float > > verts );
131 void setTangents( std::shared_ptr< std::vector< float > > tangents );
137 void setColor( std::shared_ptr< std::vector< float > > color );
146 void drawFibers( osg::RenderInfo& renderInfo )
const;
161 std::shared_ptr< std::vector< float > >
m_verts;
Class implements an osg::Drawable that paints fiber representations either using lines or tubes.
std::shared_ptr< std::vector< float > > m_verts
pointer to the field of vertexes
void setBitfield(std::shared_ptr< std::vector< bool > > bitField)
setter
WFiberDrawable()
The constructor here does nothing.
void setColor(std::shared_ptr< std::vector< float > > color)
setter
std::shared_ptr< std::vector< size_t > > m_pointsPerLine
pointer to the field of points per line
virtual void drawImplementation(osg::RenderInfo &renderInfo) const
Real work is done here.
void setUseTubes(bool flag)
toggles drawing of tubes
std::shared_ptr< std::vector< float > > m_tangents
pointer to the field of line tangents
virtual osg::Object * clone(const osg::CopyOp ©op) const
clones it
std::shared_mutex m_recalcLock
lock
std::shared_ptr< std::vector< bool > > m_active
pointer to the bitfield of active fibers
virtual osg::Object * cloneType() const
See osg documentation for this.
std::shared_ptr< std::vector< size_t > > m_startIndexes
pointer to the field of line start indexes
void setPointsPerLine(std::shared_ptr< std::vector< size_t > > ppl)
setter
void setTangents(std::shared_ptr< std::vector< float > > tangents)
setter
std::shared_ptr< std::vector< float > > m_colors
pointer to the field of colors per vertex
void drawTubes() const
Draw fibers as fake tubes.
void setVerts(std::shared_ptr< std::vector< float > > verts)
setter
void setStartIndexes(std::shared_ptr< std::vector< size_t > > idx)
setter
void drawFibers(osg::RenderInfo &renderInfo) const
Draw fibers as ordinary lines.