1 | #ifndef qwt3d_enrichment_h__2004_02_23_19_24_begin_guarded_code
|
---|
2 | #define qwt3d_enrichment_h__2004_02_23_19_24_begin_guarded_code
|
---|
3 |
|
---|
4 | #include "qwt3d_global.h"
|
---|
5 | #include "qwt3d_types.h"
|
---|
6 |
|
---|
7 | namespace Qwt3D
|
---|
8 | {
|
---|
9 |
|
---|
10 | class Plot3D;
|
---|
11 |
|
---|
12 |
|
---|
13 | //! Abstract base class for data dependent visible user objects
|
---|
14 | /**
|
---|
15 | Enrichments provide a framework for user defined OPenGL objects. The base class has a pure virtuell
|
---|
16 | function clone(). 2 additional functions are per default empty and could also get a new implementation
|
---|
17 | in derived classes. They can be used for initialization issues or actions not depending on the related
|
---|
18 | primitive.
|
---|
19 | */
|
---|
20 | class QWT3D_EXPORT Enrichment
|
---|
21 | {
|
---|
22 | public:
|
---|
23 | enum TYPE{
|
---|
24 | VERTEXENRICHMENT,
|
---|
25 | EDGEENRICHMENT,
|
---|
26 | FACEENRICHMENT,
|
---|
27 | VOXELENRICHMENT
|
---|
28 | }; //!< Type of the Enrichment - only VERTEXENRICHMENT's are defined at this moment.
|
---|
29 |
|
---|
30 | Enrichment() : plot(0) {}
|
---|
31 | virtual ~Enrichment(){}
|
---|
32 | virtual Enrichment* clone() const = 0; //!< The derived class should give back a new Derived(something) here
|
---|
33 | virtual void drawBegin(){}; //!< Empty per default. Can be overwritten.
|
---|
34 | virtual void drawEnd(){}; //!< Empty per default. Can be overwritten.
|
---|
35 | virtual void assign(Plot3D const& pl) {plot = &pl;} //!< Assign to existent plot;
|
---|
36 | virtual TYPE type() const = 0; //!< Overwrite
|
---|
37 |
|
---|
38 | protected:
|
---|
39 | const Plot3D* plot;
|
---|
40 | };
|
---|
41 |
|
---|
42 | //! Abstract base class for vertex dependent visible user objects
|
---|
43 | /**
|
---|
44 | VertexEnrichments introduce a specialized draw routine for vertex dependent data.
|
---|
45 | draw() is called, when the Plot realizes its internal OpenGL data representation
|
---|
46 | for every Vertex associated to his argument.
|
---|
47 | */
|
---|
48 | class QWT3D_EXPORT VertexEnrichment : public Enrichment
|
---|
49 | {
|
---|
50 | public:
|
---|
51 |
|
---|
52 | VertexEnrichment() : Qwt3D::Enrichment() {}
|
---|
53 | virtual Enrichment* clone() const = 0; //!< The derived class should give back a new Derived(something) here
|
---|
54 | virtual void draw(Qwt3D::Triple const&) = 0; //!< Overwrite this
|
---|
55 | virtual TYPE type() const {return Qwt3D::Enrichment::VERTEXENRICHMENT;} //!< This gives VERTEXENRICHMENT
|
---|
56 | };
|
---|
57 |
|
---|
58 | // todo EdgeEnrichment, FaceEnrichment, VoxelEnrichment etc.
|
---|
59 |
|
---|
60 | } // ns
|
---|
61 |
|
---|
62 | #endif
|
---|