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_DATATYPE_LIST_H
00015 # include <BALL/DATATYPE/list.h>
00016 #endif
00017
00018 #ifndef BALL_CONCEPT_PROPERTY_H
00019 # include <BALL/CONCEPT/property.h>
00020 #endif
00021
00022 #ifndef BALL_VIEW_KERNEL_GEOMETRICOBJECT_H
00023 # include <BALL/VIEW/KERNEL/geometricObject.h>
00024 #endif
00025
00026 namespace BALL
00027 {
00028 namespace VIEW
00029 {
00041 class BALL_VIEW_EXPORT ModelProcessor
00042 : public UnaryProcessor<Composite>,
00043 public PropertyManager
00044 {
00045 public:
00046
00047 BALL_CREATE(ModelProcessor)
00048
00049
00050 ModelProcessor();
00051
00053 ModelProcessor(const ModelProcessor& model_processor);
00054
00057 virtual ~ModelProcessor();
00058
00060 virtual void clear();
00061
00063 virtual bool isValid() const
00064 {return true;};
00065
00069 virtual void clearComposites()
00070 {};
00071
00073 virtual void dump(std::ostream& , Size ) const
00074 {};
00075
00077 GeometricObjectList& getGeometricObjects()
00078 { return geometric_objects_;}
00079
00081 const GeometricObjectList& getGeometricObjects() const
00082 { return geometric_objects_;}
00083
00085 void setDrawingPrecision(Index precision);
00086
00088 Index getDrawingPrecision() const;
00089
00091 void setSurfaceDrawingPrecision(float precision);
00092
00094 float getSurfaceDrawingPrecision() const;
00095
00101 virtual bool createGeometricObjects()
00102 { return true;}
00103
00104 protected:
00105
00106
00107 GeometricObjectList geometric_objects_;
00108
00109
00110 Index drawing_precision_;
00111
00112
00113 float surface_drawing_precision_;
00114 };
00115
00116 }
00117 }
00118
00119 #endif // BALL_VIEW_MODELS_MODELPROCESSOR_H