'From Squeak3.4alpha of ''11 November 2002'' [latest update: #5109] on 17 November 2002 at 12:22:17 am'! "Change Set: B3DRefactorAndDie Date: 16 November 2002 Author: Andreas Raab This CS sets the ground for a clean removal of everything 3D related. To remove it entirely evaluate what's in the post script of this change set"! !HaloMorph methodsFor: 'handles' stamp: 'ar 11/16/2002 19:24'! addPoohHandle: handleSpec (innerTarget isKindOf: (Smalltalk at: #WonderlandCameraMorph ifAbsent:[nil])) ifTrue: [self addHandle: handleSpec on: #mouseDown send: #strokeMode to: innerTarget] ! ! !SketchMorph methodsFor: 'accessing' stamp: 'ar 11/16/2002 19:22'! useInterpolation ^(self valueOfProperty: #useInterpolation ifAbsent:[false]) and:[Smalltalk includesKey: #B3DRenderEngine]! ! !SystemDictionary methodsFor: 'shrinking' stamp: 'ar 11/16/2002 19:32'! discard3D "Smalltalk discard3D" "Discard 3D Support." self discardWonderland. Smalltalk removeKey: #B3DEngineConstants ifAbsent: []. Smalltalk at: #InterpolatingImageMorph ifPresent:[:cls| cls removeFromSystem]. SystemOrganization removeCategoriesMatching: 'Graphics-FXBlt'. SystemOrganization removeCategoriesMatching: 'Graphics-External'. SystemOrganization removeCategoriesMatching: 'Balloon3D-*'. SystemOrganization removeCategoriesMatching: 'Graphics-Tools-*'. Color removeSelector: #asB3DColor. Form removeSelector: #asTexture. Morph removeSelector: #asTexture. Morph removeSelector: #mapPrimitiveVertex:. Morph removeSelector: #installAsWonderlandTextureOn:. FileList removeSelector: #open3DSFile. Point removeSelector: #@. Smalltalk at: #BalloonCanvas ifPresent:[:cc| cc removeSelector: #render:]. Stream removeSelector: #asVRMLStream. SketchMorph removeSelector: #drawInterpolatedImage:on:. SketchMorph removeSelector: #generateInterpolatedForm. Smalltalk at: #B3DEnginePlugin ifPresent:[:cls| cls withAllSubclassesDo:[:each| each removeFromSystem]. ]. DataStream initialize.! ! !SystemDictionary methodsFor: 'shrinking' stamp: 'ar 11/16/2002 19:24'! discardWonderland "Smalltalk discardWonderland" "Discard 3D Support." Smalltalk at: #Wonderland ifPresent:[:cls| cls removeActorPrototypesFromSystem]. Smalltalk removeKey: #WonderlandConstants ifAbsent: []. Smalltalk removeKey: #AliceConstants ifAbsent: []. SystemOrganization removeCategoriesMatching: 'Balloon3D-Wonderland*'. SystemOrganization removeCategoriesMatching: 'Balloon3D-Alice*'. SystemOrganization removeCategoriesMatching: 'Balloon3D-Pooh*'. SystemOrganization removeCategoriesMatching: 'Balloon3D-UserObjects'. Smalltalk at: #VRMLWonderlandBuilder ifPresent:[:cls| cls removeFromSystem]. ! ! !Wonderland class methodsFor: 'actor prototype mgmt' stamp: 'ar 11/16/2002 19:20'! removeActorPrototypesFromSystem "Clean out all the actor prototypes - this involves removing those classes from the Smalltalk dictionary" WonderlandActor withAllSubclassesDo:[:each| each isSystemDefined ifFalse:[each removeFromSystem]. ]. ActorPrototypeClasses _ Dictionary new. ! ! FileList removeSelector: #openModelintoAlice! "Postscript: Dump it all (oh yeah)" "get rid of the Squeak in 3D project" (Project named: 'Squeak in 3D') ifNotNilDo:[:prj| Project deletingProject: prj]. "Dump everything" Smalltalk discard3D. "Dump the dumpers" Smalltalk removeSelector: #discardWonderland. Smalltalk removeSelector: #discard3D. "Flush MCRs" MethodChangeRecord allInstancesDo:[:mcr| mcr noteNewMethod: nil]. "And get all the memory back" Smalltalk garbageCollect. !