//Sets the components of the radii of all corners to a Vector3
 public void SetCornerRadiiAll(Vector3 radius)
 {
     cornerRadiusMode = CornerRadiusEditMode.Advanced;
     for (int i = 0; i < corners.Length; i++)
     {
         corners[i].axleRadii = radius;
     }
 }
 //Sets the components of the radius offsets of all corners to a Vector3
 public void SetCornerRadiusOffsetsAll(Vector3 offset)
 {
     cornerOffsetMode = CornerRadiusEditMode.Advanced;
     for (int i = 0; i < corners.Length; i++)
     {
         corners[i].radiusOffsets = offset;
     }
 }
 //Sets the radius offsets of all corners to the value
 public void SetCornerRadiusOffsetsAll(float offset)
 {
     cornerOffsetMode = CornerRadiusEditMode.Uniform;
     for (int i = 0; i < corners.Length; i++)
     {
         corners[i].radiusOffsets = Vector3.one * offset;
     }
 }
 //Sets the radii of all corners to the value
 public void SetCornerRadiiAll(float radius)
 {
     cornerRadiusMode = CornerRadiusEditMode.Uniform;
     for (int i = 0; i < corners.Length; i++)
     {
         corners[i].axleRadii = Vector3.one * radius;
     }
 }
        //Copies properties from another GeneratorProps instance
        //If copyPreset is true, it will also copy the linked preset reference from the other instance
        public void CopyProperties(GeneratorProps gp, bool copyPreset)
        {
            if (copyPreset)
            {
                linkedPreset = gp.linkedPreset;
            }

            meshAssetPath      = gp.meshAssetPath;
            cornerPositionMode = gp.cornerPositionMode;
            cornerRadiusMode   = gp.cornerRadiusMode;
            cornerOffsetMode   = gp.cornerOffsetMode;
            cornerDetailMode   = gp.cornerDetailMode;
            boxSize            = gp.boxSize;
            boxOffset          = gp.boxOffset;
            boxSidesPos        = gp.boxSidesPos;
            boxSidesNeg        = gp.boxSidesNeg;
            for (int i = 0; i < corners.Length; i++)
            {
                corners[i] = new ColliderCorner(gp.corners[i]);
            }

            for (int i = 0; i < cornerDetails.Length; i++)
            {
                cornerDetails[i] = gp.cornerDetails[i];
            }

            topSegments             = gp.topSegments;
            bottomSegments          = gp.bottomSegments;
            XYDetail                = gp.XYDetail;
            YZDetail                = gp.YZDetail;
            XZDetail                = gp.XZDetail;
            detailSmoothness        = gp.detailSmoothness;
            stripDistribution1      = gp.stripDistribution1;
            stripDistribution2      = gp.stripDistribution2;
            bypassPolyTest          = gp.bypassPolyTest;
            polyTestMode            = gp.polyTestMode;
            detailReduction         = gp.detailReduction;
            detailReductionAttempts = gp.detailReductionAttempts;
            boxedCorners            = gp.boxedCorners;
            hooks = new DeformHook[gp.hooks.Length];

            for (int i = 0; i < hooks.Length; i++)
            {
                hooks[i] = new DeformHook(gp.hooks[i]);
            }
        }
 //Sets the components of the radius offset of a corner to a Vector3
 public void SetCornerRadiusOffset(ColliderCorner.CornerId corner, Vector3 offset)
 {
     cornerOffsetMode = CornerRadiusEditMode.Advanced;
     GetCornerAtLocation(corner).radiusOffsets = offset;
 }
 //Sets the radius offset of a corner to the value
 public void SetCornerRadiusOffset(ColliderCorner.CornerId corner, float offset)
 {
     cornerOffsetMode = CornerRadiusEditMode.UniformIndividual;
     GetCornerAtLocation(corner).radiusOffsets = Vector3.one * offset;
 }
 //Sets the components of the radius of a corner to a Vector3
 public void SetCornerRadius(ColliderCorner.CornerId corner, Vector3 radius)
 {
     GetCornerAtLocation(corner).axleRadii = radius;
     cornerRadiusMode = CornerRadiusEditMode.Advanced;
 }
 //Sets the radius of a corner with the given location identifier
 public void SetCornerRadius(ColliderCorner.CornerId corner, float radius)
 {
     GetCornerAtLocation(corner).axleRadii = Vector3.one * radius;
     cornerRadiusMode = CornerRadiusEditMode.UniformIndividual;
 }