Re: Java3D 1.6.0 Released

Posted by philjord on
URL: https://forum.jogamp.org/Java3D-1-6-0-Released-tp4037525p4037946.html

Yeah, that's a work around to stop the Font3D from requiring the utils jar, which causes a compilation loop.

To fix it you'll need to change the Java3D Utils and alter this class

package org.jogamp.java3d.utils.geometry;

import java.util.ArrayList;

import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.GeometryService;
import org.jogamp.vecmath.Point3f;

/**
 * Default implementation of the {@link GeometryService} service interface.
 */
public class GeometryServiceImpl implements GeometryService {
To import and extends javax.media.j3d.GeometryService from your newly altered core project.
So although the Service loader stops a compilation cycle it still requires a developer to include the utils jar to use Font3D.




That's the only use of the Service interface in Java3D.

You'll also need to consider the Pipeline class that uses reflection to instantiate the pipeline

@Override
public Pipeline run() {
        try {
                switch (pipeType) {
                case JOGL:
                        return (Pipeline)Class.forName("org.jogamp.java3d.JoglPipeline").newInstance();
                case JOGL2ES2:
                        return (Pipeline)Class.forName("org.jogamp.java3d.Jogl2es2Pipeline").newInstance();
                case NOOP:
                        return (Pipeline)Class.forName("org.jogamp.java3d.NoopPipeline").newInstance();
                }
        } catch (Exception e) {
                throw new RuntimeException(e);
        }
        return null;
}
}
I think MasterControl and it's various property settings should be ok

The java3d.utils.scengraph.io will be totally broken I expect.

The ConfigContainer and possibly everything about ConfiguredUniverse could well break, not sure.

It would be a good start if you do get a script going and are willing to share it here.