001: /*
002: * $RCSfile: MFTime.java,v $
003: *
004: * @(#)MFTime.java 1.13 98/11/05 20:35:57
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: * $Revision: 1.2 $
032: * $Date: 2005/02/03 23:06:58 $
033: * $State: Exp $
034: */
035: /*
036: * @Author: Rick Goldberg
037: * @Author: Doug Gehringer
038: *
039: */
040: package org.jdesktop.j3d.loaders.vrml97.impl;
041:
042: import java.util.Observable;
043: import java.util.Observer;
044:
045: /** Description of the Class */
046: public class MFTime extends MField {
047:
048: double[] time = new double[1];
049:
050: /**Constructor for the MFTime object */
051: public MFTime() {
052: ;
053: }
054:
055: /**
056: *Constructor for the MFTime object
057: *
058: *@param time Description of the Parameter
059: */
060: public MFTime(double[] time) {
061: this .time = new double[time.length];
062: System.arraycopy(time, 0, this .time, 0, time.length);
063: }
064:
065: /**
066: * Gets the value attribute of the MFTime object
067: *
068: *@param values Description of the Parameter
069: */
070: public void getValue(double[] values) {
071: System.arraycopy(this .time, 0, values, 0, this .time.length);
072: }
073:
074: /**
075: * Description of the Method
076: *
077: *@param index Description of the Parameter
078: *@return Description of the Return Value
079: */
080: public double get1Value(int index) {
081: double ret = 0.0;// compiler still complains about uninitialized
082: ret = time[index];
083: return ret;
084: }
085:
086: /**
087: * Sets the value attribute of the MFTime object
088: *
089: *@param values The new value value
090: */
091: public void setValue(double[] values) {
092: time = new double[values.length];
093: System.arraycopy(values, 0, time, 0, values.length);
094: route();
095: }
096:
097: /**
098: * Sets the value attribute of the MFTime object
099: *
100: *@param size The new value value
101: *@param values The new value value
102: */
103: public void setValue(int size, double[] values) {
104: setValue(values);
105: }
106:
107: /**
108: * Sets the value attribute of the MFTime object
109: *
110: *@param field The new value value
111: */
112: public void setValue(MFTime field) {
113: setValue(field.time);
114: }
115:
116: /**
117: * Sets the value attribute of the MFTime object
118: *
119: *@param field The new value value
120: */
121: public void setValue(ConstMFTime field) {
122: setValue((MFTime) field.ownerField);
123: }
124:
125: /**
126: * Description of the Method
127: *
128: *@param index Description of the Parameter
129: *@param d Description of the Parameter
130: */
131: public void set1Value(int index, double d) {
132: time[index] = d;
133: route();
134: }
135:
136: /**
137: * Description of the Method
138: *
139: *@param index Description of the Parameter
140: *@param t Description of the Parameter
141: */
142: public void set1Value(int index, ConstSFTime t) {
143: set1Value(index, (SFTime) t.ownerField);
144: }
145:
146: /**
147: * Description of the Method
148: *
149: *@param index Description of the Parameter
150: *@param t Description of the Parameter
151: */
152: public void set1Value(int index, SFTime t) {
153: set1Value(index, t.time);
154: }
155:
156: /**
157: * Adds a feature to the Value attribute of the MFTime object
158: *
159: *@param d The feature to be added to the Value attribute
160: */
161: public void addValue(double d) {
162: double[] temp = new double[time.length + 1];
163: System.arraycopy(time, 0, temp, 0, time.length);
164: temp[time.length] = d;
165: time = temp;
166:
167: route();
168: }
169:
170: /**
171: * Adds a feature to the Value attribute of the MFTime object
172: *
173: *@param t The feature to be added to the Value attribute
174: */
175: public void addValue(ConstSFTime t) {
176: addValue((SFTime) t.ownerField);
177: }
178:
179: /**
180: * Adds a feature to the Value attribute of the MFTime object
181: *
182: *@param t The feature to be added to the Value attribute
183: */
184: public void addValue(SFTime t) {
185: addValue(t.time);
186: }
187:
188: /**
189: * Description of the Method
190: *
191: *@param index Description of the Parameter
192: *@param d Description of the Parameter
193: */
194: public void insertValue(int index, double d) {
195: double[] temp = new double[time.length + 1];
196: System.arraycopy(time, 0, temp, 0, index);
197: temp[index] = d;
198: System.arraycopy(time, index, temp, index + 1, time.length
199: - index);
200: time = temp;
201: route();
202: }
203:
204: /**
205: * Description of the Method
206: *
207: *@param index Description of the Parameter
208: *@param t Description of the Parameter
209: */
210: public void insertValue(int index, SFTime t) {
211: insertValue(index, t.time);
212: }
213:
214: /**
215: * Description of the Method
216: *
217: *@param index Description of the Parameter
218: *@param t Description of the Parameter
219: */
220: public void insertValue(int index, ConstSFTime t) {
221: insertValue(index, (SFTime) t.ownerField);
222: }
223:
224: /**
225: * Description of the Method
226: *
227: *@return Description of the Return Value
228: */
229: public synchronized Object clone() {
230: return new MFTime(time);
231: }
232:
233: /**
234: * Description of the Method
235: *
236: *@param field Description of the Parameter
237: */
238: public void update(Field field) {
239: setValue((MFTime) field);
240: }
241:
242: /**
243: * Description of the Method
244: *
245: *@return Description of the Return Value
246: */
247: public ConstField constify() {
248: if (constField == null) {
249: constField = new ConstMFTime(this );
250: }
251: return constField;
252: }
253:
254: /**
255: * Gets the size attribute of the MFTime object
256: *
257: *@return The size value
258: */
259: public int getSize() {
260: return time.length;
261: }
262:
263: /** Description of the Method */
264: public void clear() {
265: time = new double[1];
266: }
267:
268: /**
269: * Description of the Method
270: *
271: *@param i Description of the Parameter
272: */
273: public void delete(int i) {
274: ;
275: }// TBD
276:
277: /**
278: * Description of the Method
279: *
280: *@return Description of the Return Value
281: */
282: public vrml.Field wrap() {
283: return new vrml.field.MFTime(this);
284: }
285: }
|