Skip to content
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

Refactoring Plan: Mesh3D Class

  • 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.

Modifiers

  • 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

Subdivision Modifiers

  • CatmullClarkModifier
  • DooSabinModifier
  • LinearSubdivisionModifier
  • PlanarMidEdgeCenterModifier
  • PlanarMidEdgeModifier
  • PlanarVertexCenterModifier
  • PlanarVertexMidEdgeCenterModifier
  • PokeFacesModifier
  • QuadsToTrianglesModifier
Clone this wiki locally