home *** CD-ROM | disk | FTP | other *** search
- Description:
- ============
-
- This distribution contains a package of Java classes to
- represent and manipulate NURBS. Full source and javadoc
- documentation is available:
-
- http://www.ocnus.com/NURBS/
-
-
- Along with this package are VRML prototypes for three nodes:
-
- NurbsCurve
- NurbsSurface
- NurbsRevolve
-
- which are implemented in Java using the classes in this
- package. Also included are numerous examples. The files
- in this distribution are listed at the end of this README.
-
- All code has been developed and tested using
- Liquid Reality 1.0b11 running under Irix on an SGI.
-
-
-
- Please read the following notice:
- =================================
-
- Copyright (c) 1997 ORC Incorporated. All Rights Reserved.
-
- Permission to use, copy, modify, and distribute this software
- and its documentation for NON-COMMERCIAL purposes and without
- fee is hereby granted provided that this copyright notice
- appears in all copies. Please contact <info@ocnus.com> for
- further information regarding copyright and licensing.
- This code is provided without warranty, either expressed or implied.
-
- Portions of this code appear in the book
- "Late Night VRML 2.0 with Java", Ziff-Davis Press, 1997
-
- author Timothy F. Rohaly <rohaly@ocnus.com>
- version 1.0, 01/15/97
-
-
-
- Known misbehaviors:
- ===================
-
- 1) Tessellation fails for curves which do not interpolate
- their endpoints, i.e. when the knot multiplicity at
- the endpoints is not equal to the order of the curve.
- This is due to the algorithm used to add control points.
- Workaround is to make sure you define interpolating knot
- sequences. This will be fixed the next version.
-
- 2) The segments parameter passed in from the prototype
- behaves in a non-intuitive manner. Currently, segments
- defines the number of new control points to generate.
- These new points are merged with the original control
- points, and only the non-duplicate ones are actually
- *added*. So for example, if you define a nurbs circle
- with 9 control points, then set segments to 11, you will
- find that you only add 5 new ones (out of the 11, three at
- the beginning and three at the end are duplicates, so only
- 5 new ones are added). This is a much larger effect for small
- numbers of segments than for a large number.
- This can and will be changed so that segments corresponds to
- the actual number of segments in the tesselated curve.
-
- 3) For surfaces, especially surfaces generated by extrude() or
- revolve(), duplicate control points (used to decrease the
- degree of continuity) can produce polygons with degenerate
- vertices. Some renderers try to calculate a normal anyway
- and so may exhibit shading anomolies. This will be fixed in
- the next version.
-
- 4) In the revolve() method of nurbs, the thetamin and thetamax
- parameters currently are ignored. All revolution is done
- between 0 and 2*PI. This affects the NurbsRevolve prototype
- so that the minAngle and maxAngle fields have no effect.
-
-
-
- In the near future:
- ===================
-
- Let me know if you have any requests for new features.
- Here is some stuff under construction that was not completed
- in time for this distribution but will be in the next version:
-
- 1) evaluate(). Given a knot parameter return the nth derivative
- of the curve, where n = 0...degree-1.
-
- 2) split(). Split the curve or surface into two parts at parameter t.
-
- 3) skin(). Generate a ruled surface between two nurbs.
-
- 4) NurbsExtrusion. Prototype and examples using the extrude()
- method.
-
- 5) Some of the fields in the three prototypes will be changed
- to eventIns or eventOuts so that ROUTEs can be attached.
-
- 6) The profile curve in the NurbsRevolve prototype will be
- changed so that NurbsRevolve can take an instance of NurbsCurve.
-
- 7) Additional demo code and example wrls which use the prototypes.
-
-
-
- Files in this distribution:
- ===========================
-
- NURBS/AllNames.html
- NURBS/BezierSurface.wrl
- NURBS/Circle.wrl
- NURBS/Cone.wrl
- NURBS/Dome.wrl
- NURBS/Helix.wrl
- NURBS/NurbsCurve.java
- NURBS/NurbsCurve.wrl
- NURBS/NurbsRevolve.java
- NURBS/NurbsRevolve.wrl
- NURBS/NurbsSurface.java
- NURBS/NurbsSurface.wrl
- NURBS/Package-nurbs.html
- NURBS/README
- NURBS/Refine.wrl
- NURBS/Sphere.wrl
- NURBS/Square.wrl
- NURBS/Torus.wrl
- NURBS/Triangle.wrl
- NURBS/WineGlass.wrl
- NURBS/images/blue-ball-small.gif
- NURBS/images/blue-ball.gif
- NURBS/images/class-index.gif
- NURBS/images/constructor-index.gif
- NURBS/images/constructors.gif
- NURBS/images/cyan-ball-small.gif
- NURBS/images/cyan-ball.gif
- NURBS/images/error-index.gif
- NURBS/images/exception-index.gif
- NURBS/images/green-ball-small.gif
- NURBS/images/green-ball.gif
- NURBS/images/interface-index.gif
- NURBS/images/magenta-ball-small.gif
- NURBS/images/magenta-ball.gif
- NURBS/images/method-index.gif
- NURBS/images/methods.gif
- NURBS/images/package-index.gif
- NURBS/images/red-ball-small.gif
- NURBS/images/red-ball.gif
- NURBS/images/variable-index.gif
- NURBS/images/variables.gif
- NURBS/images/yellow-ball-small.gif
- NURBS/images/yellow-ball.gif
- NURBS/nurbs/ControlNet.java
- NURBS/nurbs/Knot.java
- NURBS/nurbs/Nurbs.java
- NURBS/nurbs/Point4.java
- NURBS/nurbs.ControlNet.html
- NURBS/nurbs.Knot.html
- NURBS/nurbs.Nurbs.html
- NURBS/nurbs.Point4.html
- NURBS/packages.html
- NURBS/quilt.gif
- NURBS/tree.html
-