gitextract_kwrt7koe/ ├── .clang-format ├── .gitattributes ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── LICENSE ├── README.md ├── assets/ │ └── tutorial/ │ ├── bob.mesh │ ├── bunny.mesh │ ├── horse.mesh │ ├── kitten.vtk │ ├── rockerArm.mesh │ └── spot.mesh ├── external/ │ └── CMakeLists.txt ├── geomlib/ │ ├── CMakeLists.txt │ ├── geomlib/ │ │ ├── CMakeLists.txt │ │ ├── TetMesh.cpp │ │ ├── TetMesh.h │ │ ├── TriMesh.cpp │ │ ├── TriMesh.h │ │ ├── TriangularMeshSampler.cpp │ │ ├── TriangularMeshSampler.h │ │ ├── autograd/ │ │ │ ├── GeneralizedProjection.cpp │ │ │ └── GeneralizedProjection.h │ │ ├── common.cpp │ │ ├── common.cuh │ │ ├── common.h │ │ ├── generalized_projection.h │ │ ├── generalized_projection_cuda.cu │ │ ├── generalized_projection_info.cpp │ │ ├── generalized_projection_info.h │ │ ├── hausdorff_distance.cpp │ │ ├── hausdorff_distance.h │ │ ├── io/ │ │ │ ├── ObjParser.cpp │ │ │ ├── ObjParser.h │ │ │ ├── TetMeshParser.cpp │ │ │ └── TetMeshParser.h │ │ ├── logging.h │ │ ├── point_tet_mesh_test.h │ │ ├── point_tet_mesh_test_cuda.cu │ │ ├── ray_triangle_intersection.cpp │ │ ├── ray_triangle_intersection.h │ │ ├── utils.cuh │ │ └── vec_utils.cuh │ └── test/ │ ├── CMakeLists.txt │ └── main.cpp ├── hex/ │ ├── CMakeLists.txt │ └── src/ │ ├── HexMeshingApp.cpp │ ├── HexMeshingApp.h │ ├── Settings.cpp │ ├── Settings.h │ ├── common.cpp │ ├── common.h │ ├── controllers/ │ │ ├── CuboidEditingController.cpp │ │ ├── CuboidEditingController.h │ │ ├── GlobalController.cpp │ │ ├── GlobalController.h │ │ ├── ShortcutController.cpp │ │ ├── ShortcutController.h │ │ └── stages/ │ │ ├── DecompositionStage.cpp │ │ ├── DecompositionStage.h │ │ ├── DeformationStage.cpp │ │ ├── DeformationStage.h │ │ ├── DiscretizationStage.cpp │ │ ├── DiscretizationStage.h │ │ ├── HexahedralizationStage.cpp │ │ ├── HexahedralizationStage.h │ │ ├── PipelineStage.cpp │ │ └── PipelineStage.h │ ├── debug.cpp │ ├── debug.h │ ├── logging.h │ ├── main.cpp │ ├── models/ │ │ ├── Cuboid.cpp │ │ ├── Cuboid.h │ │ ├── GlobalState.cpp │ │ ├── GlobalState.h │ │ ├── HexComplex.cpp │ │ ├── HexComplex.h │ │ ├── HexConvention.cpp │ │ ├── HexConvention.h │ │ ├── HexMeshQuality.cpp │ │ ├── HexMeshQuality.h │ │ ├── HexahedralMesh.cpp │ │ ├── HexahedralMesh.h │ │ ├── MultiDimArray.h │ │ ├── Polycube.cpp │ │ ├── Polycube.h │ │ ├── PolycubeGraph.cpp │ │ ├── PolycubeGraph.h │ │ ├── PolycubeInfo.cpp │ │ ├── PolycubeInfo.h │ │ ├── QuadComplex.cpp │ │ ├── QuadComplex.h │ │ ├── QuadrilateralMesh.cpp │ │ ├── QuadrilateralMesh.h │ │ ├── Ray.cpp │ │ ├── Ray.h │ │ ├── TetrahedralMesh.cpp │ │ ├── TetrahedralMesh.h │ │ ├── TriangularMesh.cpp │ │ └── TriangularMesh.h │ ├── optim/ │ │ ├── CubicVolumetricDeformer.cpp │ │ ├── CubicVolumetricDeformer.h │ │ ├── DirectModel.cpp │ │ ├── DirectModel.h │ │ ├── DistortionEnergy.cpp │ │ ├── DistortionEnergy.h │ │ ├── HexComplexDeformer.cpp │ │ ├── HexComplexDeformer.h │ │ ├── LargestCuboidSolver.cpp │ │ ├── LargestCuboidSolver.h │ │ ├── PolycubeOptimizer.cpp │ │ ├── PolycubeOptimizer.h │ │ ├── torch_utils.cpp │ │ └── torch_utils.h │ ├── serialization/ │ │ ├── Serializer.cpp │ │ └── Serializer.h │ ├── utility/ │ │ ├── ImGuiEx.cpp │ │ ├── ImGuiEx.h │ │ ├── PathManager.cpp │ │ ├── PathManager.h │ │ ├── StopWatch.cpp │ │ ├── StopWatch.h │ │ └── imfilebrowser.h │ └── views/ │ ├── CuboidNode.cpp │ ├── CuboidNode.h │ ├── FilteredHexMesh.cpp │ ├── FilteredHexMesh.h │ ├── GlobalView.cpp │ ├── GlobalView.h │ ├── HexCollectionView.cpp │ ├── HexCollectionView.h │ ├── LandmarksEditingView.cpp │ ├── LandmarksEditingView.h │ ├── PolycubeView.cpp │ ├── PolycubeView.h │ ├── QuadSurfaceView.cpp │ ├── QuadSurfaceView.h │ ├── TriSurfaceView.cpp │ └── TriSurfaceView.h └── vkoo/ ├── CMakeLists.txt ├── assets/ │ ├── bunny.obj │ ├── bunny_rescaled.obj │ └── teapot.obj ├── include/ │ └── vkoo/ │ ├── ObjParser.h │ ├── common.h │ ├── core/ │ │ ├── Application.h │ │ ├── Buffer.h │ │ ├── BufferPool.h │ │ ├── CommandBuffer.h │ │ ├── CommandPool.h │ │ ├── DeferredLightingSubpass.h │ │ ├── DescriptorPool.h │ │ ├── DescriptorSet.h │ │ ├── DescriptorSetLayout.h │ │ ├── Device.h │ │ ├── FencePool.h │ │ ├── ForwardSubpass.h │ │ ├── Framebuffer.h │ │ ├── GLSLCompiler.h │ │ ├── GeometrySubpass.h │ │ ├── GraphicsPipeline.h │ │ ├── Gui.h │ │ ├── Image.h │ │ ├── ImageView.h │ │ ├── InputEvent.h │ │ ├── Instance.h │ │ ├── PhysicalDevice.h │ │ ├── PipelineLayout.h │ │ ├── PipelineState.h │ │ ├── PostprocessingSubpass.h │ │ ├── PrimitiveFactory.h │ │ ├── Queue.h │ │ ├── RenderContext.h │ │ ├── RenderFrame.h │ │ ├── RenderPass.h │ │ ├── RenderPipeline.h │ │ ├── RenderTarget.h │ │ ├── ResourceBindingState.h │ │ ├── ResourceCache.h │ │ ├── SPIRVReflection.h │ │ ├── SSAOBlurSubpass.h │ │ ├── SSAOSubpass.h │ │ ├── Sampler.h │ │ ├── SemaphorePool.h │ │ ├── ShaderModule.h │ │ ├── Subpass.h │ │ ├── Swapchain.h │ │ ├── VertexObject.h │ │ └── resource_caching.h │ ├── logging.h │ ├── st/ │ │ ├── Image.h │ │ ├── Material.h │ │ ├── Node.h │ │ ├── Scene.h │ │ ├── ShaderProgram.h │ │ ├── Texture.h │ │ ├── Transform.h │ │ ├── components/ │ │ │ ├── Camera.h │ │ │ ├── ComponentBase.h │ │ │ ├── Light.h │ │ │ ├── Mesh.h │ │ │ ├── Script.h │ │ │ └── Tracing.h │ │ ├── hittables/ │ │ │ ├── AABB.h │ │ │ ├── Cylinder.h │ │ │ ├── HittableBase.h │ │ │ ├── Plane.h │ │ │ ├── Ray.h │ │ │ ├── Sphere.h │ │ │ └── Triangle.h │ │ └── scripts/ │ │ └── ArcBallCameraScript.h │ └── utils.h ├── shaders/ │ ├── deferred_geometry.frag │ ├── deferred_geometry.vert │ ├── deferred_lighting.frag │ ├── deferred_ssao.frag │ ├── deferred_ssao_blur.frag │ ├── deferred_transparent.frag │ ├── forward.frag │ ├── forward.vert │ ├── imgui.frag │ ├── imgui.vert │ ├── offscreen.vert │ ├── postprocessing.frag │ └── recompile.sh └── src/ ├── ObjParser.cpp ├── common.cpp ├── core/ │ ├── Application.cpp │ ├── Buffer.cpp │ ├── BufferPool.cpp │ ├── CommandBuffer.cpp │ ├── CommandPool.cpp │ ├── DeferredLightingSubpass.cpp │ ├── DescriptorPool.cpp │ ├── DescriptorSet.cpp │ ├── DescriptorSetLayout.cpp │ ├── Device.cpp │ ├── FencePool.cpp │ ├── ForwardSubpass.cpp │ ├── Framebuffer.cpp │ ├── GLSLCompiler.cpp │ ├── GeometrySubpass.cpp │ ├── GraphicsPipeline.cpp │ ├── Gui.cpp │ ├── Image.cpp │ ├── ImageView.cpp │ ├── InputEvent.cpp │ ├── Instance.cpp │ ├── PhysicalDevice.cpp │ ├── PipelineLayout.cpp │ ├── PipelineState.cpp │ ├── PostprocessingSubpass.cpp │ ├── PrimitiveFactory.cpp │ ├── Queue.cpp │ ├── RenderContext.cpp │ ├── RenderFrame.cpp │ ├── RenderPass.cpp │ ├── RenderPipeline.cpp │ ├── RenderTarget.cpp │ ├── ResourceBindingState.cpp │ ├── ResourceCache.cpp │ ├── SPIRVReflection.cpp │ ├── SSAOBlurSubpass.cpp │ ├── SSAOSubpass.cpp │ ├── Sampler.cpp │ ├── SemaphorePool.cpp │ ├── ShaderModule.cpp │ ├── Subpass.cpp │ ├── Swapchain.cpp │ └── VertexObject.cpp ├── st/ │ ├── Image.cpp │ ├── Material.cpp │ ├── Node.cpp │ ├── Scene.cpp │ ├── ShaderProgram.cpp │ ├── Texture.cpp │ ├── Transform.cpp │ ├── components/ │ │ ├── Camera.cpp │ │ ├── ComponentBase.cpp │ │ ├── Light.cpp │ │ ├── Mesh.cpp │ │ ├── Script.cpp │ │ └── Tracing.cpp │ ├── hittables/ │ │ ├── AABB.cpp │ │ ├── Cylinder.cpp │ │ ├── Plane.cpp │ │ ├── Sphere.cpp │ │ └── Triangle.cpp │ └── scripts/ │ └── ArcBallCameraScript.cpp └── utils.cpp