VTKVisualizer.h
Go to the documentation of this file.00001 #ifndef SimTK_SIMBODY_VTK_REPORTER_H_
00002 #define SimTK_SIMBODY_VTK_REPORTER_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00042 #include "simbody/internal/common.h"
00043
00044 #include <cassert>
00045 #include <cmath>
00046 #include <cstdio>
00047 #include <exception>
00048 #include <vector>
00049
00050
00051 namespace SimTK {
00052
00053 class State;
00054 class MultibodySystem;
00055 class DecorativeGeometry;
00056
00057 class SimTK_SIMBODY_EXPORT VTKVisualizer {
00058 public:
00059 VTKVisualizer() : rep(0) { }
00060
00061 explicit VTKVisualizer(const MultibodySystem& m);
00062
00063 VTKVisualizer(const VTKVisualizer&);
00064 ~VTKVisualizer();
00065 VTKVisualizer& operator=(const VTKVisualizer&);
00066
00069 void report(const State& s) const;
00070
00072 void setCameraLocation(const Vec3&);
00075 void setCameraFocalPoint(const Vec3&);
00078 void setCameraUpDirection(const Vec3&);
00083 void setCameraClippingRange(Real nearPlane, Real farPlane);
00085 void zoomCameraToIncludeAllGeometry();
00087 void zoomCamera(Real);
00088
00094 void addDecoration(MobilizedBodyIndex, const Transform& X_BD, const DecorativeGeometry&);
00095
00101 void addRubberBandLine(MobilizedBodyIndex b1, const Vec3& station1,
00102 MobilizedBodyIndex b2, const Vec3& station2,
00103 const DecorativeLine&);
00104
00108 void addEphemeralDecoration(const DecorativeGeometry&);
00109
00112 bool isOwnerHandle() const;
00113 bool isEmptyHandle() const;
00114
00115
00116 explicit VTKVisualizer(class VTKVisualizerRep* r) : rep(r) { }
00117 bool hasRep() const {return rep!=0;}
00118 const VTKVisualizerRep& getRep() const {assert(rep); return *rep;}
00119 VTKVisualizerRep& updRep() const {assert(rep); return *rep;}
00120 protected:
00121 class VTKVisualizerRep* rep;
00122 };
00123
00124 }
00125
00126 #endif // SimTK_SIMBODY_VTK_REPORTER_H_