示例#1
0
        private void Mesh_OnTransformModified(SceneObject so)
        {
            CC.InvalidateSlicing();

            slice_gizmo_valid = false;

            // set dirty flag on scene
            CCActions.SetCurrentSceneModified();
        }
示例#2
0
 void setting_modified(bool invalidate_slicing, bool invalidate_paths)
 {
     if (invalidate_slicing)
     {
         CC.InvalidateSlicing();
     }
     else if (invalidate_paths)
     {
         CC.InvalidateToolPaths();
     }
     bValueModified = true;
     OnSettingModified?.Invoke(this);
 }
示例#3
0
        private void Mesh_OnMeshModified(DMeshSO so)
        {
            CC.InvalidateSlicing();

            if (so is PrintMeshSO)
            {
                update_mesh_material(so as PrintMeshSO);
            }

            slice_gizmo_valid = false;

            // set dirty flag on scene
            CCActions.SetCurrentSceneModified();
        }
示例#4
0
        void setting_modified(bool invalidate_slicing, bool invalidate_paths)
        {
            WriteToCurrentSettings();   // [RMS] need to do this so that settings are reflected in
                                        //   slicer. To avoid, we need to know to grab from CC.ObjSettings instead...

            if (invalidate_slicing)
            {
                CC.InvalidateSlicing();
            }
            else if (invalidate_paths)
            {
                CC.InvalidateToolPaths();
            }
            bValueModified = true;
            OnSettingModified?.Invoke(this);
        }
示例#5
0
        public void InvalidateSlicing()
        {
            cancel_active_compute();

            lock (data_lock) {
                SlicerMeshes    = null;
                SliceSet        = null;
                SliceStackValid = false;
            }

            discard_slice_polylines();

            CC.InvalidateToolPaths();

            if (SlicingInvalidatedEvent != null)
            {
                SlicingInvalidatedEvent();
            }
        }
示例#6
0
        void update_pos(Vector3f pos, double time)
        {
            Frame3f f = PrintHeadSO.GetLocalFrame(CoordSpace.SceneCoords);

            f.Origin = pos + PrintHeadOffset * Vector3f.AxisY;
            PrintHeadSO.SetLocalFrame(f, CoordSpace.SceneCoords);

            Vector3f worldNozzlePt = PrintHeadSO.GetScene().ToWorldP(f.Origin);
            Vector3f worldPathPt   = PrintHeadSO.GetScene().ToWorldP(pos);

            LaserGO.SetStart(worldNozzlePt);
            LaserGO.SetEnd(worldPathPt);

            if (emitting)
            {
                CC.SetLayerFromZ(pos.y);
            }

            update_heat_display(pos, time);
        }