source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCKMeansClusterGenerator.h @ 721

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