001: /*
002: * Copyright (c) 2001 Silvere Martin-Michiellot All Rights Reserved.
003: *
004: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
005: * royalty free, license to use, modify and redistribute this
006: * software in source and binary code form,
007: * provided that i) this copyright notice and license appear on all copies of
008: * the software; and ii) Licensee does not utilize the software in a manner
009: * which is disparaging to Silvere Martin-Michiellot.
010: *
011: * This software is provided "AS IS," without a warranty of any kind. ALL
012: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
013: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
014: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
015: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
016: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
017: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
018: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
019: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
020: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
021: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
022: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
023: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
024: *
025: * This software is not designed or intended for use in on-line control of
026: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
027: * the design, construction, operation or maintenance of any nuclear
028: * facility. Licensee represents and warrants that it will not use or
029: * redistribute the Software for such purposes.
030: *
031: * @Author: Silvere Martin-Michiellot
032: *
033: */
034:
035: package com.db.server;
036:
037: /**
038: * A class that extends the BoundingPolytope class to provide additional methods. We are only able to compute bounds for BoundingBox, BoundingSphere, BoundingPolytope or their sub-classes.
039: */
040:
041: import javax.media.j3d.*;
042: import javax.vecmath.*;
043:
044: public class ExtendedBoundingPolytope extends BoundingPolytope
045: implements ExtendedBounds {
046:
047: public ExtendedBoundingPolytope() {
048:
049: super ();
050:
051: }
052:
053: public ExtendedBoundingPolytope(Bounds boundsObject) {
054:
055: super (boundsObject);
056:
057: }
058:
059: public ExtendedBoundingPolytope(Bounds[] boundsObjects) {
060:
061: super (boundsObjects);
062:
063: }
064:
065: public ExtendedBoundingPolytope(Vector4d[] planes) {
066:
067: super (planes);
068:
069: }
070:
071: public double getVolume() {
072:
073: //YYYYYYYYYYY
074: return 0;
075:
076: }
077:
078: public boolean contains(Point3d point3d) {
079:
080: BoundingPolytope boundingPolytopePoint3d;
081: double delta;
082:
083: delta = 0.000000001;
084:
085: boundingPolytopePoint3d = new BoundingPolytope(new BoundingBox(
086: new Point3d(point3d.x - delta, point3d.y - delta,
087: point3d.z - delta), new Point3d(point3d.x
088: + delta, point3d.y + delta, point3d.z + delta)));
089:
090: return this .contains(boundingPolytopePoint3d);
091:
092: }
093:
094: public boolean contains(Bounds bounds) {
095:
096: Bounds[] boundsArray;
097:
098: boundsArray = new Bounds[1];
099: boundsArray[0] = bounds;
100:
101: return this .contains(boundsArray);
102:
103: }
104:
105: //this object is affected by the operation
106: //the result is stored in this and is thus a single BoundingPolytope
107: public boolean contains(Bounds[] bounds) {
108:
109: // YYYYYYYYYYYYYYYY
110: return false;
111: }
112:
113: //this object is affected by the operation
114: //the result is stored in this and is thus a single BoundingPolytope
115: public Bounds subtract(Bounds bounds) {
116:
117: Bounds[] boundsArray;
118:
119: boundsArray = new Bounds[1];
120: boundsArray[0] = bounds;
121:
122: return this .subtract(boundsArray);
123:
124: }
125:
126: public Bounds subtract(Bounds[] bounds) {
127:
128: //getPlanes(Vector4d[] planes)
129: //int getNumPlanes()
130: // YYYYYYYYYYYYYYYY
131:
132: return new BoundingPolytope();
133: }
134:
135: }
|