File: SVScenePrivate.mesa
Author: Eric Bier on August 6, 1983 3:04 pm
Copyright © 1984 by Xerox Corporation. All rights reserved.
Last edited by Bier on June 1, 1987 11:08:17 am PDT
Contents: List Auxiliaries for use by SVScene Procedures
DIRECTORY
Rope, SVModelTypes, SVSceneTypes;
SVScenePrivate: CEDAR DEFINITIONS =
BEGIN
DisplayList Types
Databases, Scenes, Assemblies, and Lightsources
Scene: TYPE = SVSceneTypes.Scene;
Slice: TYPE = SVSceneTypes.Slice;
SliceList: TYPE = SVSceneTypes.SliceList;
LightSourceList: TYPE = SVModelTypes.LightSourceList; -- LIST OF LightSource;
LightSource: TYPE = SVModelTypes.LightSource;
Master Object Types
MasterObject: TYPE = SVSceneTypes.MasterObject;
MasterObjectList: TYPE = LIST OF MasterObject;
Delete Parts of the Scene Tree
In DisplayList3dImplB.mesa
TemporaryRemoveFromAssemblyList: PROC [a: Slice, al: SliceList, scene: Scene] RETURNS [newAl: SliceList, success: BOOL];
A simple list remove operation. Does not break up the assembly and its sons, nor does it delete their coordinate systems. This routine is called by MoveToFrontOfAssembly to splice an assembly out of an SliceList.
Find Scene Entities from their Names
In DisplayList3dImplA
FindMasterObjectAndNeighborsFromName: PROC [moName: Rope.ROPE, moList: MasterObjectList] RETURNS [beforeMo, mo, afterMo: MasterObjectList, found: BOOL];
FindLightSourceAndNeighborsFromName: PROC [lsName: Rope.ROPE, lsList: LightSourceList] RETURNS [beforeLS, ls, afterLS: LightSourceList];
LightSourceNotFound: SIGNAL;
Restructure the Tree
In DisplayList3dImplB
CopyNeededMasterObjects: PROC [assembly: Slice, fromScene, toScene: Scene] RETURNS [success: BOOL];
Other List Auxiliaries
In DisplayList3dImplB.mesa
RemoveDuplicateMOs: PROC [moList: MasterObjectList] RETURNS [uniqueList: MasterObjectList];
MoListMinusMoList: PROC [moList1, moList2: MasterObjectList] RETURNS [moList1MinusmoList2: MasterObjectList];
CopyMasterObjectList: PROC [moList: MasterObjectList] RETURNS [copy: MasterObjectList];
END.