View Javadoc

1   /* -------------------------------------------------------------------
2    * Java source file for the class MultiTransformGroup
3    * 
4    * Copyright (c), 2003, Masahiro Takatsuka.
5    * All Rights Researved.
6    * 
7    * Original Author: Masahiro Takatsuka (masa@jbeans.net)
8    * $Author: takatsukam $
9    * 
10   * $Date: 2004/03/03 11:53:06 $
11   * 
12   * $Id: MultiTransformGroup.java,v 1.3 2004/03/03 11:53:06 takatsukam Exp $
13   * 
14   * Reference:		Document no:
15   * ___				___
16   * 
17   * To Do:
18   * ___
19   * 
20  ------------------------------------------------------------------- */
21  
22  /* --------------------------- Package ---------------------------- */
23  package net.jbeans.j3d.universe;
24  
25  /* ------------------ Import classes (packages) ------------------- *//package-summary/html">class="comment"> ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment">/* ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment"> ------------------ Import classes (packages) ------------------- */
26  import javax.media.j3d.*;
27  
28  /*====================================================================
29               Implementation of class MultiTransformGroup              
30  ====================================================================*/
31  /***
32   * generally describe MultiTransformGroup in here
33   * 
34   * @version $Revision: 1.3 $
35   * @author Masahiro Takatsuka (masa@jbeans.net)
36   * @see MultiTransformGroup
37   */
38  
39  /*
40   * this class is ok to be package.
41   */ 
42  final class MultiTransformGroup extends com.sun.j3d.utils.universe.MultiTransformGroup {
43  	/***
44  	 * an array of TransformGroup.
45  	 */
46      private TransformGroup[] transforms;
47  
48  	/***
49  	 * Constructs a new MultiTransformGroup.
50  	 */
51      MultiTransformGroup() {
52          this(1);
53      }
54  
55  	/***
56  	 * Constructs a new MultiTransformGroup.
57  	 */
58      MultiTransformGroup(int i) {
59  		// notice I'm not dong "super(i)";
60          if (i < 1) {
61              i = 1;
62  		}
63          this.transforms = new TransformGroup[i];
64          this.transforms[0] = new net.jbeans.j3d.transform.ResettableTransformGroup();
65          this.transforms[0].setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
66          this.transforms[0].setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
67  		this.transforms[0].setCapability(Group.ALLOW_CHILDREN_WRITE);
68  		this.transforms[0].setCapability(Group.ALLOW_CHILDREN_EXTEND);
69          for (int j = 1; j < i; j++) {
70  			if (j < (i - 1)) {
71  				this.transforms[j] = new TransformGroup();
72  			} else {
73  				this.transforms[j] = new net.jbeans.j3d.transform.ResettableTransformGroup();
74  			}
75              this.transforms[j].setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
76              this.transforms[j].setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
77              this.transforms[j].setCapability(Group.ALLOW_CHILDREN_WRITE);
78              this.transforms[j].setCapability(Group.ALLOW_CHILDREN_EXTEND);
79              this.transforms[j - 1].addChild(this.transforms[j]);
80          }
81      }
82  
83  	/***
84  	 * returns the number of TransformGroup this object holds.
85  	 */
86      public final int getNumTransforms() {
87          return this.transforms.length;
88      }
89  
90  	/***
91  	 * returns the number of TransformGroup this object holds.
92  	 */
93      public final TransformGroup getTransformGroup(int i) {
94          if (i >= this.transforms.length || i < 0) {
95              return null;
96  		} else {
97              return this.transforms[i];
98  		}
99      }
100 }