BALL  1.5.0
POVRenderer.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: POVRenderer.h,v 1.12.16.1 2007/03/25 21:26:13 oliver Exp $
5 //
6 
7 #ifndef BALL_VIEW_RENDERING_RENDERERS_POVRENDERER_H
8 #define BALL_VIEW_RENDERING_RENDERERS_POVRENDERER_H
9 
10 #ifndef BALL_VIEW_RENDERING_RENDERERS_RENDERER_H
12 #endif
13 
14 #ifndef BALL_SYSTEM_FILE_H
15 # include <BALL/SYSTEM/file.h>
16 #endif
17 
18 #ifndef BALL_MATHS_VECTOR3_H
19 # include <BALL/MATHS/vector3.h>
20 #endif
21 
22 #ifndef BALL_MATHS_MATRIX44_H
23 # include <BALL/MATHS/matrix44.h>
24 #endif
25 
26 namespace BALL
27 {
28  namespace VIEW
29  {
30  class ColorRGBA;
31  class ClippingPlane;
32 
40  {
41  public:
42 
44 
46  {
47  public:
49  float translation;
50 // Vector3 translation;
51  };
52 
56 
59 
64  POVRenderer(const String& name);
65 
66  // Only for Python
67  POVRenderer(const POVRenderer& renderer);
68 
69 
71  virtual ~POVRenderer();
72 
74  virtual void clear();
75 
77 
80 
85  void setFileName(const String& name);
86 
88  void setOstream(std::ostream& out_stream);
89 
91  void setHumanReadable(bool state)
92  { human_readable_ = state;}
93 
95  bool isHumanReadable() const
96  { return human_readable_;}
97 
101 
104  String POVFinish(const String& object, const ColorRGBA& input);
105 
109 
110  virtual bool renderOneRepresentation(const Representation& representation);
111 
113 
117 
118  using Renderer::init;
119 
123  virtual bool init(const Stage& stage, float width, float height);
124 
128  virtual bool finish();
129 
130  void renderSphere_(const Sphere& sphere);
131 
132  void renderDisc_(const Disc& disc);
133 
134  void renderTube_(const Tube& tube);
135 
137 
138  void renderMesh_(const Mesh& mesh);
139 
141 
142  void renderLine_(const Line& line);
143 
144  void renderPoint_(const Point& point);
145 
146  // do nothing
147  void renderLabel_(const Label&);
148 
150  virtual void renderMultiLine_(const MultiLine& line);
151 
153 
154  protected:
155 
156  const ColorRGBA& getColor_(const GeometricObject& object);
157 
158  std::ostream* outfile_;
159  String trimFloatValue_(float value);
160  void storeColor_(const GeometricObject& object);
162 
165  vector<ClippingPlane*> clipping_planes_;
167 
170  vector<const Representation*> representations_;
174  double m_[12];
176  };
177 
178  } // namespace BALL
179 } // namespace VIEW
180 
181 #endif // BALL_VIEW_RENDERING_POVRENDERER_H
BALL::VIEW::POVRenderer::setOstream
void setOstream(std::ostream &out_stream)
Set a stream as output device.
BALL::VIEW::POVRenderer::renderLine_
void renderLine_(const Line &line)
Render a line.
BALL::VIEW::Sphere
Definition: sphere.h:33
BALL::VIEW::POVRenderer::renderLabel_
void renderLabel_(const Label &)
BALL::VIEW::POVRenderer::renderDisc_
void renderDisc_(const Disc &disc)
Render a disc.
BALL::VIEW::POVRenderer::setFileName
void setFileName(const String &name)
BALL::VIEW::POVRenderer::outfile_
std::ostream * outfile_
Definition: POVRenderer.h:158
BALL::VIEW::POVRenderer::storeColor_
void storeColor_(const GeometricObject &object)
BALL::HashMap< String, Size >
BALL::VIEW::POVRenderer::color_strings_
HashSet< String > color_strings_
Definition: POVRenderer.h:172
BALL::VIEW::POVRenderer::getColor_
const ColorRGBA & getColor_(const GeometricObject &object)
BALL::VIEW::POVRenderer::trimFloatValue_
String trimFloatValue_(float value)
vector3.h
BALL::VIEW::POVRenderer::renderTwoColoredLine_
void renderTwoColoredLine_(const TwoColoredLine &line)
Render a line with two colors.
BALL::VIEW::POVRenderer::POVRenderer
POVRenderer(const POVRenderer &renderer)
BALL::TMatrix4x4< float >
BALL::VIEW::Representation
Definition: representation.h:59
BALL::VIEW::POVRenderer::font_file_
String font_file_
Definition: POVRenderer.h:173
BALL::VIEW::POVRenderer::renderMultiLine_
virtual void renderMultiLine_(const MultiLine &line)
Render an illuminated line.
BALL::String
Definition: string.h:57
file.h
BALL::VIEW::TwoColoredTube
Definition: twoColoredTube.h:49
BALL::VIEW::POVRenderer::representations_
vector< const Representation * > representations_
Definition: POVRenderer.h:170
BALL
Definition: constants.h:13
BALL::VIEW::POVRenderer::origin_
Vector3 origin_
Definition: POVRenderer.h:163
BALL::VIEW::POVRenderer::getColorIndex_
String getColorIndex_(const ColorRGBA &color)
BALL::VIEW::Renderer
Definition: renderer.h:55
BALL::VIEW::POVRenderer::wireframes_
HashSet< const Mesh * > wireframes_
Definition: POVRenderer.h:171
BALL::VIEW::MultiLine
Definition: multiLine.h:33
BALL::VIEW::GeometricObject
Definition: geometricObject.h:37
BALL::HashSet
Definition: hashSet.h:46
BALL::VIEW::POVRenderer::renderOneRepresentation
virtual bool renderOneRepresentation(const Representation &representation)
BALL::VIEW::POVRenderer
Definition: POVRenderer.h:40
BALL::VIEW::Label
Definition: label.h:48
BALL::VIEW::Tube
Definition: tube.h:40
BALL::VIEW::POVRenderer::clipping_planes_
vector< ClippingPlane * > clipping_planes_
Definition: POVRenderer.h:165
BALL::VIEW::POVRenderer::~POVRenderer
virtual ~POVRenderer()
Destructor.
BALL::VIEW::POVRenderer::POVRenderer
POVRenderer(const String &name)
BALL::VIEW::POVRenderer::human_readable_
bool human_readable_
Definition: POVRenderer.h:166
BALL::VIEW::ColorRGBA
Definition: colorRGBA.h:32
BALL::VIEW::POVRenderer::color_index_
Position color_index_
Definition: POVRenderer.h:175
BALL::VIEW::Disc
Definition: disc.h:32
BALL::VIEW::POVRenderer::renderTwoColoredTube_
void renderTwoColoredTube_(const TwoColoredTube &tube)
Render a tube with two colors.
BALL::VIEW::POVRenderer::POVRenderer
POVRenderer()
Default constructor.
BALL_SIZE_TYPE
BALL::TVector3< float >
BALL_VIEW_EXPORT
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52
BALL::VIEW::POVRenderer::POVFinish
String POVFinish(const String &object, const ColorRGBA &input)
BALL::VIEW::POVRenderer::POVRendererClippingPlane::normal
Vector3 normal
Definition: POVRenderer.h:48
renderer.h
BALL::VIEW::POVRenderer::POVColorRGBA
String POVColorRGBA(const ColorRGBA &input)
BALL::VIEW::POVRenderer::ColorMap
HashMap< String, Size > ColorMap
Definition: POVRenderer.h:168
BALL::VIEW::POVRenderer::renderMesh_
void renderMesh_(const Mesh &mesh)
Render a surface mesh.
BALL::VIEW::POVRenderer::init
virtual bool init(const Stage &stage, float width, float height)
BALL::VIEW::Mesh
Definition: mesh.h:42
BALL::VIEW::POVRenderer::renderTube_
void renderTube_(const Tube &tube)
Render a tube.
matrix44.h
BALL::VIEW::POVRenderer::POVRendererClippingPlane::translation
float translation
Definition: POVRenderer.h:49
BALL::VIEW::Renderer::init
virtual bool init(Scene &scene)
BALL::VIEW::POVRenderer::POVVector3
String POVVector3(Vector3 input)
BALL::VIEW::POVRenderer::setHumanReadable
void setHumanReadable(bool state)
Definition: POVRenderer.h:91
BALL::VIEW::POVRenderer::clear
virtual void clear()
Clear method.
BALL::VIEW::Point
Definition: point.h:37
BALL::VIEW::POVRenderer::renderPoint_
void renderPoint_(const Point &point)
Render a single point.
BALL::VIEW::POVRenderer::renderSphere_
void renderSphere_(const Sphere &sphere)
Render a sphere.
BALL_CREATE
#define BALL_CREATE(name)
Definition: create.h:62
BALL::VIEW::POVRenderer::POVRendererClippingPlane
Definition: POVRenderer.h:46
BALL::VIEW::Line
Definition: line.h:38
BALL::VIEW::POVRenderer::rotation_
Matrix4x4 rotation_
Definition: POVRenderer.h:164
BALL::VIEW::POVRenderer::color_map_
ColorMap color_map_
Definition: POVRenderer.h:169
BALL::VIEW::Stage
Definition: stage.h:239
BALL::VIEW::POVRenderer::finish
virtual bool finish()
BALL::VIEW::POVRenderer::isHumanReadable
bool isHumanReadable() const
Definition: POVRenderer.h:95
BALL::VIEW::TwoColoredLine
Definition: twoColoredLine.h:49