Пример #1
0
 public Mesh Split2d(Point3D raystart, Vector3D raydir, ESplitMode split_mode, ref Mesh target_mesh)
 {
     Face[] tosplit = Faces.ToArray();
     foreach (Face f in tosplit)
     {
         Face inside_face,outside_face;
         f.SplitByRay(raystart, raydir, out inside_face, out outside_face);
         if (split_mode == ESplitMode.KEEP_INSIDE)
         {
             if(outside_face != null)
                 TransferFaceTo(outside_face, target_mesh);
         }
         else if (split_mode == ESplitMode.KEEP_OUTSIDE)
         {
             if(inside_face != null)
                 TransferFaceTo(inside_face, target_mesh);
         }
     }
     return this;
 }
Пример #2
0
        private void SetSplitMode(ESplitMode pMode)
        {
            CParameterSetter.SetParameter(ESettings.currentSplitMode, (int)pMode);

            bool isManual = pMode == ESplitMode.Manual;

            form.trackBarRangeXmin.Enabled = isManual;
            form.trackBarRangeXmax.Enabled = isManual;
            form.trackBarRangeYmin.Enabled = isManual;
            form.trackBarRangeYmax.Enabled = isManual;

            form.textRangeXmin.Enabled = isManual;
            form.textRangeXmax.Enabled = isManual;
            form.textRangeYmin.Enabled = isManual;
            form.textRangeYmax.Enabled = isManual;

            bool isShapefile = pMode == ESplitMode.Shapefile;

            form.textShapefile.Enabled = isShapefile;
            form.btnShapefile.Enabled  = isShapefile;
        }
Пример #3
0
 public Mesh Split2d(Point3D raystart, Vector3D raydir, ESplitMode split_mode, ref Mesh target_mesh)
 {
     Face[] tosplit = Faces.ToArray();
     foreach (Face f in tosplit)
     {
         Face inside_face, outside_face;
         f.SplitByRay(raystart, raydir, out inside_face, out outside_face);
         if (split_mode == ESplitMode.KEEP_INSIDE)
         {
             if (outside_face != null)
             {
                 TransferFaceTo(outside_face, target_mesh);
             }
         }
         else if (split_mode == ESplitMode.KEEP_OUTSIDE)
         {
             if (inside_face != null)
             {
                 TransferFaceTo(inside_face, target_mesh);
             }
         }
     }
     return(this);
 }