18 #include "visbasemod.h"
22 namespace osg {
class Vec3f;
class Array;
class Referenced; }
25 #define mGetOsgArrPtr(tp,ptr) ((tp) ptr->getDataPointer() )
26 #define mGetOsgVec2Arr(ptr) ((osg::Vec2Array*) ptr )
27 #define mGetOsgVec3Arr(ptr) ((osg::Vec3Array*) ptr )
28 #define mGetOsgVec4Arr(ptr) ((osg::Vec4Array*) ptr )
30 #if defined(visBase_EXPORTS) || defined(VISBASE_EXPORTS) || \
31 defined(uiOSG_EXPORTS) || defined(UIOSG_EXPORTS)
44 void unRefOsgPtr(osg::Referenced*);
45 void refOsgPtr(
const osg::Referenced*);
46 void unRefAndZeroOsgPtr(osg::Referenced*);
54 inline void set(
Coord3& _to,
const osg::Vec3f& v )
55 { _to.
x = v[0]; _to.
y=v[1]; _to.
z=v[2]; }
58 inline void set( osg::Vec3f& _to,
const Coord3& v )
59 { _to.set( (
float) v.
x, (
float) v.
y, (
float) v.
z ); }
62 inline void set(
Coord& _to,
const osg::Vec2f& v )
63 { _to.
x = v[0]; _to.
y=v[1]; }
66 inline void set( osg::Vec2f& _to,
const Coord& v )
67 { _to.set( (
float) v.
x, (
float) v.
y ); }
70 inline void set(
Coord3& _to,
const osg::Vec3d& v )
71 { _to.
x = v[0]; _to.
y=v[1]; _to.
z=v[2]; }
74 inline void set( osg::Vec3d& _to,
const Coord3& v )
75 { _to.set( v.
x, v.
y, v.
z ); }
77 #define mIsOsgVec3Def( pos ) \
78 ( pos[0]<mUdf(float) && pos[1]<mUdf(float) && pos[2]<mUdf(float) )
80 #define mODColVal(val) ( val<=0.0 ? 0 : val>=1.0 ? 255 : mNINT32(255*val) )
81 #define mOsgColValF(val) ( val<=0 ? 0.0f : val>=255 ? 1.0f : float(val)/255 )
82 #define mOsgColValD(val) ( val<=0 ? 0.0 : val>=255 ? 1.0 : double(val)/255 )
85 inline void set(
Color& _to,
const osg::Vec4f& col )
86 { _to.
set( mODColVal(col[0]), mODColVal(col[1]),
87 mODColVal(col[2]), 255-mODColVal(col[3]) ); }
90 inline void set( osg::Vec4f& _to,
const Color& col )
91 { _to.set( mOsgColValF(col.
r()), mOsgColValF(col.
g()),
92 mOsgColValF(col.
b()), 1.0f-mOsgColValF(col.
t()) ); }
95 inline void set(
Color& _to,
const osg::Vec4d& col )
96 { _to.
set( mODColVal(col[0]), mODColVal(col[1]),
97 mODColVal(col[2]), 255-mODColVal(col[3]) ); }
100 inline void set( osg::Vec4d& _to,
const Color& col )
101 { _to.set( mOsgColValD(col.
r()), mOsgColValD(col.
g()),
102 mOsgColValD(col.
b()), 1.0-mOsgColValD(col.
t()) ); }
112 static void setUdf( osg::Vec3f& i ) {}
119 static void setUdf( osg::Vec3d& i ) {}
126 static void setUdf( osg::Vec2f& i ) {}
133 static void setUdf( osg::Vec2d& i ) {}
141 static void setUdf( osg::Vec4f& i ) {}
148 static void setUdf( osg::Vec4d& i ) {}
164 OneFrameCullDisabler(osg::Node*);
165 virtual void operator()(osg::Node*,osg::NodeVisitor*);
168 #define mAttachOneFrameCullDisabler( osgnode ) \
169 osg::ref_ptr<OneFrameCullDisabler> oneframeculldisablerof##osgnode = \
170 new OneFrameCullDisabler( osgnode );