Ejemplo n.º 1
0
        private List <JSIAppPolyline3D> calcProjectedPtCurve3Ds(
            List <JSIAppPolyline2D> ptCurve2Ds, Plane cardPlane, Camera camera)
        {
            List <JSIAppPolyline3D> ptCurve3Ds =
                new List <JSIAppPolyline3D>();

            foreach (JSIAppPolyline2D ptCurve2D in ptCurve2Ds)
            {
                JSIPolyline2D  polyline2D = (JSIPolyline2D)ptCurve2D.getGeom2D();
                List <Vector3> pt3Ds      = new List <Vector3>();
                foreach (Vector2 pt2D in polyline2D.getPts())
                {
                    Ray   ptRay  = camera.ScreenPointToRay(pt2D);
                    float ptDist = float.NaN;
                    cardPlane.Raycast(ptRay, out ptDist);
                    Vector3 pt3D = ptRay.GetPoint(ptDist);
                    pt3Ds.Add(pt3D);
                }

                JSIAppPolyline3D ptCurve3D = new JSIAppPolyline3D(
                    "PtCurve3D", pt3Ds, 0.01f, Color.black);
                ptCurve3Ds.Add(ptCurve3D);
            }
            return(ptCurve3Ds);
        }
Ejemplo n.º 2
0
        private List <JSIAppPolyline3D> createLocalPtCurve3Ds(
            List <JSIAppPolyline3D> ptCurve3Ds, Vector3 cardCtr,
            Vector3 cardXDir, Vector3 cardYDir, Vector3 cardZDir)
        {
            List <JSIAppPolyline3D> localPtCurve3Ds =
                new List <JSIAppPolyline3D>();

            foreach (JSIAppPolyline3D ptCurve3D in ptCurve3Ds)
            {
                JSIPolyline3D  polyline3D = (JSIPolyline3D)ptCurve3D.getGeom3D();
                List <Vector3> localPt3Ds = new List <Vector3>();
                foreach (Vector3 pt3D in polyline3D.getPts())
                {
                    Vector3 dif       = pt3D - cardCtr;
                    float   x         = Vector3.Dot(dif, cardXDir);
                    float   y         = Vector3.Dot(dif, cardYDir);
                    float   z         = Vector3.Dot(dif, cardZDir);
                    Vector3 localPt3D = new Vector3(x, y, z);
                    localPt3Ds.Add(localPt3D);
                }
                JSIAppPolyline3D localPtCurve3D = new JSIAppPolyline3D(
                    "PtCurve3D", localPt3Ds, 0.01f, Color.black);
                localPtCurve3Ds.Add(localPtCurve3D);
            }
            return(localPtCurve3Ds);
        }
Ejemplo n.º 3
0
 //constructor
 public JSIGrid() : base("Grid")
 {
     //x-direction lines
     for (int i = 0; i < JSIGrid.NUM_X_GRID_LINES; i++)
     {
         List <Vector3> pts = new List <Vector3>();
         pts.Add(new Vector3(
                     -JSIGrid.LENGTH / 2.0f, 0.0f, (float)i - 2.0f));
         pts.Add(new Vector3(
                     +JSIGrid.LENGTH / 2.0f, 0.0f, (float)i - 2.0f));
         JSIAppPolyline3D line = new JSIAppPolyline3D("XGridLine", pts,
                                                      JSIGrid.WIDTH, JSIGrid.COLOR);
         this.addChild(line);
     }
     //z-direction lines
     for (int i = 0; i < JSIGrid.NUM_Z_GRID_LINES; i++)
     {
         List <Vector3> pts = new List <Vector3>();
         pts.Add(new Vector3(
                     (float)i - 2.0f, 0.0f, -JSIGrid.LENGTH / 2.0f));
         pts.Add(new Vector3(
                     (float)i - 2.0f, 0.0f, +JSIGrid.LENGTH / 2.0f));
         JSIAppPolyline3D line = new JSIAppPolyline3D("ZGridLine", pts,
                                                      JSIGrid.WIDTH, JSIGrid.COLOR);
         this.addChild(line);
     }
 }