summaryrefslogtreecommitdiffstats
path: root/src/demos/xtrans/InterpolatedQuad3f.java
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2005-10-12 01:30:31 +0000
committerKenneth Russel <[email protected]>2005-10-12 01:30:31 +0000
commit82388fe004e7bc86100ad45377e69f771b45c977 (patch)
treef7d866cea1caca1f66a67ffc47f5b44b58ed3fdd /src/demos/xtrans/InterpolatedQuad3f.java
parent55370bacd5640ea9be8f6c137ec03a76c6572651 (diff)
Added XTrans (Accelerated Transitions) demo, which uses the
Java2D/JOGL bridge in a completely different way than the GLJPanel. The OffscreenDesktopPane and associated classes are an attempt at a generalized mechanism for supporting off-screen rendering of Swing components within a JDesktopPane and later composition (by subclasses) of those components' contents on-screen. The XTDesktopPane is intended to be a drop-in replacement for the JDesktopPane which supports OpenGL-accelerated animated transitions for components added to and removed from it. The XTBasicTransitionManager and XTBasicTransition classes define the default implementation of animated transition effects, supporting a combination of fade, rotation and scroll effects. More, and arbitrary, transitions are certainly possible. More experimentation by the community is needed. This demo is intended as a first step toward a more generalized framework in which arbitrary Swing rendering can be performed via the Java2D/JOGL bridge. Bugs remain, such as needing to preserve portions of the OffscreenDesktopManager's back buffer after components have been made not visible (during the process of closing them) in order to properly animate their close effects. The XTrans demo works properly in most cases but the JRefract demo (which now accepts an -xt command line argument to install an XTDesktopPane instead of a JDesktopPane) does not. More work also remains to be done, in particular on the layout of components on the back buffer. A 2D bin-packing algorithm is needed. When the Java2D/JOGL bridge supports Java2D's use of the Frame Buffer Object extension (and, implicitly, render-to-texture on all platforms) the glCopyTexSubImage2D operation to copy the off-screen back buffer to a VolatileImage can disappear; this is the principal expensive operation when the contents change of components which have been added to the OffscreenDesktopPane. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@140 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
Diffstat (limited to 'src/demos/xtrans/InterpolatedQuad3f.java')
-rwxr-xr-xsrc/demos/xtrans/InterpolatedQuad3f.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/demos/xtrans/InterpolatedQuad3f.java b/src/demos/xtrans/InterpolatedQuad3f.java
new file mode 100755
index 0000000..895a458
--- /dev/null
+++ b/src/demos/xtrans/InterpolatedQuad3f.java
@@ -0,0 +1,45 @@
+package demos.xtrans;
+
+import gleem.linalg.*;
+
+/** A quadrilateral of three-dimensional floating-point values which
+ interpolates between specified start and end values. */
+
+public class InterpolatedQuad3f {
+ private Quad3f start;
+ private Quad3f end;
+
+ /** Constructs a new InterpolatedQuad3f. By default both the start
+ and end quadrilaterals have all of their points set to the
+ origin. */
+ public InterpolatedQuad3f() {
+ start = new Quad3f();
+ end = new Quad3f();
+ }
+
+ /** Returns the starting value for the interpolation. */
+ public Quad3f getStart() {
+ return start;
+ }
+
+ /** Sets the starting value for the interpolation. */
+ public void setStart(Quad3f quad) {
+ start.set(quad);
+ }
+
+ /** Returns the ending value for the interpolation. */
+ public Quad3f getEnd() {
+ return end;
+ }
+
+ /** Sets the ending value for the interpolation. */
+ public void setEnd(Quad3f quad) {
+ end.set(quad);
+ }
+
+ /** Gets the current interpolated value at the specified fraction of
+ interpolation (0.0 - 1.0). */
+ public Quad3f getCurrent(float fraction) {
+ return start.times(1.0f - fraction).plus(end.times(fraction));
+ }
+}