示例#1
0
        public static Point3D FindCoincident3DPoint(PrimitiveCurve[] curves)
        {
            Point3D[][] EndPoints = new Point3D[2][];
            for (int count = 0; count < 2; count++)
            {
                EndPoints[count] = new Point3D[2];
            }
            EnhancedPrimitiveCurve epc = (EnhancedPrimitiveCurve)curves[0];

            EndPoints[0][0] = epc.Points3D[0];
            EndPoints[0][1] = epc.Points3D[1];
            epc             = (EnhancedPrimitiveCurve)curves[1];
            EndPoints[1][0] = epc.Points3D[0];
            EndPoints[1][1] = epc.Points3D[1];
            Point3D CP = Point3DCompareReturn(EndPoints[0], EndPoints[1]);

            return(CP);
        }
示例#2
0
        public override void UpdateCurvesGeometry()
        {
            //Now comes the tedious job to draw the feature curves of the cuboid
            //Define the vertices of the cube centered at the center of the coordinate system
            Point3D A  = new Point3D(-0.5 * Width, 0.5 * Height, 0.5 * Depth);
            Point3D B  = new Point3D(0.5 * Width, 0.5 * Height, 0.5 * Depth);
            Point3D C  = new Point3D(0.5 * Width, -0.5 * Height, 0.5 * Depth);
            Point3D Dc = new Point3D(-0.5 * Width, -0.5 * Height, 0.5 * Depth);
            Point3D E  = new Point3D(-0.5 * Width, 0.5 * Height, -0.5 * Depth);
            Point3D F  = new Point3D(0.5 * Width, 0.5 * Height, -0.5 * Depth);
            Point3D G  = new Point3D(0.5 * Width, -0.5 * Height, -0.5 * Depth);
            Point3D Hc = new Point3D(-0.5 * Width, -0.5 * Height, -0.5 * Depth);

            Point3D[]  Pnts = new Point3D[] { A, B, C, Dc, E, F, G, Hc };
            double[][] P    = FindTransformationMatrix(W, H, D);
            TransformPoints(Pnts, Center, P);

            A  = Pnts[0];
            B  = Pnts[1];
            C  = Pnts[2];
            Dc = Pnts[3];
            E  = Pnts[4];
            F  = Pnts[5];
            G  = Pnts[6];
            Hc = Pnts[7];

            FeatureCurves[0].Points  = ShapeHelper.ProjectCurve(A, E);
            FeatureCurves[1].Points  = ShapeHelper.ProjectCurve(A, B);
            FeatureCurves[2].Points  = ShapeHelper.ProjectCurve(B, F);
            FeatureCurves[3].Points  = ShapeHelper.ProjectCurve(E, F);
            FeatureCurves[4].Points  = ShapeHelper.ProjectCurve(Dc, Hc);
            FeatureCurves[5].Points  = ShapeHelper.ProjectCurve(C, Dc);
            FeatureCurves[6].Points  = ShapeHelper.ProjectCurve(C, G);
            FeatureCurves[7].Points  = ShapeHelper.ProjectCurve(G, Hc);
            FeatureCurves[8].Points  = ShapeHelper.ProjectCurve(A, Dc);
            FeatureCurves[9].Points  = ShapeHelper.ProjectCurve(B, C);
            FeatureCurves[10].Points = ShapeHelper.ProjectCurve(F, G);
            FeatureCurves[11].Points = ShapeHelper.ProjectCurve(E, Hc);
            EnhancedPrimitiveCurve ec = (EnhancedPrimitiveCurve)FeatureCurves[0];

            ec.Points3D = new Point3D[] { A, E };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[1];
            ec.Points3D = new Point3D[] { A, B };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[2];
            ec.Points3D = new Point3D[] { B, F };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[3];
            ec.Points3D = new Point3D[] { E, F };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[4];
            ec.Points3D = new Point3D[] { Dc, Hc };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[5];
            ec.Points3D = new Point3D[] { C, Dc };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[6];
            ec.Points3D = new Point3D[] { C, G };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[7];
            ec.Points3D = new Point3D[] { G, Hc };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[8];
            ec.Points3D = new Point3D[] { A, Dc };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[9];
            ec.Points3D = new Point3D[] { B, C };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[10];
            ec.Points3D = new Point3D[] { F, G };
            ec          = (EnhancedPrimitiveCurve)FeatureCurves[11];
            ec.Points3D = new Point3D[] { E, Hc };
        }