summaryrefslogtreecommitdiffstats
path: root/src/classes/share/com/sun/j3d/loaders/SceneBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/classes/share/com/sun/j3d/loaders/SceneBase.java')
-rw-r--r--src/classes/share/com/sun/j3d/loaders/SceneBase.java313
1 files changed, 0 insertions, 313 deletions
diff --git a/src/classes/share/com/sun/j3d/loaders/SceneBase.java b/src/classes/share/com/sun/j3d/loaders/SceneBase.java
deleted file mode 100644
index bb3794d..0000000
--- a/src/classes/share/com/sun/j3d/loaders/SceneBase.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistribution of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistribution in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of Sun Microsystems, Inc. or the names of
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * This software is provided "AS IS," without a warranty of any
- * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
- * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
- * EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL
- * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
- * USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
- * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR
- * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
- * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
- * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
- * INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- *
- * You acknowledge that this software is not designed, licensed or
- * intended for use in the design, construction, operation or
- * maintenance of any nuclear facility.
- *
- */
-
-package com.sun.j3d.loaders;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import javax.media.j3d.Background;
-import javax.media.j3d.Behavior;
-import javax.media.j3d.BranchGroup;
-import javax.media.j3d.Fog;
-import javax.media.j3d.Light;
-import javax.media.j3d.Sound;
-import javax.media.j3d.TransformGroup;
-
-
-/**
- * This class implements the Scene interface and extends it to incorporate
- * utilities that could be used by loaders. There should be little need
- * for future loaders to subclass this, or to implement Scene directly,
- * as the functionality of a SceneBase is fairly straightforward. This
- * class is responsible for both the storage and retrieval of data from
- * the Scene. The storage methods (used only by Loader writers) are all
- * of the add* routines. The retrieval methods (used primarily by Loader
- * users) are all of the get* routines.
- */
-public class SceneBase implements Scene {
-
- BranchGroup sceneGroup = null;
- BranchGroup behaviorGroup = null;
- Hashtable namedObjects = new Hashtable();
- String description = null;
-
- Vector viewVector = new Vector();
- Vector hfovVector = new Vector();
- Vector behaviorVector = new Vector();
- Vector lightVector = new Vector();
- Vector fogVector = new Vector();
- Vector backgroundVector = new Vector();
- Vector soundVector = new Vector();
-
- // Add methods
-
- /**
- * Sets the sceneGroup to be the group that is passed in.
- */
- public void setSceneGroup(BranchGroup scene) {
- sceneGroup = scene;
- }
-
- /**
- * Adds the given group to the list of view groups.
- */
- public void addViewGroup(TransformGroup tg) {
- viewVector.addElement(tg);
- }
-
- /**
- * Adds the given field of view value to the list of field of view values.
- */
- public void addHorizontalFOV(float hfov) {
- hfovVector.addElement(new Float(hfov));
- }
-
- /**
- * Adds the given behavior to a list of behaviors
- */
- public void addBehaviorNode(Behavior b) {
- behaviorVector.addElement(b);
- }
-
- /**
- * Adds the given Light node to the list of lights.
- */
- public void addLightNode(Light light) {
- lightVector.addElement(light);
- }
-
- /**
- * Adds the given Background node to the list of backgrounds.
- */
- public void addBackgroundNode(Background background) {
- backgroundVector.addElement(background);
- }
-
- /**
- * Adds the given Sound node to the list of sounds.
- */
- public void addSoundNode(Sound sound) {
- soundVector.addElement(sound);
- }
-
- /**
- * Adds the given Fog node to the list of fog nodes.
- */
- public void addFogNode(Fog fog) {
- fogVector.addElement(fog);
- }
-
- /**
- * Sets the text description of the scene to the passed in String.
- */
- public void addDescription(String descriptionString) {
- description = descriptionString;
- }
-
- /**
- * Adds the given String/Object pair to the table of named objects.
- */
- public void addNamedObject(String name, Object object) {
- if (namedObjects.get(name) == null)
- namedObjects.put(name, object);
- else {
- // key already exists - append a unique integer to end of name
- int nameIndex = 1;
- boolean done = false;
- while (!done) {
- // Iterate starting from "[1]" until we find a unique key
- String tempName = name + "[" + nameIndex + "]";
- if (namedObjects.get(tempName) == null) {
- namedObjects.put(tempName, object);
- done = true;
- }
- nameIndex++;
- }
- }
- }
-
- /**
- * This method returns the BranchGroup containing the overall
- * scene loaded by the loader.
- */
- @Override
- public BranchGroup getSceneGroup() {
- return sceneGroup;
- }
-
-
- /**
- * This method returns an array of all View Groups defined in the file.
- * A View Group is defined as a TransformGroup which contains a
- * ViewPlatform. The TransformGroup holds the position/orientation
- * information for the given ViewPlatform and the ViewPlatform
- * holds an view-specific information, such as Field of View.
- */
- @Override
- public TransformGroup[] getViewGroups() {
- if (viewVector.isEmpty())
- return null;
- TransformGroup[] viewGroups = new TransformGroup[viewVector.size()];
- viewVector.copyInto(viewGroups);
- return viewGroups;
- }
-
- /**
- * This method returns an array of floats that contains the horizontal
- * field of view values for each corresponding entry in the array of
- * view groups returned by the method getViewGroups.
- */
- @Override
- public float[] getHorizontalFOVs() {
- if (hfovVector.isEmpty())
- return null;
-
- int arraySize = hfovVector.size();
- float[] hfovs = new float[arraySize];
- Float[] tmpFovs = new Float[hfovVector.size()];
- hfovVector.copyInto(tmpFovs);
-
- // copy to array of floats and delete Floats
- for (int i=0; i<arraySize; i++) {
- hfovs[i] = tmpFovs[i].floatValue();
- tmpFovs[i] = null;
- }
- return hfovs;
- }
-
-
- /**
- * This method returns an array of all Lights defined in the file.
- */
- @Override
- public Light[] getLightNodes() {
- if (lightVector.isEmpty())
- return null;
- Light[] lightNodes = new Light[lightVector.size()];
- lightVector.copyInto(lightNodes);
- return lightNodes;
- }
-
-
- /**
- * This method returns a Hashtable which contains a list of all named
- * objects in the file and their associated scene graph objects. The
- * naming scheme for file objects is file-type dependent, but may include
- * such names as the DEF names of Vrml or filenames of subjects (as
- * in Lightwave 3D).
- */
- @Override
- public Hashtable getNamedObjects() {
- return namedObjects;
- }
-
-
- /**
- * This method returns an array of all Background nodes defined in the
- * file.
- */
- @Override
- public Background[] getBackgroundNodes() {
- if (backgroundVector.isEmpty())
- return null;
- Background[] backgroundNodes = new Background[backgroundVector.size()];
- backgroundVector.copyInto(backgroundNodes);
- return backgroundNodes;
- }
-
-
- /**
- * This method returns an array of all Fog nodes defined in the
- * file.
- */
- @Override
- public Fog[] getFogNodes() {
- if (fogVector.isEmpty())
- return null;
- Fog[] fogNodes = new Fog[fogVector.size()];
- fogVector.copyInto(fogNodes);
- return fogNodes;
- }
-
-
- /**
- * This method returns a group containing all of the Behavior nodes
- * in the scene.
- */
- @Override
- public Behavior[] getBehaviorNodes() {
- if (behaviorVector.isEmpty())
- return null;
- Behavior[] behaviorNodes = new Behavior[behaviorVector.size()];
- behaviorVector.copyInto(behaviorNodes);
-
- return behaviorNodes;
- }
-
-
- /**
- * This method returns an array of all of the Sound nodes defined
- * in the file.
- */
- @Override
- public Sound[] getSoundNodes() {
- if (soundVector.isEmpty())
- return null;
- Sound[] soundNodes = new Sound[soundVector.size()];
- soundVector.copyInto(soundNodes);
- return soundNodes;
- }
-
-
- /**
- * This method returns the text description of the file. If no
- * such description exists, this method should return null.
- */
- @Override
- public String getDescription() {
- return description;
- }
-
-}
-
-
-
-
-