00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_VIEW_MODELS_MODELPROCESSOR_H
00008 #define BALL_VIEW_MODELS_MODELPROCESSOR_H
00009
00010 #ifndef BALL_CONCEPT_COMPOSITE_H
00011 # include <BALL/CONCEPT/composite.h>
00012 #endif
00013
00014 #ifndef BALL_CONCEPT_PROPERTY_H
00015 # include <BALL/CONCEPT/property.h>
00016 #endif
00017
00018 #ifndef BALL_VIEW_KERNEL_GEOMETRICOBJECT_H
00019 # include <BALL/VIEW/KERNEL/geometricObject.h>
00020 #endif
00021
00022 namespace BALL
00023 {
00024 namespace VIEW
00025 {
00037 class BALL_VIEW_EXPORT ModelProcessor
00038 : public UnaryProcessor<Composite>,
00039 public PropertyManager
00040 {
00041 public:
00042
00043 BALL_CREATE(ModelProcessor)
00044
00045
00046 ModelProcessor();
00047
00049 ModelProcessor(const ModelProcessor& model_processor);
00050
00053 virtual ~ModelProcessor();
00054
00056 virtual void clear();
00057
00059 virtual bool isValid() const
00060 {return true;};
00061
00065 virtual void clearComposites()
00066 {};
00067
00069 virtual void dump(std::ostream& , Size ) const
00070 {};
00071
00073 GeometricObjectList& getGeometricObjects()
00074 { return geometric_objects_;}
00075
00077 const GeometricObjectList& getGeometricObjects() const
00078 { return geometric_objects_;}
00079
00081 void setDrawingPrecision(Index precision);
00082
00084 Index getDrawingPrecision() const;
00085
00087 void setSurfaceDrawingPrecision(float precision);
00088
00090 float getSurfaceDrawingPrecision() const;
00091
00097 virtual bool createGeometricObjects()
00098 { return true;}
00099
00100 protected:
00101
00102
00103 GeometricObjectList geometric_objects_;
00104
00105
00106 Index drawing_precision_;
00107
00108
00109 float surface_drawing_precision_;
00110 };
00111
00112 }
00113 }
00114
00115 #endif // BALL_VIEW_MODELS_MODELPROCESSOR_H