21 #ifndef Tulip_GLCPULODCALCULATOR_H
22 #define Tulip_GLCPULODCALCULATOR_H
27 #include <tulip/BoundingBox.h>
28 #include <tulip/Coord.h>
29 #include <tulip/GlLODCalculator.h>
41 class TLP_GL_SCOPE GlCPULODCalculator :
public GlLODCalculator {
46 virtual ~GlCPULODCalculator();
47 virtual GlLODCalculator *clone() {
48 GlCPULODCalculator *calculator=
new GlCPULODCalculator();
49 calculator->setComputeOutScreenLOD(computeOutScreenLOD);
56 virtual void beginNewCamera(Camera* camera);
60 virtual void addSimpleEntityBoundingBox(GlSimpleEntity * entity,
const BoundingBox& bb);
64 virtual void addNodeBoundingBox(
unsigned int id,
const BoundingBox& bb);
68 virtual void addEdgeBoundingBox(
unsigned int id,
const BoundingBox& bb);
73 virtual void reserveMemoryForNodes(
unsigned int numberOfNodes);
78 virtual void reserveMemoryForEdges(
unsigned int numberOfEdges);
87 virtual void compute(
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
92 virtual BoundingBox getSceneBoundingBox() {
93 return sceneBoundingBox;
100 void setComputeEdgesLOD(
bool state) {
101 computeEdgesLOD=state;
107 void setComputeOutScreenLOD(
bool state) {
108 computeOutScreenLOD=state;
114 virtual void computeFor3DCamera(LayerLODUnit *layerLODUnit,
const Coord &eye,
const Matrix<float, 4> transformMatrix,
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
116 virtual void computeFor2DCamera(LayerLODUnit *layerLODUnit,
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
118 bool computeEdgesLOD;
119 bool computeOutScreenLOD;
121 BoundingBox sceneBoundingBox;
123 LayerLODUnit *currentLayerLODUnit;
129 #endif // Tulip_GLCPULODCALCULATOR_H