|
| 1 | +# Project Structure |
| 2 | + |
| 3 | +High-level overview of the project structure. |
| 4 | + |
| 5 | +**Core Functionality:** |
| 6 | + |
| 7 | +* **src.main.java.math:** This package contains fundamental math classes like `Vector3f`, `Matrix3f`, and `Matrix4f` used for 3D geometry calculations. |
| 8 | +* **src.main.java.mesh:** This package is the heart of the project and deals with meshes. It includes: |
| 9 | + * **animator:** Classes for animating meshes (e.g., `AbstractAnimator`, `MoveAlongNormalAnimator`). |
| 10 | + * **conway:** Classes specific to Conway polyhedra generation (e.g., `Conway`, various modifier classes). |
| 11 | + * **creator:** Classes for creating different types of meshes (e.g., Platonic solids, architectural elements). |
| 12 | + * **archimedian:** Creators for Archimedean solids. |
| 13 | + * **assets:** Creators for various assets used in meshes. |
| 14 | + * **beam:** Creators for different beam profiles. |
| 15 | + * **catalan:** Creators for Catalan solids. |
| 16 | + * **creative:** Creators for custom and creative mesh types. |
| 17 | + * **platonic:** Creators for Platonic solids. |
| 18 | + * **primitives:** Creators for basic geometric primitives. |
| 19 | + * **special:** Creators for specialized meshes (e.g., Accordion Torus, Mobius Strip). |
| 20 | + * **unsorted:** Creators for miscellaneous mesh types. |
| 21 | + * **Edge3D, Face3D, Mesh3D:** Classes representing the building blocks of a mesh (edges, faces, and the entire mesh). |
| 22 | + * **io:** Classes for reading and writing meshes from/to files (e.g., `SimpleObjectReader`, `SimpleObjectWriter`). |
| 23 | + * **modifier:** Classes for modifying existing meshes (e.g., `BendModifier`, `BevelFacesModifier`, subdivision modifiers). |
| 24 | + * **selection:** Classes for selecting faces or vertices within a mesh. |
| 25 | + * **util:** Utility classes for mesh-related operations (e.g., `Bounds3`, `Mesh3DUtil`). |
| 26 | + |
| 27 | +**Workspace Integration (Optional):** |
| 28 | + |
| 29 | +* **src.main.java.workspace:** This package seems to handle integrating meshes within a workspace environment (potentially a UI for visualization and editing). It includes classes for: |
| 30 | + * **command:** Commands for manipulating the workspace view (e.g., panning, showing/hiding elements). |
| 31 | + * **Editor:** Class for editing meshes within the workspace. |
| 32 | + * **examples:** Example implementations of using meshes in a workspace. |
| 33 | + * **FirstPersonView:** Class for a first-person view within the workspace (potentially for visualization). |
| 34 | + * **GraphicsPImpl:** Implementation details related to graphics rendering. |
| 35 | + * **laf:** Classes for the Look-and-Feel of the workspace UI. |
| 36 | + * **ModelListener:** Listener for changes in the mesh model. |
| 37 | + * **render:** Rendering-related classes for meshes and selections within the workspace. |
| 38 | + * **SceneObject:** Class representing an object within the workspace scene. |
| 39 | + * **ui:** Classes for various UI elements used in the workspace. |
| 40 | + * **border:** Classes for borders around UI elements. |
| 41 | + * **layout:** Classes for UI layout management. |
| 42 | + |
| 43 | +**Testing:** |
| 44 | + |
| 45 | +* **src.test.java:** This package contains unit tests for various functionalities in the project. It includes tests for: |
| 46 | + * **bugs:** Tests for identified bugs in specific mesh creators or modifiers. |
| 47 | + * **math:** Tests for math utility functions. |
| 48 | + * **mesh:** Tests for mesh creation, modification, and utility functions. |
| 49 | + * **util:** Tests for utility classes used throughout the project. |
| 50 | + |
| 51 | +**Resources:** |
| 52 | + |
| 53 | +* **src.main.resources:** This directory likely contains resource files used by the project (e.g., configuration files, icons). |
0 commit comments