1 #ifndef QUERYINTERPRET_H_
2 #define QUERYINTERPRET_H_
29 POSITION = 0x0000000F,
30 POSITIONX = 0x00000001,
31 POSITIONY = 0x00000002,
32 POSITIONZ = 0x00000004,
34 HEADINGX = 0x00000010,
35 HEADINGY = 0x00000020,
36 HEADINGZ = 0x00000040,
60 dirty = QueryInterpret::DIRTY;
62 for( vector<LSGeode *>::iterator it =
m_Geodes.begin(); it !=
m_Geodes.end(); it++ )
102 if( dirty & QueryInterpret::POSITIONX )
110 dirty |= QueryInterpret::POSITIONX;
114 return matrix.getTrans().x();
122 if( dirty & QueryInterpret::POSITIONY )
130 dirty |= QueryInterpret::POSITIONY;
134 return matrix.getTrans().y();
142 if( dirty & QueryInterpret::POSITIONZ )
150 dirty |= QueryInterpret::POSITIONZ;
154 return matrix.getTrans().z();
162 if( dirty & QueryInterpret::HEADINGX )
170 dirty |= QueryInterpret::HEADING;
172 osg::Vec3d v = matrix.getRotate() *
HeadVec;
184 if( dirty & QueryInterpret::HEADINGY )
192 dirty |= QueryInterpret::HEADING;
194 osg::Vec3d v = matrix.getRotate() *
HeadVec;
206 if( dirty & QueryInterpret::HEADINGZ )
214 dirty |= QueryInterpret::HEADING;
216 osg::Vec3d v = matrix.getRotate() *
HeadVec;
228 if( dirty & QueryInterpret::UPX )
236 dirty |= QueryInterpret::UP;
238 osg::Vec3d v = matrix.getRotate() *
UpVec;
250 if( dirty & QueryInterpret::UPY )
258 dirty |= QueryInterpret::UP;
260 osg::Vec3d v = matrix.getRotate() *
UpVec;
272 if( dirty & QueryInterpret::UPZ )
280 dirty |= QueryInterpret::UP;
282 osg::Vec3d v = matrix.getRotate() *
UpVec;
294 if( dirty & QueryInterpret::LEFTX )
302 dirty |= QueryInterpret::LEFT;
304 osg::Vec3d v = matrix.getRotate() *
LeftVec;
316 if( dirty & QueryInterpret::LEFTY )
324 dirty |= QueryInterpret::LEFT;
326 osg::Vec3d v = matrix.getRotate() *
LeftVec;
338 if( dirty & QueryInterpret::LEFTZ )
346 dirty |= QueryInterpret::LEFT;
348 osg::Vec3d v = matrix.getRotate() *
LeftVec;
361 matrix.makeIdentity();