How albrechtl/sweethome3d works
Sweet Home 3D is a desktop home-planning application: users build and edit a home plan, furnish it, view it in 3D, and save or export the result. Its model covers the home, furniture, levels, rooms, walls, and preferences; controllers coordinate editing, with Swing views providing the interface. The tree also shows persistence, recovery, rendering, applet, and plug-in capabilities. The README is only a brief fork notice, and most source is unsampled, so several subsystem links are shown as unverified rather than asserted calls.
Main entry points: HomeController.java Home controller · Home.java Home model · HomeFrameController.java Application frame · HomeRecorder.java Home recorder
Components 17
Application
- Application frame
src/com/eteks/sweethome3d/HomeFrameController.java - Applet interface
src/com/eteks/sweethome3d/applet/HomeAppletController.java
Editing UI
- Home controller
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Swing views
src/com/eteks/sweethome3d/swing/HomePane.java - View factory
src/com/eteks/sweethome3d/viewcontroller/ViewFactory.java - Plan editing
src/com/eteks/sweethome3d/viewcontroller/PlanController.java - Furniture catalog
src/com/eteks/sweethome3d/model/CatalogPieceOfFurniture.java
Home domain
- Home model
src/com/eteks/sweethome3d/model/Home.java - User preferences
src/com/eteks/sweethome3d/model/UserPreferences.java
3D rendering
- 3D scene
src/com/eteks/sweethome3d/j3d/Object3DBranchFactory.java - Photo rendering
src/com/eteks/sweethome3d/j3d/PhotoRenderer.java - Texture loading
src/com/eteks/sweethome3d/j3d/TextureManager.java
Persistence and extensions
- Home recorder
src/com/eteks/sweethome3d/model/HomeRecorder.java - Home file I/O
src/com/eteks/sweethome3d/io/HomeFileRecorder.java - Auto recovery
src/com/eteks/sweethome3d/io/AutoRecoveryManager.java - Plug-in manager
src/com/eteks/sweethome3d/plugin/PluginManager.java
Other components
- User
Connections 18
- User → Application frame: operates
- Application frame → Home controller: creates
src/com/eteks/sweethome3d/HomeFrameController.java - Application frame → Home model: manages
src/com/eteks/sweethome3d/HomeFrameController.java - Home controller → Home model: edits
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Home controller → Plan editing: delegates to
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Home controller → Furniture catalog: reads catalog
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Home controller → User preferences: updates
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Home controller → Swing views: presents via
- View factory → Swing views: creates
- Home model → 3D scene: builds from
- 3D scene → Texture loading: loads textures
src/com/eteks/sweethome3d/j3d/TextureManager.java - Home model → Photo rendering: renders
- Home controller → Home recorder: saves through
src/com/eteks/sweethome3d/viewcontroller/HomeController.java - Home recorder → Home file I/O: implemented by
- Auto recovery → Home model: tracks changes
src/com/eteks/sweethome3d/io/AutoRecoveryManager.java - Plug-in manager → Home model: initializes for
src/com/eteks/sweethome3d/plugin/PluginManager.java - Applet interface → Home controller: coordinates
src/com/eteks/sweethome3d/applet/HomeAppletController.java - Applet interface → Home recorder: uses
src/com/eteks/sweethome3d/applet/HomeAppletController.java