LoginSignup
0
0

More than 1 year has passed since last update.

GUIの改造3 crop aabb

Last updated at Posted at 2022-12-03

「instantNeRFで遊ぶ Advent Calendar 2022」の4日目です。

testbedのメニューを自分が使いやすい様に改造していきます。
今回は領域を指定するcrop aabbの入力メニューを改造してみました。

業務外の個人的な検討活動です。

警告
環境や入力内容によっては現在使用できている状況が壊れることがあります。
あなたの責任と判断で試してください。私は責任を取りません。

現状

改造前はこちらのように各軸の最小最大が上下に分かれていて視点移動が増えたり、各軸がどの方向に対応しているか分かりにくかったりしました。

3-1.png

testbed.cuの変更

1日目と同様にVisualStudio2019でinstant-ngpのフォルダを開き、testbed.cuの内容を変更します。

コメントアウトが変更前の文です。
3-2.png

追加した部分のコード

			float aabbx[2] = { (float)m_render_aabb.min[0], (float)m_render_aabb.max[0] };
			accum_reset |= ImGui::SliderFloat2("aabb_x", aabbx, (float)m_aabb.min.x(), (float)m_aabb.max.x()); ImGui::SameLine();
			ImGui::TextColored({ 0.95f, 0.05f, 0.05f, 1.0 }, "right");
			m_render_aabb.min[0] = aabbx[0];
			m_render_aabb.max[0] = aabbx[1];

			float aabby[2] = { (float)m_render_aabb.min[1], (float)m_render_aabb.max[1] };
			accum_reset |= ImGui::SliderFloat2("aabb_y", aabby, (float)m_aabb.min.y(), (float)m_aabb.max.y()); ImGui::SameLine();
			ImGui::TextColored({ 0.05f, 0.95f, 0.05f, 1.0 }, "up");
			m_render_aabb.min[1] = aabby[0];
			m_render_aabb.max[1] = aabby[1];

			float aabbz[2] = { (float)m_render_aabb.min[2], (float)m_render_aabb.max[2] };
			accum_reset |= ImGui::SliderFloat2("aabb_z", aabbz, (float)m_aabb.min.z(), (float)m_aabb.max.z()); ImGui::SameLine();
			ImGui::TextColored({ 0.05f, 0.05f, 0.95f, 1.0 }, "back");
			m_render_aabb.min[2] = aabbz[0];
			m_render_aabb.max[2] = aabbz[1];

			ImGui::Separator();

			Vector3f diag = m_render_aabb.diag();
			bool edit_diag = false;
			float max_diag = m_aabb.diag().maxCoeff();

結果

その結果のメニューがこちらです。
3-3.png

個人の趣向に合わせてGUIを変更できるのがうれしいですね。

参考 

instantNeRFの座標はこちらを参考にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0