Skip to main content

Writing a NURBS class

8 replies [Last post]
jonasforssell
Offline
Joined: 2005-05-09

Hello,

No response to my previous question about NURB function leads me to believe there is no such capability in Java3D today.

Now, I already have some code available. How would you suggest me to add this capability in the best way? I guess it would be placed under the .util extension?

Also, it seems there are direct support for nurbs under OpenGL. Are there any example avalible which shows how I could perhaps link to this function in OpenGL, or do I have to rely on the functions already available in the core package?

Any suggestions welcome
Thanks
/Jonas, Sweden

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Kevin Rushforth

NURBS is a perfect example of something that should be done as a utility
class, layered on top of Java 3D and not put into the core. For one
thing, there is no industry-wide agreement as to exactly how NURBS
should be defined, especially when trimming curves are involved.

Btw, OpenGL doesn't have native NURBS support, either. Its rather basic
surface capability is in the GLU library which is layered on top of
OpenGL.

-- Kevin

On Sun, 2004-07-04 at 09:25, java3d-interest@javadesktop.org wrote:
> You are correct, Java 3D does not currently have NURBS support. If you want to create a project on java.net to explore this space that would be cool.
>
> As for OpenGL access, Java 3D does not currently support that from a client, so in order to experiment with the OpenGL calls you want to use you will have to add code to the RenderBin in j3d-core.
>
> Providing access to OpenGL from within the scene graph is something we want to add to Java 3D 2.0
> ---
> [Message sent by forum member 'paulby' (Paul Byrne)]
>
> http://www.javadesktop.org/forums/thread.jspa?messageID=14587???
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: interest-unsubscribe@java3d.dev.java.net
> For additional commands, e-mail: interest-help@java3d.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: interest-unsubscribe@java3d.dev.java.net
For additional commands, e-mail: interest-help@java3d.dev.java.net

paulby
Offline
Joined: 2003-06-13

You are correct, Java 3D does not currently have NURBS support. If you want to create a project on java.net to explore this space that would be cool.

As for OpenGL access, Java 3D does not currently support that from a client, so in order to experiment with the OpenGL calls you want to use you will have to add code to the RenderBin in j3d-core.

Providing access to OpenGL from within the scene graph is something we want to add to Java 3D 2.0

zander
Offline
Joined: 2003-06-13

> As for OpenGL access, Java 3D does not currently
> support that from a client, so in order to experiment
> with the OpenGL calls you want to use you will have
> to add code to the RenderBin in j3d-core.

Note that j3d-core is not open source, your changes can't be distributed commercially by anyone, for example.

paulby
Offline
Joined: 2003-06-13

Actually the second part of your statement is not true. Java 3D is provided under 2 licenses, community members can produce commercial distributions. The JRL license which you agreed to when you downloaded the source allows you to modify the code in any way and share it with anyone else who has signed the JRL.

For commercial distribution there is the JDL license, this is a free (no cost) license that allows you to distribute a modified Java 3D. For distribution you must pass (self certify) the TCK tests (which we will make freely available as soon as we get a chance) and you must not modify the public API in javax.*.
This is to ensure that Java 3D continues as a standard API without divergent versions. Any API changes required by new work will be created, publicly discussed and ratified by the JCP process.

