source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCKdTreeClusterGenerator.h @ 700

Revision 700, 1.2 KB checked in by igarcia, 18 years ago (diff)
Line 
1#ifndef _LBBCKDTREECLUSTERGENERATOR_H
2#define _LBBCKDTREECLUSTERGENERATOR_H
3
4#include <BBC.h>
5#include <LBBCLeafKdTreeClusterData.h>
6#include <LBBCBillboardKdTreeClusterData.h>
7#include <LBBCLeaf.h>
8#include <LBBCLeafDistribution.h>
9
10namespace LBBC {
11
12class _BBCExport KdTreeClusterGenerator : public BBC::BillboardCloudGenerator {
13  public:
14    void generate();
15
16    void init();
17
18        void setAlpha(float value);
19
20        float getAlpha();
21
22        void initializeBillboardCloud();
23
24        BBC::Billboard* createBillboard();
25
26        void initializeBillboardClusterData(BBC::Billboard *billboard);
27       
28        void initializeRandomBillboard(BBC::Billboard *billboard);
29
30        void splitLeafDistribution();
31
32        void assignLeafBillboard(Leaf *leaf, BBC::Billboard *billboard);
33
34        void recomputeBillboardCloud();
35
36        void recomputeBillboard(BBC::Billboard *billboard);
37
38        void iterativeRecomputeBillboardCloud();
39
40        unsigned int findBestBillboard(Leaf *leaf);
41
42        void generateBillboardCloudBounds();
43
44        void setNumIterations(unsigned int value);
45
46        unsigned int getNumIterations();
47
48    KdTreeClusterGenerator();
49
50    ~KdTreeClusterGenerator();
51
52  protected:
53
54    float mAlpha;
55
56        float mEpsilonYN;
57
58        float mNumIterations;
59};
60
61}
62#endif
Note: See TracBrowser for help on using the repository browser.