diff options
author | Julien Gouesse <[email protected]> | 2015-11-28 15:11:48 +0100 |
---|---|---|
committer | Julien Gouesse <[email protected]> | 2015-11-28 15:11:48 +0100 |
commit | dbc98deea1884e44da2c74d6ea807253cdefa693 (patch) | |
tree | 29c3ee7dea82d7dd773d81f33f645dde67e43a17 /src/javax/media/j3d/GeometryAtom.java | |
parent | 2c99f1329dc55bd496bce91b9aba956ecba3c67e (diff) |
Relocate package prefix to org.jogamp.java3d
Diffstat (limited to 'src/javax/media/j3d/GeometryAtom.java')
-rw-r--r-- | src/javax/media/j3d/GeometryAtom.java | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/src/javax/media/j3d/GeometryAtom.java b/src/javax/media/j3d/GeometryAtom.java deleted file mode 100644 index a4351ef..0000000 --- a/src/javax/media/j3d/GeometryAtom.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this - * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - */ - -package javax.media.j3d; - -import javax.vecmath.Point3d; - -/** - * A GeometryAtom is the smallest object representing Geometry. - */ - -class GeometryAtom extends Object implements BHLeafInterface, NnuId { - - /** - * Array of geometry components of this geometry atom - */ - // The first index of geometryArr should always be 0, unless geometryArr contains - // multiple Text3Ds. - GeometryRetained[] geometryArray = null; - - /** - * Array of transforms used only for Text3d. - */ - Transform3D[] lastLocalTransformArray = null; - - - /** - * The locale that this geometry atom is attatched to. This is only non-null - * if this instance is directly linked into a locale. - */ - Locale locale = null; - - /** - * The mirror Shape3DRetained for this GeometryAtom. - */ - Shape3DRetained source = null; - - /** - * The BHLeafNode for this GeometryAtom. - */ - BHLeafNode bhLeafNode = null; - - // true if alpha channel is editable - boolean alphaEditable; - - // true if this ga is visible. Default is true. - boolean visible = true; - - /** - * This is the original geometry type from which this atom came - */ - int geoType = -1; - - /** - * The list of RenderAtoms for this GeometryAtom - */ - RenderAtom[] renderAtoms = new RenderAtom[0]; - - // Id use for quick search. - int nnuId; - - Point3d[] centroid = null; - boolean centroidIsDirty = true; - Object lockObj = new Object(); - - - GeometryAtom() { - // Get a not necessary unique Id. - nnuId = NnuIdManager.getId(); - } - - @Override - public int getId() { - return nnuId; - } - - @Override - public int equal(NnuId obj) { - int keyId = obj.getId(); - if(nnuId < keyId) { - return -1; - } - else if(nnuId > keyId) { - return 1; - } - else { // Found it! - return 0; - } - } - - @Override - public BoundingBox computeBoundingHull() { - /* - System.err.println("Bounds is " + source.vwcBounds); - for(int i=0; i<geometryArray.length; i++) { - System.err.println( i + " geoBounds " + - geometryArray[i].geoBounds); - } - */ - - return source.vwcBounds; - } - - // This method is use by picking and collision queries. - @Override - public boolean isEnable() { - return ((source.vwcBounds != null) && - (source.vwcBounds.isEmpty() == false) && - (source.switchState.currentSwitchOn)); - } - - // This method is use by visibility query. - @Override - public boolean isEnable(int vis) { - if((source.vwcBounds != null) && (source.vwcBounds.isEmpty() == false) && - (source.switchState.currentSwitchOn)) { - switch(vis) { - case View.VISIBILITY_DRAW_VISIBLE: - return visible; - case View.VISIBILITY_DRAW_INVISIBLE: - return (!visible); - case View.VISIBILITY_DRAW_ALL: - return true; - } - } - return false; - } - - @Override - public Locale getLocale2() { - return locale; - } - - - /** - * Gets a RenderAtom for the given viewIndex. - * If it doesn't exist, it creates one. - */ -RenderAtom getRenderAtom(View view) { - synchronized (lockObj) { - // If renderAtom is not scoped to this view, don't even - // bother creating the renderAtom, just return - if (source.viewList != null && !source.viewList.contains(view)) - return null; - - // Expand the renderAtoms array if needed - int index = view.viewIndex; - if (index >= renderAtoms.length) { - RenderAtom[] newList = new RenderAtom[index + 1]; - System.arraycopy(renderAtoms, 0, newList, 0, renderAtoms.length); - renderAtoms = newList; - } - - RenderAtom ra = renderAtoms[index]; - if (ra == null) { - ra = new RenderAtom(); - renderAtoms[index] = ra; - ra.geometryAtom = this; - - // Allocate space based on number of geometry in the list - boolean isGeoTypeText3D = (geoType == GeometryRetained.GEO_TYPE_TEXT3D); - ra.rListInfo = new RenderAtomListInfo[geometryArray.length]; - for (int j = 0; j < ra.rListInfo.length; j++) { - ra.rListInfo[j] = new RenderAtomListInfo(ra, j); - if (isGeoTypeText3D) - ra.rListInfo[j].localToVworld = new Transform3D(); - } - } - return ra; - } -} - // If the renderAtom is transparent, then make sure that the - // value is up-to-date - - void updateCentroid() { - // New for 1.3.2 - // If the sortShape3DBounds flag is set, the bounds of the - // Shape3D node will be used in place of the computed - // GeometryArray bounds for transparency sorting for those - // Shape3D nodes whose boundsAutoCompute attribute is set to - // false. - if (VirtualUniverse.mc.sortShape3DBounds && - !source.boundsAutoCompute) { - - synchronized(lockObj) { - if (centroid == null) { - centroid = new Point3d[geometryArray.length]; - for (int j = 0; j < centroid.length; j++) { - centroid[j] = new Point3d(); - source.localBounds.getCenter(centroid[j]); - source.getCurrentLocalToVworld(0).transform(centroid[j]); - } - } - else { - for (int j = 0; j < centroid.length; j++) { - source.localBounds.getCenter(centroid[j]); - source.getCurrentLocalToVworld(0).transform(centroid[j]); - } - } - } - - return; - } - // End of new for 1.3.2 - - synchronized(lockObj) { - for (int j = 0; j < geometryArray.length; j++) { - if (geometryArray[j] == null) - continue; - synchronized(geometryArray[j].centroid) { - if (geometryArray[j].recompCentroid) { - geometryArray[j].computeCentroid(); - geometryArray[j].recompCentroid = false; - } - } - } - if (centroidIsDirty) { - if (centroid == null) { - centroid = new Point3d[geometryArray.length]; - for (int j = 0; j < centroid.length; j++) { - if (geometryArray[j] == null) - continue; - centroid[j] = new Point3d(geometryArray[j].centroid); - source.getCurrentLocalToVworld(0).transform(centroid[j]); - } - } - else { - for (int j = 0; j < centroid.length; j++) { - if (geometryArray[j] == null) - continue; - centroid[j].set(geometryArray[j].centroid); - source.getCurrentLocalToVworld(0).transform(centroid[j]); - } - } - centroidIsDirty = false; - } - } - } - -} |