For extensions such as this you can create public API in a utility package (perhaps a.b.c.j3d.utils.nurbs.NurbGeometry which extends javax.media.j3d.Geometry. You can still add code to the RenderBin which processes this node type and if you are careful and use introspection in a couple of places you can compile and run the modified core without requiring the new utility and pass TCK etc.

#import legal.disclaimer

I'm not a lawyer so please refer to the license text for full details.

zander
Offline
Joined: 2003-06-13

> Actually the second part of your statement is not
> true.
JRL says that explicity in captials no less. (part II).
It also says code created under that licence can't be shared with not users of that licence.
For reference: https://java3d.dev.java.net/jrl.html

> Java 3D is provided under 2 licenses, community
> members can produce commercial distributions. The JRL
> license which you agreed to when you downloaded the
> source allows you to modify the code in any way and
> share it with anyone else who has signed the JRL.

Downloading the code allows you to modify the code; share it with specific people and compile etc.
It explicitly does not allow code to flow back to Sun since Sun is (obviously) not a JRL licensee. Then how do you propose anyones changes to go from a JRL licensee to a JDL licensee ? (see also "IV. B" which says how Sun can't use it even if it is a JRL licensee)

It appears to me that the Research licence is formulated thus that the author loses the ability to re-licence his own code and the licence prohibits him from commercial use.

> For commercial distribution there is the JDL license

But only non-licensee code (written by a party that made the code available to Sun without being encumbered by any licence) can be flowed into the project and distributed under the JDL licence, not code coming from a JRL licensee.

> For extensions such as this you can create public API
> in a utility package

Please explain to me where I went wrong and how the starter of this thread is suppost to move his class into the public repository of the project? In such a way that both the JRL and the JDL people can use the class?

Thanx.

paulby
Offline
Joined: 2003-06-13

In order to contribute code to the project users have to sign the Joint Copyright Agreement (JCA). I believe this in turn allows Sun to redistribute the code under both JRL and JDL.

I am not a lawyer so for further clarification we will have to wait until our legal folks return after the July 4th break.

zander
Offline
Joined: 2003-06-13

> In order to contribute code to the project users have
> to sign the Joint Copyright Agreement (JCA). I
> believe this in turn allows Sun to redistribute the
> code under both JRL and JDL.

As I mentioned in a previous post, the JRL does not allow this (from my reading anyway).

> I am not a lawyer so for further clarification we
> will have to wait until our legal folks return after
> the July 4th break.

I'd love to hear an answer! But even more I'd like to see the JRL to be written so this is clear and everyone (on first read) will agree on the purpose. I have the strong feeling that the JRL might not have been such a good choice for this project...

Kevin Rushforth

Sun, as copyright holder, has the right to license the source code for
Java 3D under whatever license or licenses we choose. In fact we do just
that today: we grant a license to the source code for the j3d-core
project to a licensee under the JRL or the JDL.

What the Joint Copyright Assignment (JCA) does is grants to Sun joint
ownership of the code. This allows us to then license the new code under
the same terms as for the original code that we developed--currently JRL
and JDL.

Btw, Netbeans along with several java.net projects also use a Joint
Copyright Assignment. See:

http://www.netbeans.org/about/legal/jca.html

and

https://jdic.dev.java.net/resource/JDIC_JCA.pdf

We are still finalizing the Java 3D JCA, but in essence it will look
like the JCA used for JDIC with an additional section about contributors
not suing for patent infringement on code that they have contributed.

I hope this clarifies the issue. Let us know if you still have any
concerns.

-- Kevin

On Wed, 2004-07-07 at 10:09, java3d-interest@javadesktop.org wrote:
> > In order to contribute code to the project users have
> > to sign the Joint Copyright Agreement (JCA). I
> > believe this in turn allows Sun to redistribute the
> > code under both JRL and JDL.
>
> As I mentioned in a previous post, the JRL does not allow this (from my reading anyway).
>
> > I am not a lawyer so for further clarification we
> > will have to wait until our legal folks return after
> > the July 4th break.
>
> I'd love to hear an answer! But even more I'd like to see the JRL to be written so this is clear and everyone (on first read) will agree on the purpose. I have the strong feeling that the JRL might not have been such a good choice for this project...
> ---
> [Message sent by forum member 'zander' (Thomas Zander)]
>
> http://www.javadesktop.org/forums/thread.jspa?messageID=15437???
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: interest-unsubscribe@java3d.dev.java.net
> For additional commands, e-mail: interest-help@java3d.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: interest-unsubscribe@java3d.dev.java.net
For additional commands, e-mail: interest-help@java3d.dev.java.net