aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/games/jogl/impl/nurbs/internals/Arc.java
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2005-10-24 19:21:03 +0000
committerKenneth Russel <[email protected]>2005-10-24 19:21:03 +0000
commitd6f9dbc493df725d3d574403549de142c5e1222a (patch)
tree8eb152b0627f8d1897a27c5204d6ce2efb4963e4 /src/net/java/games/jogl/impl/nurbs/internals/Arc.java
parent42843c3290d64c41c9c8a18b93f5ad3c00d35ddc (diff)
Merged JSR-231 branch on to the main JOGL trunk. The main trunk now
contains the evolving JSR-231 Reference Implementation and the JSR-231 branch is permanently closed. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@401 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'src/net/java/games/jogl/impl/nurbs/internals/Arc.java')
-rwxr-xr-xsrc/net/java/games/jogl/impl/nurbs/internals/Arc.java274
1 files changed, 0 insertions, 274 deletions
diff --git a/src/net/java/games/jogl/impl/nurbs/internals/Arc.java b/src/net/java/games/jogl/impl/nurbs/internals/Arc.java
deleted file mode 100755
index 076c68b72..000000000
--- a/src/net/java/games/jogl/impl/nurbs/internals/Arc.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-** License Applicability. Except to the extent portions of this file are
-** made subject to an alternative license as permitted in the SGI Free
-** Software License B, Version 1.1 (the "License"), the contents of this
-** file are subject only to the provisions of the License. You may not use
-** this file except in compliance with the License. You may obtain a copy
-** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
-** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
-**
-** http://oss.sgi.com/projects/FreeB
-**
-** Note that, as provided in the License, the Software is distributed on an
-** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
-** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-**
-** Original Code. The Original Code is: OpenGL Sample Implementation,
-** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
-** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
-** Copyright in any portions created by third parties is as indicated
-** elsewhere herein. All Rights Reserved.
-**
-** Additional Notice Provisions: The application programming interfaces
-** established by SGI in conjunction with the Original Code are The
-** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
-** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
-** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
-** Window System(R) (Version 1.3), released October 19, 1998. This software
-** was created using the OpenGL(R) version 1.2.1 Sample Implementation
-** published by SGI, but has not been independently verified as being
-** compliant with the OpenGL(R) version 1.2.1 Specification.
-*/
-
-/* an arc, in two list, the trim list and bin */
-public class Arc {
- public static final int SIDE_NONE = 0;
- public static final int SIDE_RIGHT = 1;
- public static final int SIDE_TOP = 2;
- public static final int SIDE_LEFT = 3;
- public static final int SIDE_BOTTOM = 4;
-
- public static final int bezier_tag = (1 << 13);
- public static final int arc_tag = (1 << 3);
- public static final int tail_tag = (1 << 6);
- public Arc prev; /* trim list pointer */
- public Arc next; /* trim list pointer */
- public Arc link; /* bin pointers */
- public BezierArc bezierArc; /* associated bezier arc */
- public PwlArc pwlArc; /* associated pwl arc */
- public long type; /* curve type */
- public long nuid;
-
- private static final float ZERO = 0.00001f;
-
- public Arc(Arc j, PwlArc p) {
- pwlArc = p;
- type = j.type;
- nuid = j.nuid;
- }
-
- public Arc(int arcSide, long nuid) {
- type = 0;
- setside(arcSide);
- this.nuid = nuid;
- }
-
- public Arc append(Arc jarc) {
- if ( jarc != null ) {
- next = jarc.next;
- prev = jarc;
- next.prev = prev.next = this;
- } else {
- next = prev = this;
- }
- return this;
- }
-
- public boolean check() {
- Arc jarc = this;
- do {
- assert( (jarc.pwlArc != null) || (jarc.bezierArc != null) );
-
- if (jarc.prev == 0 || jarc.next == 0) {
- System.out.println( "checkjarc:null next/prev pointer");
- jarc.print( );
- return false;
- }
-
- if (jarc.next.prev != jarc) {
- System.out.println( "checkjarc: pointer linkage screwed up");
- jarc.print( );
- return false;
- }
-
- if( jarc.pwlArc != null ) {
- assert( jarc.pwlArc.npts >= 1 );
- assert( jarc.pwlArc.npts < 100000 );
- if( jarc.prev.pwlArc != null ) {
- if( jarc.tail()[1] != jarc.prev.rhead()[1] ) {
- System.out.println( "checkjarc: geometric linkage screwed up 1");
- jarc.prev.show();
- jarc.show();
- return false;
- }
- if( jarc.tail()[0] != jarc.prev.rhead()[0] ) {
- System.out.println( "checkjarc: geometric linkage screwed up 2");
- jarc.prev.show();
- jarc.show();
- return false;
- }
- }
- if( jarc.next.pwlArc ) {
- if( jarc.next.tail()[0] != jarc.rhead()[0] ) {
- System.out.println( "checkjarc: geometric linkage screwed up 3");
- jarc.show();
- jarc.next.show();
- return false;
- }
- if( jarc.next.tail()[1] != jarc.rhead()[1] ) {
- System.out.println( "checkjarc: geometric linkage screwed up 4");
- jarc.show();
- jarc.next.show();
- return false;
- }
- }
- if( jarc.isbezier() ) {
- assert( jarc.pwlArc.npts == 2 );
- assert( (jarc.pwlArc.pts[0].param[0] ==
- jarc.pwlArc.pts[1].param[0]) ||
- (jarc.pwlArc.pts[0].param[1] ==
- jarc.pwlArc.pts[1].param[1]) );
- }
- }
- jarc = jarc.next;
- } while (jarc != this);
- return true;
- }
-
- /**
- * Checks if tail of arc and head of prev meet.
- */
- public boolean isDisconnected() {
- if( pwlArc == 0 ) return 0;
- if( prev.pwlArc == 0 ) return 0;
-
- float[] p0 = tail();
- float[] p1 = prev.rhead();
-
- if( ((p0[0] - p1[0]) > ZERO) || ((p1[0] - p0[0]) > ZERO) ||
- ((p0[1] - p1[1]) > ZERO) || ((p1[1] - p0[1]) > ZERO) ) {
- return true;
- } else {
- /* average two points together */
- p0[0] = p1[0] = (p1[0] + p0[0]) * 0.5f;
- p0[1] = p1[1] = (p1[1] + p0[1]) * 0.5f;
- return false;
- }
- }
-
- /**
- * Counts number of points on arc loop.
- */
- public int numpts( ) {
- Arc jarc = this;
- int npts = 0;
- do {
- npts += jarc.pwlArc.npts;
- jarc = jarc.next;
- } while( jarc != this );
- return npts;
- }
-
- /**
- * Marks each point with id of arc.
- */
- public void markverts( void ) {
- Arc jarc = this;
-
- do {
- TrimVertex p = jarc.pwlArc.pts;
- for( int i=0; i<jarc.pwlArc.npts; i++ )
- p[i].nuid = jarc.nuid;
- jarc = jarc.next;
- } while( jarc != this );
- }
-
- /**
- * Finds axis extrema on arc loop.
- */
- public void getextrema( Arc[4] ) {
- float leftpt, botpt, rightpt, toppt;
-
- extrema[0] = extrema[1] = extrema[2] = extrema[3] = this;
-
- leftpt = rightpt = this.tail()[0];
- botpt = toppt = this.tail()[1];
-
- for( Arc jarc = this.next; jarc != this; jarc = jarc.next ) {
- if ( jarc.tail()[0] < leftpt ||
- (jarc.tail()[0] <= leftpt && jarc.rhead()[0]<=leftpt)) {
- leftpt = jarc.pwlArc.pts.param[0];
- extrema[1] = jarc;
- }
- if ( jarc.tail()[0] > rightpt ||
- (jarc.tail()[0] >= rightpt && jarc.rhead()[0] >= rightpt)) {
- rightpt = jarc.pwlArc.pts.param[0];
- extrema[3] = jarc;
- }
- if ( jarc.tail()[1] < botpt ||
- (jarc.tail()[1] <= botpt && jarc.rhead()[1] <= botpt )) {
- botpt = jarc.pwlArc.pts.param[1];
- extrema[2] = jarc;
- }
- if ( jarc.tail()[1] > toppt ||
- (jarc.tail()[1] >= toppt && jarc.rhead()[1] >= toppt)) {
- toppt = jarc.pwlArc.pts.param[1];
- extrema[0] = jarc;
- }
- }
- }
-
- /**
- * Prints out the vertices of all pwl arcs on a loop.
- */
- public void print( ) {
- Arc jarc = this;
-
- do {
- jarc.show( );
- jarc = jarc.next;
- } while (jarc != this);
- }
-
- public void show( ) {
- System.out.println( "\tPWLARC NP: " + pwlArc.npts + " FL: 1");
- for( int i = 0; i < pwlArc.npts; i++ ) {
- System.out.println( "\t\tVERTEX " + pwlArc.pts[i].param[0] + " " +
- pwlArc.pts[i].param[1] );
- }
- }
-
- /**
- * Attaches a pwl arc to an arc and mark it as a border arc.
- */
- public void makeSide( PwlArc pwl, int arcSide ) {
- assert( pwl != 0);
- assert( pwlArc == 0 );
- assert( pwl.npts > 0 );
- assert( pwl.pts != 0);
- pwlArc = pwl;
- clearbezier();
- setside( arcSide );
- }
-
- public boolean isTessellated() { return (pwlArc != null); }
- public boolean isbezier() { return (type & bezier_tag) != 0; }
- public void setbezier() { type |= bezier_tag; }
- public void clearbezier() { type &= ~bezier_tag; }
- public long npts() { return pwlArc.npts; }
- public TrimVertex[] pts() { return pwlArc.pts; }
- public float[] tail() { return pwlArc.pts[0].param; }
- public float[] head() { return next.pwlArc.pts[0].param; }
- public float[] rhead() { return pwlArc.pts[pwlArc.npts-1].param; }
- public long ismarked() { return type & arc_tag; }
- public void setmark() { type |= arc_tag; }
- public void clearmark() { type &= (~arc_tag); }
- public void clearside() { type &= ~(0x7 << 8); }
- public void setside( int arcSide ) { clearside(); type |= (((long)arcSide)<<8); }
- public int getside() { return ((type>>8) & 0x7); }
- public int getitail() { return type & tail_tag; }
- public void setitail() { type |= tail_tag; }
- public void clearitail() { type &= (~tail_tag); }
-}