Print at Dec 19, 2025, 10:19:04 AM

Posted by Puybaret at May 21, 2010, 6:42:58 PM
Re: SH3D design. Do it less coupled
Alied, I don't really understand your point:
- Additional Java 3D loaders can be specified by the System property com.eteks.sweethome3d.j3d.additionalLoaderClasses used in ModelManager class. A Service lookup is probably better but I felt that setting a System property + changing classpath would be simpler!
- Anyone can develop and install plug-ins with additional features accessible from the user interface. The plug-in system isn't probably perfect because there's no user interface in the program to manage installed plug-ins and it doesn't give access to program's controllers and views. But as so few developers showed some public interest to it until now, I prefer to add features required by users.
- Furniture catalog, textures catalog and user interface languages list can be customized and extended with SH3F, SH3T and SH3L files.
- If you need a light version, program can be launched without iText, FreeHep, SunFlow and JMF libraries (like in the Online version shown to unregistered users); simply disable the actions that give access to the features requiring these libraries, in a derived version of the program.
- I try to keep program not too complicated with a clean MVC architecture, ensure backwards compatibility, and use Java packages as modules with clear dependencies checked by PackageDependenciesTest. Within a package, some classes are even completely or mostly independent from other classes like the DAE/Collada Loader I developed recently.

Until now, all this seems to work better and better, since the last derived version I programmed didn't require me to change Sweet Home 3D API, even if that program required new types in its model and a different user interface.
But I guess you know all that, since you're familiar with the code. So what additional changes should I make without breaking compatibility?


About your NetBeans RCP version, I succeeded to check it out, and load it in NetBeans 6.8, but it refuses to run from NetBeans. It says:

/Applications/Developer/NetBeans/NetBeans 6.8.app/Contents/Resources/NetBeans/harness/suite.xml:121: Cannot open /[path-to]/sh3d-nb/SH3D_NB/sweethome3d-plugin/nbproject/project.xml
BUILD FAILED (total time: 0 seconds)

Any idea? I'm not used to NetBeans and ran it only for its nice profiler until now.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator