-
Notifications
You must be signed in to change notification settings - Fork 0
Notes
Simon Dietz edited this page Nov 18, 2024
·
22 revisions
- The ScaleModifier has the potential for parallelism.
- The ScaleModifier does not need to scale if scale = 1
- Provide seed for the NoiseModifier -> testing
-
Goal To improve the extensibility, maintainability, and testability of the Mesh3D class by applying the Open-Closed Principle.
-
Approach Identify Modification Operations: Identify all operations that modify the mesh, such as rotation, scaling, translation, smoothing, subdivision, etc.
-
Refactor Existing Operations: Convert existing modification methods (e.g., rotateX, scale) into MeshModifier classes. Remove these methods from the Mesh3D class.
- BendModifier
- BevelEdgesModifier
- BevelFacesModifier
- BevelVerticesModifier
- CenterAtModifier
- CrocodileModifier
- ExtrudeModifier
- FitToAABBModifier
- FlipFacesModifier
- HolesModifier
- InsetModifier
- NoiseModifier
- PushPullModifier
- RemoveDoubleVerticesModifier (Needs rework)
- RotateXModifier
- RotateYModifier
- RotateZModifier
- ScaleModifier
- SmoothModifier
- SolidifyModifier
- SpherifyModifier
- TranslateModifier
- WireframeModifier
- CatmullClarkModifier
- DooSabinModifier
- LinearSubdivisionModifier
- PlanarMidEdgeCenterModifier
- PlanarMidEdgeModifier
- PlanarVertexCenterModifier
- PlanarVertexMidEdgeCenterModifier
- PokeFacesModifier
- QuadsToTrianglesModifier