zoomedit:

* Can grab level view now to change view position.
This commit is contained in:
neoraider 2008-04-17 08:53:05 +00:00
parent 1464f33677
commit c771232b74
6 changed files with 43 additions and 48 deletions

View file

@ -154,47 +154,5 @@ void TopView::render(Gui::RenderArea *renderArea) {
renderRoom(*room);
}
void TopView::getBounds(float *minX, float *maxX, float *minY, float *maxY) {
if(!level)
return;
if(minX)
*minX = 0;
if(maxX)
*maxX = 0;
if(minY)
*minY = 0;
if(maxY)
*maxY = 0;
const std::list<Data::Room*> &rooms = level->getRooms();
for(std::list<Data::Room*>::const_iterator room = rooms.begin(); room != rooms.end(); ++room) {
const std::list<Data::Triangle*> &triangles = (*room)->getFloorTriangles();
for(std::list<Data::Triangle*>::const_iterator t = triangles.begin(); t != triangles.end(); ++t) {
const Data::Vertex &v1 = (*t)->getVertex(0), &v2 = (*t)->getVertex(1), &v3 = (*t)->getVertex(2);
if(minX)
*minX = std::min(std::min(*minX, v1.getX()), std::min(v2.getX(), v3.getX()));
if(maxX)
*maxX = std::max(std::max(*maxX, v1.getX()), std::max(v2.getX(), v3.getX()));
if(minY)
*minY = std::min(std::min(*minY, v1.getZ()), std::min(v2.getZ(), v3.getZ()));
if(maxY)
*maxY = std::max(std::max(*maxY, v1.getZ()), std::max(v2.getZ(), v3.getZ()));
}
}
if(minX)
*minX -= 2.5f;
if(maxX)
*maxX += 2.5f;
if(minY)
*minY -= 2.5f;
if(maxY)
*maxY += 2.5f;
}
}
}

View file

@ -55,8 +55,6 @@ class TopView : public View {
void setLevel(Data::Level *level0) {level = level0;}
virtual void render(Gui::RenderArea *renderArea);
virtual void getBounds(float *minX, float *maxX, float *minY, float *maxY);
};
}

View file

@ -33,7 +33,6 @@ class View {
virtual ~View() {}
virtual void render(Gui::RenderArea *renderArea) = 0;
virtual void getBounds(float *minX, float *maxX, float *minY, float *maxY) = 0;
};
}