home *** CD-ROM | disk | FTP | other *** search
- #include "PotentialVisibilitySet.h"
-
- #include "Renderer.h"
- #include "RendererInfo.h"
-
- PotentialVisibilitySet::PotentialVisibilitySet(unsigned int size){
- numClusters=size;
- clusters=new PVSCluster_t*[numClusters];
- for(unsigned int i=0;i<numClusters;i++){
- clusters[i]=new PVSCluster_t;
- clusters[i]->visibleClusters=new BitSet(numClusters);
- clusters[i]->visibleClusters->clearAll();
- }
-
- enabled=true;
- }
-
- PotentialVisibilitySet::~PotentialVisibilitySet(){
- for(unsigned i=0;i<numClusters;i++){
- delete clusters[i]->visibleClusters;
- delete clusters[i];
- }
- delete[] clusters;
-
- enabled=true;
- }
-
- void PotentialVisibilitySet::setCurrentCluster(unsigned int cluster){
- currentCluster=cluster;
- }
-
- bool PotentialVisibilitySet::clusterIsVisible(unsigned int test){
- return clusters[currentCluster]->visibleClusters->isSet(test);
- }
-
- bool PotentialVisibilitySet::clusterIsVisible(unsigned int current, unsigned int test){
- return clusters[current]->visibleClusters->isSet(test);
- }
-
- PVSCluster_t** PotentialVisibilitySet::getClusters(){
- return clusters;
- }
-
- unsigned int PotentialVisibilitySet::getNumClusters(){
- return numClusters;
- }
-
- void PotentialVisibilitySet::drawClusterBorders(){
- if(Renderer::info.var.renderPVSBorders==1){
- glColor3f(0.8f, 0.8f, 0.8f);
- for(unsigned int i=0;i<numClusters;i++){
- Renderer::debug_renderAABB(clusters[i]->min,clusters[i]->max);
- }
- }else if(Renderer::info.var.renderPVSBorders==2){
- glColor3f(1.0f, 0.0f, 0.0f);
- Renderer::debug_renderAABB(clusters[currentCluster]->min,clusters[currentCluster]->max);
- glColor3f(0.8f, 0.8f, 0.8f);
- for(unsigned int i=0;i<numClusters;i++){
- if(clusterIsVisible(i))
- Renderer::debug_renderAABB(clusters[i]->min,clusters[i]->max);
- }
-
- }
- }
-