#include "BoostPreprocessorThread.h" #include "Camera.h" #include "KdTree.h" #include "SceneGraph.h" #include "Preprocessor.h" #include namespace GtpVisibilityPreprocessor { BoostPreprocessorThread::BoostPreprocessorThread(Preprocessor *p): PreprocessorThread(p), mThread(NULL) { } void BoostPreprocessorThread::operator()() { Main(); } void BoostPreprocessorThread::Main() { Camera camera; if (0) { // camera.LookAtBox(mPreprocessor->mKdTree->GetBox()); // camera.LookInBox(mPreprocessor->mKdTree->GetBox()); camera.SetPosition(Vector3(3473, 6.778f, -1699.0f)); camera.SetDirection(Vector3(-0.2432f, 0, 0.97f)); // camera.SetPosition(Vector3(991.7, 187.8, -271)); // camera.SetDirection(Vector3(0.9, 0, -0.4)); camera.SnapImage("camera.jpg", mPreprocessor->mKdTree, mPreprocessor->mSceneGraph); } if (0) { camera.LookInBox(mPreprocessor->mKdTree->GetBox()); camera.SetPosition(camera.mPosition + Vector3(-250,0,-550)); camera.SnapImage("camera2.jpg", mPreprocessor->mKdTree, mPreprocessor->mSceneGraph); } if (0) { camera.SetPosition( mPreprocessor->mKdTree->GetBox().Center() - Vector3(0,-100,0) ); camera.SetDirection(Vector3(1, 0, 0)); camera.SnapImage("camera3.jpg", mPreprocessor->mKdTree, mPreprocessor->mSceneGraph); } if (mPreprocessor->mComputeVisibility) { mPreprocessor->ComputeVisibility(); // mPreprocessor->ExportPreprocessedData("scene.vis"); mPreprocessor->PostProcessVisibility(); } cerr << "Preprocessor main finished...\n"; } BoostPreprocessorThread::~BoostPreprocessorThread() { cerr << "Boost Preprocessor thread destructor ... \n"; DEL_PTR(mThread); } void BoostPreprocessorThread::InitThread() { mThread = new boost::thread(*this); } void BoostPreprocessorThread::RunThread() { Main(); //mThread->join(); } }