source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/BBC/BBCBillboardClusterData.h @ 700

Revision 700, 1.2 KB checked in by igarcia, 18 years ago (diff)
Line 
1#ifndef _BBCBILLBOARDCLUSTERDATA_H
2#define _BBCBILLBOARDCLUSTERDATA_H
3
4#include <BBCEntityCluster.h>
5
6namespace BBC {
7
8class _BBCExport BillboardClusterData {
9  public:
10    BillboardClusterData();
11
12    ~BillboardClusterData();
13
14        void setNormal(Ogre::Vector3 value);
15
16        Ogre::Vector3 getNormal();
17
18        void setD(float value);
19
20        float getD();
21
22    EntityCluster* getEntityCluster();
23
24        void setEntityCluster(EntityCluster *value);
25
26        virtual void readBillboardClusterData(TiXmlNode *parentNode);
27
28        virtual void writeBillboardClusterData(TiXmlNode *parentNode);
29
30        virtual void generateBillboardBoundingQuad();
31
32        Ogre::Vector3 getQuadTopLeftCorner();
33
34        Ogre::Vector3 getQuadTopRightCorner();
35
36        Ogre::Vector3 getQuadBottomLeftCorner();
37
38        Ogre::Vector3 getQuadBottomRightCorner();
39
40        Ogre::Vector3 getAxisX();
41
42        Ogre::Vector3 getAxisY();
43
44        Ogre::Vector3 getAxisZ();
45
46
47
48protected:
49        EntityCluster *mEntityCluster;
50       
51        Ogre::Vector3 mAxisX;
52
53        Ogre::Vector3 mAxisY;
54
55        Ogre::Vector3 mAxisZ;
56
57    enum BoundingQuadVertex {
58        QUAD_TOP_LEFT,
59        QUAD_TOP_RIGHT,
60        QUAD_BOTTOM_RIGHT,
61        QUAD_BOTTOM_LEFT
62    };
63
64        Ogre::Vector3 mBillboardCorners[4];
65
66        Ogre::Vector3 mNormal;
67
68        float mD;
69
70};
71
72}
73#endif
Note: See TracBrowser for help on using the repository browser.