public void InitializeSocket(SocketSO so) { if (leg == null || trimline == null) { DebugUtil.Log(2, "OrthogenDM.InitializeSocket: must have created leg and trimline first!"); } // align frame w/ leg so.SetLocalFrame(leg.RectifiedSO.GetLocalFrame(CoordSpace.SceneCoords), CoordSpace.SceneCoords); socket = new SocketModel(so, leg, trimline, SocketModel.ModelModes.Socket); socket.OnSocketUpdated += OG.notifySocketUpdated; OnDataModelModified?.Invoke(this, EventArgs.Empty); }
/// <summary> /// initialize SocketModel /// </summary> public static void AddSocket() { var M = OG.Model; SocketSO so = new SocketSO(); so.Create(new DMesh3(), OrthogenMaterials.SocketMaterial); so.Name = "Socket"; M.Scene.AddSceneObject(so, false); OG.Model.InitializeSocket(so); // move trimline to goemetry layer so that it is clipped by socket (?) OG.TrimLine.SetLayer(FPlatform.GeometryLayer); //so.AssignSOMaterial(OrthogenMaterials.LegMaterial); //so.SetLayer(FPlatform.WidgetOverlayLayer); }