

Is a leading BIM-based construction project control application. Sections: Applications, Utilities, Games andĪpplications (Content, Simulations, CAD, Scientific. To have your project featured here, please email the The following are a few examples of projects and products using JOGL also provides its own native windowing toolkit, NEWT.Īdvanced OpenGL techniques now possible with the Java platform. JOGL integrates with the AWT, Swing and SWT widget sets, as well as with custom windowing toolkits using the NativeWindow API.
#JAVA 3D MATH LIBRARY FULL#
JOGL provides full access to the APIs in the OpenGL, ES and EGL specificationĪs well as nearly all vendor extensions.

(For 2 or 3 dimensions simply repeat using Y or Z values.) This function will give us a point on the spline between p1 and p2, where t is the proportion of the distance between the two.The JOGL project hosts the development version of the Java™ Binding for the OpenGL® API,Īnd is designed to provide hardware-supported 3D graphics to applications written in Java. This function demonstrates Catmull-Rom spline interpolation in one dimension. So if you want a spline that passes through 10 points, you need 12. Just remember that unlike linear interpolation where you only need two points to start with, Catmull-Rom spline interpolation uses an extra point at either end. This is based on an equation found at, but luckily you don't need to understand how it works.

The following function turned out to be sufficient for my needs. That is why I was looking for a library of some sort that would provide an abstraction to hide the difficult maths. I have a good understanding of linear interpolation, but I found it difficult to grasp the complexity of the maths of splines. In order to get a longish piece to connect to points that are close together, I have to add a loop. It's sort of like working with fairly stiff flexible pipe (like I have under my sink). This is a consequence of the construction of the spline. It's likely that a Catmull-Rom spline would come down from p0, pass through p1 as it does now, go up the right side of p2 and pass through it from right to left, coming down the left hand side and passing left to right through p3. Looking at the image above, imagine that p1 and p3 were right next to each other, below p2 (basically compressing the right hand side of the picture). You should be aware, though, that the Catmull-Rom spline can lead to little loops at the control points if they are too close together when they need to take a tight turn. My recommendation is that you just implement the spline that you really need in code. The reality is that the math just isn't all that hard to deal with (some vector-matrix multiplications). You're looking for something like a Catmull Rom spline.
