shared_ptr<SceneNode> CameraObjectParams::VCreateSceneNode(shared_ptr<Scene> pScene) { // size_t origsize = strlen(m_ModellFilename) + 1; // const size_t newsize = StaticMeshObjectParams::sk_MaxFileNameLen ; // size_t convertedChars = 0; // wchar_t meshFileName[newsize]; // mbstowcs_s(&convertedChars, meshFileName, origsize, m_ModellFilename, _TRUNCATE); // // origsize = strlen(m_FXFileName) + 1; // wchar_t effectFileName[newsize]; // mbstowcs_s(&convertedChars, effectFileName, origsize, m_FXFileName, _TRUNCATE); stringstream stmName; stmName << "Object"; stmName << (*m_Id); Frustum frustum; frustum.Init(D3DX_PI/4.0f, 1.0f, 0.1f, 10000.0f); CameraNode* node = DEBUG_CLIENTBLOCK CameraNode(m_Id, stmName.str(), m_Mat ,frustum); shared_ptr<SceneNode> cameraNode(node); pScene->SetCamera( shared_ptr<CameraNode>((CameraNode*)node) ); return cameraNode; }
// // HumanView::HumanView - Chapter 10, page 272 // HumanView::HumanView(shared_ptr<IRenderer> renderer) { //InitAudio(); //m_pProcessManager = AC_NEW ProcessManager; //m_PointerRadius = 1; // we assume we are on a mouse enabled machine - if this were a tablet we should detect it here. m_ViewId = gc_InvalidGameViewId; // Added post press for move, new, and destroy actor events and others //RegisterAllDelegates(); m_BaseGameState = BGS_Initializing; // what is the current game state if(renderer) { // Moved to the HumanView class post press m_pScene.reset(AC_NEW ScreenElementScene(renderer)); Frustum frustum; frustum.Init(GCC_PI/4.0f, 1.0f, 1.0f, 10000.0f); m_pCamera.reset(AC_NEW CameraNode(&Mat4x4::g_Identity, frustum)); AC_ASSERT(m_pScene && m_pCamera && _T("Out of memory")); m_pScene->VAddChild(INVALID_ACTOR_ID, m_pCamera); m_pScene->SetCamera(m_pCamera); } // to be removed later m_currTick = 0; // time right now m_lastDraw = 0; m_runFullSpeed = false; }
HumanView::HumanView(shared_ptr<IRenderer> renderer) { InitAudio(); m_pProcessManager = CB_NEW ProcessManager; m_PointerRadius = 1; m_ViewId = CB_INVALID_GAMEVIEW_ID; RegisterAllDelegates(); m_BaseGameState = BaseGameState::Initializing; if (renderer) { // create the scene graph and camera m_pScene.reset(CB_NEW ScreenElementScene(renderer)); Frustrum frustrum; frustrum.Init(CB_PI / 4.0f, 1.0f, 1.0f, 100.0f); m_pCamera.reset(CB_NEW CameraNode(&Mat4x4::Identity, frustrum)); CB_ASSERT(m_pScene && m_pCamera && L"Out of Memory"); m_pScene->AddChild(INVALID_GAMEOBJECT_ID, m_pCamera); m_pScene->SetCamera(m_pCamera); } m_LastDraw = 0; }
HumanView::HumanView( void ) { m_pProcessManager = ENG_NEW ProcessManager; m_ViewId = gc_InvalidGameViewId; AttachLayout( shared_ptr<UserInterface>( ENG_NEW UserInterface( Resource( g_pApp->m_EngineOptions.GetGUILayoutFieName(), true ) ) ) ); if ( g_pApp->m_pEngineLogic->m_pWrold ) { m_pWorld = g_pApp->m_pEngineLogic->m_pWrold; Frustum frustum; Point screenSize = g_pApp->m_EngineOptions.GetScreenSize(); frustum.Init( ENG_PI / 4.0f, screenSize.x / screenSize.y, 0.1f, 2000.0f ); m_pCamera.reset( ENG_NEW CameraNode( Vec3(0.0f, 0.0f, 0.0f), // position in World Space Vec3( 0.0f, 0.0f, 1.0f), // look target Vec3( 0.0f, 1.0f, 0.0f) // Head is up (set to 0,-1,0 to look upside-down) , frustum ) ); ENG_ASSERT( m_pWorld && m_pCamera && _T("Out of memory") ); m_pWorld->AddChild( INVALID_ACTOR_ID, m_pCamera ); m_pWorld->SetCamera( m_pCamera ); } m_pController.reset( ENG_NEW EditorController( m_pCamera, 0, 0, true ) ); }
HumanView::HumanView(IRenderer* renderer) { m_pProcessManager = BE_NEW ProcessManager; m_pDebugManager = BE_NEW DebugManager; m_pKeyboardHandler = nullptr; m_pMouseHandler = nullptr; m_mouseRadius = 1; m_viewId = be_InvalidGameViewId; RegisterAllDelegates(); m_coreGameState = CGS_Initializing; m_runFullSpeed = true; if (renderer) { m_pScene = BE_NEW ScreenElementScene(renderer); Frustum frustum; frustum.Init(BE_PI / 4.0f, 1.0f, 1.0f, 100.0f); m_pCamera = BE_NEW CameraNode(&Mat4x4::g_Identity, frustum); BE_ASSERTf(m_pScene && m_pCamera, "Out of Memory"); m_pScene->VAddChild(INVALID_ACTOR_ID, m_pCamera); m_pScene->SetCamera(m_pCamera); } bool result; result = m_pDebugManager->Initialize(this); if (!result) { BE_ERROR("Failed to Initialze DebugManager"); } }