TrackPoint.hpp 693 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <osg/ref_ptr>
  3. #include <osg/Vec3>
  4. #include <osg/MatrixTransform>
  5. class TrackPoint {
  6. public:
  7. TrackPoint(const osg::Vec3 point, const osg::Vec3 normal, const osg::Vec3 normalModifier);
  8. osg::Vec3 getTranslation();
  9. osg::Vec3 getRotation();
  10. osg::Vec3 getNormal();
  11. osg::Vec3 getNormalModifier();
  12. osg::Vec3 getTrackPoint();
  13. void updateNormalModifier(osg::Vec3 normalModifier);
  14. protected:
  15. osg::ref_ptr<osg::MatrixTransform> _translationGroup;
  16. osg::ref_ptr<osg::MatrixTransform> _rotationGroup;
  17. osg::ref_ptr<osg::MatrixTransform> _originFixGroup;
  18. osg::Vec3 _trackOrigin;
  19. private:
  20. osg::Vec3 _origin;
  21. osg::Vec3 _normal;
  22. osg::Vec3 _normalModifier;
  23. };