⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setlivestate.java

📁 JAVA3D矩陈的相关类
💻 JAVA
字号:
/* * $RCSfile: SetLiveState.java,v $ * * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * * Use is subject to license terms. * * $Revision: 1.6 $ * $Date: 2007/02/09 17:18:20 $ * $State: Exp $ */package javax.media.j3d;import java.util.ArrayList;/** * SetLiveState is used to encapsulate all state needed when a branch * group is added to the scene graph */class SetLiveState extends Object {    // The VirtualUniverse for this branch group    VirtualUniverse universe = null;    // The Locale for this Branch Graph    Locale locale = null;    // The transforms used to update state    Transform3D[][] currentTransforms = new Transform3D[1][];    int[][]	    currentTransformsIndex = new int[1][];        // The keys used when dealing with SharedGroups    HashKey[] keys = null;    // flags for detecting what we are under    boolean inSharedGroup = false;    boolean inBackgroundGroup = false;    boolean inViewSpecificGroup = false;    /**     * The list of nodes added/removed during setLive/clearLive     */    ArrayList nodeList = new ArrayList();    /**     * List of nodes that are viewScoped.  Note that all nodes     * except Shape3D nodes can be in viewScopedNodeList, shape3D     * nodes will always be in the nodeList regardless of scoped     * or not. Also, only renderbin and renderingEnv structure is     * interested in viewScopedNodeList     */    ArrayList viewScopedNodeList = null;    /**     * Parallel list to viewScopedNodeList containing a list of views     * that the viewScopedNode is scoped to     */    ArrayList scopedNodesViewList = null;    // Threads to notify after setLive/clearLive    int notifyThreads = 0;    // The current list of leaf nodes for transform targets    Targets[] transformTargets = null;    // List of transform level, one per shared path    int transformLevels[] = new int[]{-1};    // List of scoped lights    ArrayList lights = null;    // List of scoped fogs    ArrayList fogs =null;    // List of scoped modelClips    ArrayList modelClips = null;    // List of scoped alt app    ArrayList altAppearances =null;    // List of viewes scoped to this Group, for all subclasses    // of group, except ViewSpecificGroup its a pointer to closest    // ViewSpecificGroup parent    // viewList for this node, if inSharedGroup is    // false then only viewList(0) is valid    ArrayList viewLists = null;    ArrayList changedViewGroup = null;    ArrayList changedViewList = null;    int[] keyList = null;    // The current bitmask of types in transformTragets    //int transformTargetThreads = 0;    ArrayList orderedPaths = null;    ArrayList ogList = new ArrayList(5);    ArrayList ogChildIdList = new ArrayList(5);    ArrayList ogOrderedIdList = new ArrayList(5);    // ogCIOList contains a list of OG with affected child index order.    ArrayList ogCIOList =  new ArrayList(5);    // ogCIOTableList contains a list of affected child index order.    ArrayList ogCIOTableList = new ArrayList(5);    /**     * List of BranchGroup from this node to the root of tree      * This is used by BranchGroupRetained to construct      * BranchGroup lists for picking.      *     * @see NodeRetained.branchGroupPaths     */    ArrayList branchGroupPaths = null;    ArrayList parentBranchGroupPaths = null;    /**     * List of Pickable flags, one for each share path.     * This flag is true when all the NodeRetained.pickable is true     * along the path except current node.     */    boolean pickable[] = new boolean[]{true};    /**     * List of collidable flags, one for each share path.     * This flag is true when all the NodeRetained.pickable is true     * along the path except current node.     */    boolean collidable[] = new boolean[]{true};    // reference count use in set/clear Live to remember how    // many references of the original branch that attach()/detach()    int refCount = 1;    // background node whose geometry branch contains this node     BackgroundRetained geometryBackground = null;    // behavior nodes    ArrayList behaviorNodes = new ArrayList(1);    // The current list of child transform group nodes or link nodes    // under a transform group    ArrayList childTransformLinks = null;    // closest parent which is a TransformGroupRetained or sharedGroupRetained    GroupRetained parentTransformLink = null;    // switch Level, start from -1, increment by one for each SwitchNode    // encounter in a branch, one per key    int switchLevels[] = new int[]{-1};    // closest switch parent, one per key    SwitchRetained closestSwitchParents[] = new SwitchRetained[]{null};    // the child id from the closest switch parent, one per key    int closestSwitchIndices[] = new int[]{-1};    // The current list of leaf nodes for switch targets    Targets[] switchTargets = null;    // The current list of closest child switch nodes or    // link nodes under a switch node    ArrayList childSwitchLinks = null;    // closest parent which is a SwitchRetained or sharedGroupRetained    GroupRetained parentSwitchLink = null;    SharedGroupRetained lastSharedGroup = null;        int traverseFlags = 0;    // Use for set live.    Transform3D[][] localToVworld = null;    int[][] localToVworldIndex = null;    HashKey[] localToVworldKeys = null;    // cached hashkey index to eliminate duplicate hash key index search    // currently used by Switch, can be extended for other node types    int[] hashkeyIndex = null;    ArrayList switchStates = null;        SetLiveState(VirtualUniverse u) {	universe = u;    }    void reset(Locale l) {		locale = l;	clear();    }    void clear() {	inSharedGroup = false;	inBackgroundGroup = false;	inViewSpecificGroup = false;	nodeList.clear();	viewScopedNodeList = null;	scopedNodesViewList = null;		notifyThreads = 0;	transformTargets = null;	lights = null;	fogs = null;	modelClips = null;	altAppearances = null;	viewLists = null;	changedViewGroup = null;	changedViewList = null;	keyList = null;	        behaviorNodes.clear();	traverseFlags = 0;	ogList.clear();	ogChildIdList.clear();	ogOrderedIdList.clear();	ogCIOList.clear();	ogCIOTableList.clear();	pickable = new boolean[]{true};	collidable = new boolean[]{true};	refCount = 1;        geometryBackground = null;        transformLevels = new int[]{-1};        childTransformLinks = null;        parentTransformLink = null;        switchTargets = null;        switchLevels = new int[]{-1};	switchStates = null;        closestSwitchIndices = new int[]{-1};        closestSwitchParents = new SwitchRetained[]{null};        childSwitchLinks = null;        parentSwitchLink = null;	lastSharedGroup = null;	keys = null;	currentTransforms = new Transform3D[1][];	currentTransformsIndex = new int[1][];	localToVworld = null;	localToVworldIndex = null;	localToVworldKeys = null;	        // XXXX: optimization for targetThreads computation, require        // cleanup in GroupRetained.doSetLive()	//transformTargetThreads = 0;        hashkeyIndex = null;                // Fix for issue 75        parentBranchGroupPaths = null;        branchGroupPaths = null;        orderedPaths = null;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -