1 #include "SceneThreeDOutWrapper.hh"
2 #include <Base/Debug/TimeMeasure.hh>
9 void SceneThreeDOutWrapper::Draw()
11 if(threeDOutObject_ != NULL){
13 if (GetFlag(DRAW_ELLIPSOIDS)){
14 if(covarianceColor_.NormL2() != 0)
15 threeDOutObject_->OpenGLOutEllipsoids(covarianceColor_);
17 threeDOutObject_->OpenGLOutEllipsoids();
20 threeDOutObject_->OpenGLOutImages();
23 switch(GetTriangleMeshDrawStyle()){
25 threeDOutObject_->OpenGLOutIndexedFaceSets();
28 triangleSplatting_.SetCamera(GetGLProjectionParametersInterface());
29 triangleSplatting_.ComputeDepthTolerance(0.02);
30 triangleSplatting_.Splat();
34 if(GetFlag(DRAW_CAM_ELLIPSOIDS))
35 threeDOutObject_->SetParamsDrawCameraEllipse(
true);
37 threeDOutObject_->SetParamsDrawCameraEllipse(
false);
39 if (GetFlag(RENDER_CAMERA)) {
40 if(cameraColor_.NormL2() != 0)
41 threeDOutObject_->OpenGLOutPMatrices(cameraColor_);
43 threeDOutObject_->OpenGLOutPMatrices();
44 threeDOutObject_->OpenGLOutWCS();
47 threeDOutObject_->OpenGLOutPoints();
48 threeDOutObject_->OpenGLOutLines();
52 void SceneThreeDOutWrapper::SetFlag(
unsigned long int Flag)
54 if ( !(RenderFlags_ & Flag) )
59 void SceneThreeDOutWrapper::UnsetFlag(
unsigned long int Flag)
61 if ( RenderFlags_ & Flag )
65 bool SceneThreeDOutWrapper::GetFlag(
unsigned long int Flag)
68 if ( RenderFlags_ & Flag ) tmp=
true;
72 void SceneThreeDOutWrapper::
75 BIASASSERT(threeDOutObject_!=NULL);
76 threeDOutObject_->GetBoundingBox(min, max);
78 for (
unsigned int i=0; i<3; i++) {
81 double dist = 0.01*(max[i]-min[i]);
89 GetBoundingBoxCenter()
91 BIASASSERT(threeDOutObject_!=NULL);
92 return threeDOutObject_->GetCenterOfPoints();
95 void SceneThreeDOutWrapper::MoveScene(
const double& delta) {
97 threeDOutObject_->Translation(delta * velocity_);
double NormL2() const
the L2 norm sqrt(a^2 + b^2 + c^2)