001: /*
002: * $RCSfile: Coordinate.java,v $
003: *
004: * @(#)Coordinate.java 1.19 98/09/01 15:05:55
005: *
006: * Copyright (c) 1996-1998 Sun Microsystems, Inc. All Rights Reserved.
007: *
008: * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
009: * modify and redistribute this software in source and binary code form,
010: * provided that i) this copyright notice and license appear on all copies of
011: * the software; and ii) Licensee does not utilize the software in a manner
012: * which is disparaging to Sun.
013: *
014: * This software is provided "AS IS," without a warranty of any kind. ALL
015: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
016: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
017: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
018: * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
019: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
020: * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
021: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
022: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
023: * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
024: * POSSIBILITY OF SUCH DAMAGES.
025: *
026: * This software is not designed or intended for use in on-line control of
027: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
028: * the design, construction, operation or maintenance of any nuclear
029: * facility. Licensee represents and warrants that it will not use or
030: * redistribute the Software for such purposes.
031: *
032: * $Revision: 1.2 $
033: * $Date: 2005/02/03 23:06:54 $
034: * $State: Exp $
035: */
036: /*
037: *@Author: Rick Goldberg
038: *@Author: Doug Gehringer
039: */
040: package org.jdesktop.j3d.loaders.vrml97.impl;
041:
042: /** Description of the Class */
043: public class Coordinate extends Node implements Reusable {
044: // exposedField
045: MFVec3f point;
046: Node owner;
047:
048: /**
049: *Constructor for the Coordinate object
050: *
051: *@param loader Description of the Parameter
052: */
053: public Coordinate(Loader loader) {
054: super (loader);
055: point = new MFVec3f();
056: initFields();
057: }
058:
059: /**
060: *Constructor for the Coordinate object
061: *
062: *@param loader Description of the Parameter
063: *@param points Description of the Parameter
064: */
065: public Coordinate(Loader loader, float[] points) {
066: super (loader);
067: this .point = new MFVec3f(points);
068: initFields();
069: }
070:
071: /**
072: *Constructor for the Coordinate object
073: *
074: *@param loader Description of the Parameter
075: *@param points Description of the Parameter
076: */
077: public Coordinate(Loader loader, MFVec3f points) {
078: super (loader);
079: this .point = points;
080: initFields();
081: }
082:
083: /** Description of the Method */
084: void initFields() {
085: point.init(this , FieldSpec, Field.EXPOSED_FIELD, "point");
086:
087: }
088:
089: /** Description of the Method */
090: public void reset() {
091: point.reset();
092: implReady = false;
093: }
094:
095: /**
096: * Description of the Method
097: *
098: *@param eventInName Description of the Parameter
099: *@param time Description of the Parameter
100: */
101: public void notifyMethod(String eventInName, double time) {
102: if (eventInName.equals("point")) {
103: if (owner != null) {
104: owner.notifyMethod("coord", time);
105: }
106: } else if (eventInName.equals("route_point")) {
107: if (owner != null) {
108: owner.notifyMethod("route_coord", time);
109: }
110: }
111: }
112:
113: /**
114: * Description of the Method
115: *
116: *@return Description of the Return Value
117: */
118: public Object clone() {
119: return new Coordinate(loader, (MFVec3f) point.clone());
120: }
121:
122: /**
123: * Gets the type attribute of the Coordinate object
124: *
125: *@return The type value
126: */
127: public String getType() {
128: return "Coordinate";
129: }
130:
131: /**
132: * Description of the Method
133: *
134: *@return Description of the Return Value
135: */
136: public String toStringBody() {
137: return "Coordinate {\npoint " + point + "}";
138: }
139: }
|