There's (at least) one thing I want to know : what is the toolkit exactly intented to be ?
Here's some of the reasons for its existance:
1. to coordinate and provide resources for Xith3D tool development
2. to create a central repository for Xith3D tools so they are easily accessable
3. to allow developers to use org.odejava.*
packages with the confidance that they will be kept up to date with Xith3D API changes, that they are community supported and will always be available. Such packages are also licensed-alike with Xith3D, so there won't be any nasty surprises.
This doesn't mean a package will always be maintained - but when Xith3D changes are made, corresponding changes will be made in the Toolkit (not least because both are on my Eclipse build path so I instantly see when a change to Xith3D breaks something in the TK.
As it is actually, it contains Geometry classes, Terrain generation utils, and several other things I forget here (collision detection maybe).
The main reasons why these arn't in the core is simply that they don't need to be. By being in the toolkit, it is much easier for people to contriubte to them and also easily cut them out from their project prior to release if they don't use them.
But here I am : I have made several util classes for my projet using Xith, among them :
- Transform, which is a fusion of TransformGroup and Transform3D. You can call the transform(int type, Tuple3f transform) function to adjust the transformation.
- Another set of primitives, that are using the primitive classes of the Xith-tk but are based on my small geometry library (gymli)
- A class named BlackBoard, with functions drawSegment(), drawDot(), drawCircle(), all with different width, colors, and all that stuff, with erase() function
And I plan not to stop here. Currently it's on an SVN server, under a project code-named Globe (GL = graphic library).
Now is it possible to integrate it in the Xith tk ?
Definitally, please put them in
Yes, because I have the Developer access of the repository.
But it depends on Gymli (the geometry and math library) and so I cannot make another dependency of the xith-tk.
On the other hand you may agree, according to what can be read in XithToolkitGuidelines, that these tools are to be placed in the xith-tk.
So when I created these classes I didn't know what to do, and that's why I decided to put it in another library, on top of Xith3D. I don't override any base class and the functionning of my engine is the same as any Xith app.
Dependancies are definitally allowed in the Xith-TK project. Dependancies additional to those of Xith3D (such as commons-logging, vecmath, etc) MUST be specified in the package level javadocs including
dependancies on other Xith-TK tools (the idea being that people can strip out the parts of the TK they don't need when releasing).
For example, Kev's OBJ loader javadoc states there are no dependancies http://www.xith.org/javadoc/org/xith3d/loaders/obj/package-summary.html
Looking at this now we probably should have two lists for your tool:
Toolkit Dependancies: org.xith3d.primitives
3rd Party Dependancies: <a href="link">Gymli</a>
There aren't specific guidelines on 3rd party dependancies for tools, though being open source and readily available is quite important and licensed alike (BSD) is very desirable.
The TK Governance page
states on dependancies: Package-level javadoc's MUST exist for each tool and contain a short description of the tool, the author(s) names and have any dependencies (other than that of Xith3D core itself) listed.
andThe addition of third-party libraries are permitted within reason and should be placed in the third-party directory (it is advised to check with the community first)
Now with jaakko777 we're about to start the SGS (Small Gui System) project for Xith. We've almost decided to put it in the Xith toolkit, however I think it would gain more visibility if it was a separate project.
Here are the questions I have, I would be pleased to have your opinion on it.
I agree with Kev on this, it just makes sense to have it there. I feel like it will gain more visibility if it's there because the Javadocs are with the rest on xith.org, and all developers get the .jar. If more visibility is what you want, you create your own web site for the project, or a well maintained wiki-entry on xith.org. If this project succeeds where other GUI efforts have failed and comes through with the goods, it will be a very valuable addition to Xith3D. Lets wait till that happens, but some of the things can improve visibility include a tutorial in the GSG, screenshots on xith.org, etc...
I think we will end up with a 10 Mo Xith toolkit that everyone needs and yet nobody needs everything that's into it.
We can make it more modular if this ever happens. Right now the decision was made not to break the packages up because it would create many more .jar files for people to include, etc. We figured that when someone is ready to release, they will take the time to cut out what they don't need - if size is important. Currently the only division is for the "xith-demos.jar" file, being that the demos shouldn't be included in most projects, and can contain image data, etc.
I look forward to seeing these works! Good luck.