21 #ifndef Tulip_GLCPULODCALCULATOR_H
22 #define Tulip_GLCPULODCALCULATOR_H
24 #include <tulip/Coord.h>
25 #include <tulip/GlLODCalculator.h>
26 #include <tulip/Matrix.h>
38 class TLP_GL_SCOPE GlCPULODCalculator :
public GlLODCalculator {
43 virtual ~GlCPULODCalculator();
44 virtual GlLODCalculator *clone() {
45 GlCPULODCalculator *calculator=
new GlCPULODCalculator();
46 calculator->setComputeOutScreenLOD(computeOutScreenLOD);
53 virtual void beginNewCamera(Camera* camera);
57 virtual void addSimpleEntityBoundingBox(GlSimpleEntity * entity,
const BoundingBox& bb);
61 virtual void addNodeBoundingBox(
unsigned int id,
const BoundingBox& bb);
65 virtual void addEdgeBoundingBox(
unsigned int id,
const BoundingBox& bb);
70 virtual void reserveMemoryForNodes(
unsigned int numberOfNodes);
75 virtual void reserveMemoryForEdges(
unsigned int numberOfEdges);
84 virtual void compute(
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
89 virtual BoundingBox getSceneBoundingBox() {
90 return sceneBoundingBox;
97 void setComputeEdgesLOD(
bool state) {
98 computeEdgesLOD=state;
104 void setComputeOutScreenLOD(
bool state) {
105 computeOutScreenLOD=state;
111 virtual void computeFor3DCamera(LayerLODUnit *layerLODUnit,
const Coord &eye,
const Matrix<float, 4> transformMatrix,
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
113 virtual void computeFor2DCamera(LayerLODUnit *layerLODUnit,
const Vector<int,4>& globalViewport,
const Vector<int,4>& currentViewport);
115 bool computeEdgesLOD;
116 bool computeOutScreenLOD;
118 BoundingBox sceneBoundingBox;
120 LayerLODUnit *currentLayerLODUnit;
126 #endif // Tulip_GLCPULODCALCULATOR_H