diff --git a/SchracVisualize_Direct3D_11/SchracVisualize_Direct3D_11.cpp b/SchracVisualize_Direct3D_11/SchracVisualize_Direct3D_11.cpp index 1c0a3cb..2bd3718 100644 --- a/SchracVisualize_Direct3D_11/SchracVisualize_Direct3D_11.cpp +++ b/SchracVisualize_Direct3D_11/SchracVisualize_Direct3D_11.cpp @@ -18,7 +18,6 @@ #include "SDKmisc.h" #include "orbitaldensityrand/orbitaldensityrand.h" #include "orbitaldensityrand/utility/utility.h" -#include // for std::array #include // for std::iota #include // for std::optional #include // for boost::numeric_cast @@ -55,25 +54,25 @@ struct CBChangesEveryFrame2 //! A global variable (constant). /*! - ????????? + カメラの位置の倍率 */ static auto constexpr MAGNIFICATION = 1.2f; //! A global variable (constant). /*! - ?????(??) + 画面サイズ(高さ) */ static auto constexpr WINDOWHEIGHT = 960; //! A global variable (constant). /*! - ?????(?) + 画面サイズ(幅) */ static auto constexpr WINDOWWIDTH = 1280; //! A global variable. /*! - CPU?????? + CPUのスレッド数 */ static auto const cputhreads = tbb::task_scheduler_init::default_num_threads(); @@ -85,8 +84,8 @@ CModelViewerCamera camera; //! A lambda expression. /*! - CDXUTTextHelper??????????????? - \param spline CDXUTTextHelper?????? + CDXUTTextHelperへのポインタを解放するラムダ式 + \param spline CDXUTTextHelperへのポインタ */ static auto const deleter = [](auto ptxthelper) { if (ptxthelper) { @@ -103,43 +102,43 @@ CDXUTDialogResourceManager dialogResourceManager; //! A global variable. /*! - ??????????? + 描画する軌道の識別数値 */ auto drawdata = 1U; //! A global variable. /*! - ?????? + 計算開始時間 */ double drawstarttime; //! A global variable. /*! - ?????? + 計算終了時間 */ double drawendtime; //! A global variable. /*! - ??????????????? + 計算が開始したことを示すフラグ */ auto first = true; //! A global variable. /*! - ??????????????? + 計算が終了したことを示すフラグ */ auto end = false; //! A global variable. /*! - ????????? + バッファーリソース */ D3D11_BUFFER_DESC g_bd; //! A global variable. /*! - Direct3D???? + Direct3Dデバイス */ ID3D11Device* g_pd3dDevice; @@ -161,37 +160,37 @@ Microsoft::WRL::ComPtr pCBNeverChanges; //! A global variable. /*! - ????????? + データオブジェクト */ std::shared_ptr pgd; //! A global variable. /*! - ?????????? + インデックスバッファ */ Microsoft::WRL::ComPtr pIndexBuffer; //! A global variable. /*! - ?????????????????????? + 軌道・電子密度の乱数生成クラスのオブジェクト */ std::optional podr; //! A global variable. /*! - ????????? + ピクセルシェーダー */ Microsoft::WRL::ComPtr pPixelShaderBox; //! A global variable. /*! - ??????? + テキスト表示用 */ std::unique_ptr pTxtHelper(nullptr, deleter); //! A global variable. /*! - ?????? + 頂点バッファ */ Microsoft::WRL::ComPtr pVertexBuffer; @@ -202,13 +201,13 @@ Microsoft::WRL::ComPtr pVertexLayout; //! A global variable. /*! - ??????????? + バーテックスシェーダー */ Microsoft::WRL::ComPtr pVertexShaderBox; //! A global variable. /*! - ??????????????? + 実部と虚部のどちらを描画するか */ auto reim = OrbitalDensityRand::Re_Im_type::REAL; @@ -246,8 +245,8 @@ void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, vo //! A function. /*! - ?????????????? - \return ????????? + ウィンドウタイトルを生成する + \return ウィンドウタイトル */ std::wstring CreateWindowTitle(); @@ -259,58 +258,56 @@ void InitApp(); //! A function. /*! - ???? - \param pd3dImmediateContext Direct3D??????????? + 描画する + \param pd3dImmediateContext Direct3Dのデバイスコンテキスト */ HRESULT OnRender(ID3D11DeviceContext* pd3dImmediateContext); //! A function. /*! - ?????????????????? + テキストファイルからデータを読み込む */ void ReadData(); //! A function. /*! - ????? - \param pd3dDevice Direct3D???? + 再描画する */ void Redraw(); //! A function. /*! - ???????true??? + 再描画フラグをtrueにする */ void RedrawFlagTrue(); //! A function. /*! - ????????????? + 画面の左上に情報を表示する */ void RenderText(double fTime); //! A function. /*! - ?????? - \param pd3dDevice Direct3D???? + 点を描画する */ HRESULT RenderPoint(); //! A function. /*! - ???????????? + カメラの位置をセットする */ void SetCamera(); //! A function. /*! - UI????? + UIを配置する */ void SetUI(); //! A function. /*! - ??????? + 描画を中止する */ void StopDraw(); @@ -640,12 +637,15 @@ void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, vo podr.emplace(pgd); first = true; ::SetWindowText(DXUTGetHWND(), CreateWindowTitle().c_str()); + hud.RemoveAllControls(); + drawdata = 1U; + SetUI(); Redraw(); break; case IDC_COMBOBOX: { - auto const pItem = (static_cast(pControl))->GetSelectedItem(); + auto const pItem = (dynamic_cast(pControl))->GetSelectedItem(); if (pItem) { drawdata = reinterpret_cast(pItem->pData); @@ -668,12 +668,12 @@ void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, vo case IDC_SLIDER: RedrawFlagTrue(); - podr->Verticessize(static_cast::size_type>((reinterpret_cast(pControl))->GetValue())); + podr->Verticessize(static_cast::size_type>((dynamic_cast(pControl))->GetValue())); Redraw(); break; default: - BOOST_ASSERT(!"???????!"); + BOOST_ASSERT(!"何かがおかしい!"); break; } } @@ -772,7 +772,7 @@ HRESULT RenderPoint() break; default: - BOOST_ASSERT(!"index????????!"); + BOOST_ASSERT(!"indexの指定がおかしい!"); break; } } @@ -802,7 +802,7 @@ HRESULT RenderPoint() break; default: - BOOST_ASSERT(!"index????????!"); + BOOST_ASSERT(!"indexの指定がおかしい!"); break; } } @@ -840,14 +840,14 @@ HRESULT RenderPoint() break; default: - BOOST_ASSERT(!"index????????!"); + BOOST_ASSERT(!"indexの指定がおかしい!"); break; } } break; default: - BOOST_ASSERT(!"???????????!"); + BOOST_ASSERT(!"量子数の指定が異常です!"); break; } @@ -868,7 +868,7 @@ void ReadData() pgd = std::make_shared(utility::myOpenFile()); } catch (std::runtime_error const & e) { - ::MessageBox(nullptr, utility::my_mbstowcs(e.what()).c_str(), L"???", MB_OK | MB_ICONWARNING); + ::MessageBox(nullptr, utility::my_mbstowcs(e.what()).c_str(), L"エラー", MB_OK | MB_ICONWARNING); continue; } break; @@ -877,7 +877,7 @@ void ReadData() //! A function. /*! - ????? + 再描画する */ void Redraw() { @@ -893,7 +893,7 @@ void Redraw() indices.resize(podr->Verticessize); std::iota(indices.begin(), indices.end(), 0); - // ????????? + // バッファーリソース D3D11_BUFFER_DESC bd; ZeroMemory(&bd, sizeof(bd)); @@ -1022,7 +1022,7 @@ void SetUI() break; default: - throw std::runtime_error("g???????????????"); + throw std::runtime_error("g以上の軌道には対応していません"); break; } @@ -1033,7 +1033,7 @@ void SetUI() } } - // ????? + // 角度の調整 hud.AddStatic(IDC_OUTPUT, L"Vertex size", 20, iY += 34, 125, 22); hud.GetStatic(IDC_OUTPUT)->SetTextColor(D3DCOLOR_ARGB(255, 255, 255, 255)); hud.AddSlider(IDC_SLIDER, 35, iY += 24, 125, 22, 0, 1000000, OrbitalDensityRand::VERTICESSIZE_INIT_VALUE); @@ -1084,7 +1084,7 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, InitApp(); - // ???????? + // ウィンドウを生成 auto const dispx = ::GetSystemMetrics(SM_CXSCREEN); auto const dispy = ::GetSystemMetrics(SM_CYSCREEN); auto const xpos = (dispx - WINDOWWIDTH) / 2;