Ignore:
Timestamp:
03/31/06 17:29:32 (19 years ago)
Author:
igarcia
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCKMeansClusterGenerator.h

    r700 r721  
    1 #ifndef _LBBCKMEANSCLUSTERGENERATOR_H 
    2 #define _LBBCKMEANSCLUSTERGENERATOR_H 
    3  
     1#ifndef _LBBCKMeansCLUSTERGENERATOR_H 
     2#define _LBBCKMeansCLUSTERGENERATOR_H 
    43 
    54#include <BBC.h> 
     5#include <LBBCLeafKMeansClusterData.h> 
     6#include <LBBCBillboardKMeansClusterData.h> 
     7#include <LBBCLeaf.h> 
     8#include <LBBCLeafDistribution.h> 
    69 
    710namespace LBBC { 
    811 
    9 class _BBCExport KMeansClusterGenerator : public BBC::BillboardCloudGenerator { 
     12class _BBCExport KMeansClusterGenerator: public BBC::BillboardCloudGenerator  
     13{ 
    1014  public: 
    1115    void generate(); 
     
    1317    void init(); 
    1418 
     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 
    1549    KMeansClusterGenerator(); 
    1650 
    17     ~KMeansClusterGenerator(); 
     51    virtual ~KMeansClusterGenerator(); 
    1852 
    1953  protected: 
    2054 
    21         class Cell 
    22         { 
    23                 protected: 
    24                 Cell *right; 
    25                 Cell *left; 
    26                 Ogre::Vector4 min; 
    27                 Ogre::Vector4 max; 
    28                  
    29                 public: 
    30                 Cell() 
    31                 { 
    32                         right = NULL; 
    33                         left = NULL; 
    34                 } 
     55    float mAlpha; 
    3556 
    36                 void setLeftChild(Cell *lChild) 
    37                 { 
    38                         left = lChild; 
    39                 } 
     57        float mEpsilonYN; 
    4058 
    41                 void setRightChild(Cell *rChild) 
    42                 { 
    43                         right = rChild; 
    44                 } 
    45  
    46                 Cell* getRightChild() 
    47                 { 
    48                         return right; 
    49                 } 
    50                  
    51                 Cell* getLeftChild() 
    52                 { 
    53                         return left; 
    54                 } 
    55                  
    56                 Ogre::Vector4 getMin() 
    57                 { 
    58                         return min; 
    59                 } 
    60                  
    61                 Ogre::Vector4 getMax() 
    62                 { 
    63                         return max; 
    64                 }        
    65  
    66                 void setMax(Ogre::Vector4 vmax) 
    67                 { 
    68                         max = vmax; 
    69                 } 
    70  
    71                 void setMin(Ogre::Vector4 vmin) 
    72                 { 
    73                         min = vmin; 
    74                 } 
    75         }; 
    76  
     59        float mNumIterations; 
    7760}; 
    7861 
Note: See TracChangeset for help on using the changeset viewer.