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 class vtkRenderer;
00051 class vtkRenderWindow;
00052
00053 namespace SimTK {
00054
00055 class State;
00056 class MultibodySystem;
00057 class DecorativeGeometry;
00058
00059 class SimTK_SIMBODY_EXPORT VTKVisualizer {
00060 public:
00061 VTKVisualizer() : rep(0) { }
00062
00063 explicit VTKVisualizer(const MultibodySystem& m);
00064
00065 VTKVisualizer(const VTKVisualizer&);
00066 ~VTKVisualizer();
00067 VTKVisualizer& operator=(const VTKVisualizer&);
00068
00071 void report(const State& s) const;
00072
00074 void setCameraLocation(const Vec3&);
00077 void setCameraFocalPoint(const Vec3&);
00080 void setCameraUpDirection(const Vec3&);
00085 void setCameraClippingRange(Real nearPlane, Real farPlane);
00087 void zoomCameraToIncludeAllGeometry();
00089 void zoomCamera(Real);
00090
00096 void addDecoration(MobilizedBodyIndex, const Transform& X_BD, const DecorativeGeometry&);
00097
00103 void addRubberBandLine(MobilizedBodyIndex b1, const Vec3& station1,
00104 MobilizedBodyIndex b2, const Vec3& station2,
00105 const DecorativeLine&);
00106
00110 void addEphemeralDecoration(const DecorativeGeometry&);
00111
00114 bool isOwnerHandle() const;
00115 bool isEmptyHandle() const;
00116
00118 const vtkRenderer* getVtkRenderer() const;
00119 vtkRenderer* updVtkRenderer();
00120 const vtkRenderWindow* getVtkRenderWindow() const;
00121 vtkRenderWindow* updVtkRenderWindow();
00122
00123
00124 explicit VTKVisualizer(class VTKVisualizerRep* r) : rep(r) { }
00125 bool hasRep() const {return rep!=0;}
00126 const VTKVisualizerRep& getRep() const {assert(rep); return *rep;}
00127 VTKVisualizerRep& updRep() const {assert(rep); return *rep;}
00128
00129 protected:
00130 class VTKVisualizerRep* rep;
00131 };
00132
00133 }
00134
00135 #endif // SimTK_SIMBODY_VTK_REPORTER_H_