예제 #1
0
 public static void Read(this VectorsReader reader, SnappedCylinder cylinder)
 {
     cylinder.BottomCenterResult = reader.ReadPoint3D();
     cylinder.AxisResult         = reader.ReadVector3D();
     cylinder.LengthResult       = reader.ReadValue();
     cylinder.RadiusResult       = Math.Abs(reader.ReadValue());
 }
예제 #2
0
 public static VectorsWriter Write(this VectorsWriter writer, SnappedCylinder cylinder)
 {
     return(writer
            .Write(cylinder.BottomCenterResult)
            .Write(cylinder.AxisResult)
            .Write(cylinder.LengthResult)
            .Write(cylinder.RadiusResult));
 }
예제 #3
0
 public static VariableVectorsWriter Write(this VariableVectorsWriter writer, SnappedCylinder cylinder)
 {
     return(writer
            .Write(cylinder.BottomCenter)
            .Write(cylinder.Axis)
            .Write(cylinder.Length)
            .Write(cylinder.Radius));
 }
예제 #4
0
        private Visual3D CreateCylinderView(SnappedCylinder cylinderData)
        {
            Contract.Requires(cylinderData != null);
            Contract.Ensures(Contract.Result <Visual3D>() != null);

            var topCircle = ShapeHelper.GenerateCircle(
                cylinderData.TopFeatureCurve.CenterResult,
                cylinderData.TopFeatureCurve.NormalResult,
                cylinderData.TopFeatureCurve.RadiusResult,
                50);
            var botCircle = ShapeHelper.GenerateCircle(
                cylinderData.BottomFeatureCurve.CenterResult,
                cylinderData.BottomFeatureCurve.NormalResult,
                cylinderData.BottomFeatureCurve.RadiusResult,
                50);

            return(CreateCylinderView(topCircle, botCircle, cylinderData));
        }