void mitk::TextOverlay3D::UpdateVtkOverlay(mitk::BaseRenderer *renderer) { LocalStorage* ls = this->m_LSH.GetLocalStorage(renderer); if(ls->IsGenerateDataRequired(renderer,this)) { ls->m_follower->SetPosition( GetPosition3D(renderer)[0]+GetOffsetVector(renderer)[0], GetPosition3D(renderer)[1]+GetOffsetVector(renderer)[1], GetPosition3D(renderer)[2]+GetOffsetVector(renderer)[2]); ls->m_textSource->SetText(GetText().c_str()); float color[3] = {1,1,1}; float opacity = 1.0; GetColor(color,renderer); GetOpacity(opacity,renderer); ls->m_follower->GetProperty()->SetColor(color[0], color[1], color[2]); ls->m_follower->GetProperty()->SetOpacity(opacity); ls->m_follower->SetScale(this->GetFontSize()); vtkRenderer* vtkRender = renderer->GetVtkRenderer(); if(vtkRender) ls->m_follower->SetCamera(vtkRender->GetActiveCamera()); ls->UpdateGenerateDataTime(); } }
bool CPlayer::HandleEvent( UINT eventId, void* data, UINT data_sz ) { static const EMovementFlagType movementMap[] = { MOVE_FORWARD_FLAG, MOVE_BACKWARD_FLAG, MOVE_LEFT_FLAG, MOVE_RIGHT_FLAG, }; switch( eventId ) { case EVT_UPDATE: assert( data_sz == sizeof(float) ); assert( data != NULL ); Update( *(float*)data ); break; case EVT_INIT: assert( data_sz == sizeof(CMeshManager*) ); assert( data != NULL ); Setup( *reinterpret_cast<CMeshManager*>(data) ); break; case EVT_GETFACINGVEC: { assert( data_sz == sizeof(GetFacingEventArgType) ); assert( data != NULL ); *(GetFacingEventArgType*)data = GetRotationRadians(); break; } case EVT_SETFACINGVEC: { assert( data_sz == sizeof(SetFacingEventArgType) ); assert( data != NULL ); SetFacingEventArgType* arg = (SetFacingEventArgType*)data; // SetXRotationRadians(arg->x); SetYRotationRadians(arg->y); // SetZRotationRadians(arg->z); break; } case EVT_MOVECMD: { assert( data_sz == sizeof(MovementCommandType) ); assert( data != NULL ); MovementCommandType* args = (MovementCommandType*)data; if(args->clearFlag) m_movementState &= ~movementMap[args->state]; else m_movementState |= movementMap[args->state]; break; } case EVT_GETPOSITIONVEC: assert( data_sz == sizeof(GetPosEventArgType) ); assert( data != NULL ); *(GetPosEventArgType*)data = GetPosition3D(); break; case EVT_CONTROL_LOST_FOCUS: case EVT_CONTROL_GAIN_FOCUS: m_movementState &= ~MOVE_FLAG_MASK; break; case EVT_ATTACH_CAMERA: assert( data_sz == sizeof(CCamera*) ); assert( data != NULL ); reinterpret_cast<CCamera*>(data)->SetLocalPosition(Vector_3(-5.0f, 12.0f, -20.0f)); break; default: assert(false); break; } return true; }