24 #include <osg/MatrixTransform>
25 #include <osg/TriangleFunctor>
26 #include <osg/PositionAttitudeTransform>
27 #include <osgUtil/TransformAttributeFunctor>
38 enum Switch{ SWITCH_OFF, SWITCH_ON };
47 virtual void apply( osg::Geode& geode );
60 { osg::Vec3 p1, p2, p3; };
64 struct TriangleExtractor {
67 std::vector< osaOSGBody::GeodeVisitor::Triangle > drawabletriangles;
71 inline void operator ()(
const osg::Vec3& p1,
74 bool treatVertexDataAsTemporary );
88 virtual void apply( osg::Geode& geode );
98 osg::ref_ptr<osaOSGBody> body;
106 osg::ref_ptr<osg::PositionAttitudeTransform>
osgscale;
113 void operator()( osg::Node* node, osg::NodeVisitor* nv );
119 virtual void UpdateTransform();
134 void operator()( osg::Node* node, osg::NodeVisitor* nv );
140 virtual void UpdateSwitch();
151 void ReadModel(
const std::string& fname,
152 const std::string& options,
185 const std::string& option = std::string(
"") );
204 const std::string& option = std::string(
"") );
224 const std::string& option = std::string(
"") );
242 const std::string& option = std::string(
"") );
256 void Initialize(
double scale = 1.0 );
260 virtual void SetTransform(
const vctFrm3& Rt );
261 virtual vctFrm3 GetTransform()
const;
264 return this->osgtransform;
268 osg::Matrix matrix = osgtransform->getMatrix();
270 matrix(1,0), matrix(1,1), matrix(1,2),
271 matrix(2,0), matrix(2,1), matrix(2,2)),
284 void AddTransformCallback(
void);
static const vctFixedSizeVector< unsigned char, 3 > RGBDEFAULT
Definition: osaOSGBody.h:161
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
osg::ref_ptr< osg::MatrixTransform > osgtransform
Definition: osaOSGBody.h:126
Definition: osaOSGBody.h:110
Definition: osaOSGBody.h:34
osg::ref_ptr< osg::PositionAttitudeTransform > osgscale
Definition: osaOSGBody.h:106
osg::ref_ptr< SwitchCallback > switchcallback
Definition: osaOSGBody.h:137
vctFrame4x4< double > transform
Definition: osaOSGBody.h:122
osg::ref_ptr< osg::Switch > osgswitch
Definition: osaOSGBody.h:146
SwitchCallback()
Definition: osaOSGBody.h:133
osaOSGBody * GetBody()
Definition: osaOSGBody.h:101
void ResetMatrixTransform()
Definition: osaOSGBody.h:267
osg::ref_ptr< osg::MatrixTransform > GetMatrixTransform()
Definition: osaOSGBody.h:263
osg::ref_ptr< TransformCallback > transformcallback
Definition: osaOSGBody.h:116
UserData(osaOSGBody *body)
Definition: osaOSGBody.h:100
Definition: osaOSGBody.h:54
osg::ref_ptr< osg::Geode > osggeode
Definition: osaOSGBody.h:148
Definition: osaOSGWorld.h:24
Definition: osaOSGBody.h:43
vctFrame4x4< double > Rtoffset
Definition: osaOSGBody.h:123
std::vector< osaOSGBody::GeodeVisitor::Triangle > geodetriangles
Definition: osaOSGBody.h:80
Definition: osaOSGBody.h:96
double alpha
Definition: osaOSGBody.h:45
Switch
Definition: osaOSGBody.h:38
void CISST_EXPORT Triangle(svlSampleImage *image, unsigned int videoch, svlTriangle &tri, unsigned char value, svlDraw::Internals &internals)
Switch onoff
Definition: osaOSGBody.h:143
osg::ref_ptr< UserData > userdata
Definition: osaOSGBody.h:103
Definition: osaOSGBody.h:131
TransformCallback()
Definition: osaOSGBody.h:112