// you can override this to modify behavior. Note that this default // implementation currently uses some internal members for the relative-xform case virtual protected ITransformWrapper InitializeTransformWrapper(SceneObject useSO, FrameType eFrame) { if (frameSourceSO != null) { internalXFormSO = new TransientXFormSO(); internalXFormSO.Create(); parentScene.AddSceneObject(internalXFormSO); internalXFormSO.ConnectTarget(frameSourceSO, useSO); return(new PassThroughWrapper(internalXFormSO)); } else if (eFrame == FrameType.LocalFrame) { return(new PassThroughWrapper(useSO)); } else { return(new SceneFrameWrapper(parentScene, useSO)); } }