コード例 #1
0
ファイル: CSTest.cs プロジェクト: tirinox/Rays
    static public void Load(Rays._3D.Scene3D s)
    {
        string sf = "";
        var    dr = Utils.InputBox("What?", "Ololo", ref sf);

        s.BeginFigure();
        s.PlaneType  = PlaneType.Normal;
        s.InnerDelta = 0;


        Tube3D tube = new Tube3D();

        tube.Rays[0].Begin = new Vector3(-10, -100, 20);
        tube.Rays[1].Begin = new Vector3(20, -100, -40);
        tube.Rays[2].Begin = new Vector3(20, -100, 20);

        tube.Rays[0].End = new Vector3(-10, -10, 20);
        tube.Rays[1].End = new Vector3(20, -10, -40);
        tube.Rays[2].End = new Vector3(20, -10, 20);

        tube.Rayize();

        s.InitialRays.Add(tube);

        s.InnerN = 3.5;


        s.EndFigure();
        //	s.Figs[0].Rotate(-10, 'x');
        s.Figs[0].Transpose(0, -40, 0);
    }
コード例 #2
0
    static public void InitRays(Vector3 Pos, int NumSec, double A)
    {
        for (int i = 0; i < NumSec; ++i)
        {
            for (int j = 0; j < NumSec; ++j)
            {
                if (Debug)
                {
                    if (i != 0 || j != 7)
                    {
                        continue;
                    }
                }
                double z1 = (2.0 * i - NumSec) / NumSec * A;
                double y1 = (2.0 * j - NumSec) / NumSec * A;
                double z2 = (2.0 * (i + 1) - NumSec) / NumSec * A;
                double y2 = (2.0 * (j + 1) - NumSec) / NumSec * A;

                Tube3D tube = NewTube(Pos);
                tube.Rays[0].Begin.Z += z1;
                tube.Rays[1].Begin.Z += z2;
                tube.Rays[2].Begin.Z += z1;
                tube.Rays[0].Begin.Y += y1;
                tube.Rays[1].Begin.Y += y1;
                tube.Rays[2].Begin.Y += y2;
                tube.Rays[0].End.Z   += z1;
                tube.Rays[1].End.Z   += z2;
                tube.Rays[2].End.Z   += z1;
                tube.Rays[0].End.Y   += y1;
                tube.Rays[1].End.Y   += y1;
                tube.Rays[2].End.Y   += y2;
                ss.InitialRays.Add(tube);

                /*Tube3D */ tube      = NewTube(Pos);
                tube.Rays[0].Begin.Z += z2;
                tube.Rays[1].Begin.Z += z1;
                tube.Rays[2].Begin.Z += z2;
                tube.Rays[0].Begin.Y += y1;
                tube.Rays[1].Begin.Y += y2;
                tube.Rays[2].Begin.Y += y2;
                tube.Rays[0].End.Z   += z2;
                tube.Rays[1].End.Z   += z1;
                tube.Rays[2].End.Z   += z2;
                tube.Rays[0].End.Y   += y1;
                tube.Rays[1].End.Y   += y2;
                tube.Rays[2].End.Y   += y2;
                if (!Debug)
                {
                    ss.InitialRays.Add(tube);
                }
            }
        }
    }
コード例 #3
0
    static public Tube3D NewTube(Vector3 Pos)
    {
        Tube3D tube = new Tube3D();

        for (int i = 0; i < 3; ++i)
        {
            tube.Rays[i].Begin  = Pos;
            tube.Rays[i].End    = Pos;
            tube.Rays[i].End.X += 1;
        }
        tube.Rayize();

        return(tube);
    }
コード例 #4
0
    static public void Load(Rays._3D.Scene3D s)
    {
        s.BeginFigure();


        Model model = new ThreeDSFile(@"SampleScripts\12column-model-3d.3DS").ThreeDSModel;

        foreach (Entity e in model.Entities)
        {
            foreach (Triangle t in e.indices)
            {
                s.ModelAdd(
                    new Vector3[3] {
                    new Vector3(e.vertices[t.vertex1].X, e.vertices[t.vertex1].Y, e.vertices[t.vertex1].Z),
                    new Vector3(e.vertices[t.vertex2].X, e.vertices[t.vertex2].Y, e.vertices[t.vertex2].Z),
                    new Vector3(e.vertices[t.vertex3].X, e.vertices[t.vertex3].Y, e.vertices[t.vertex3].Z)
                },
                    new Vector3[3] {
                    new Vector3(e.normals[t.vertex1].X, e.normals[t.vertex1].Y, e.normals[t.vertex1].Z),
                    new Vector3(e.normals[t.vertex2].X, e.normals[t.vertex2].Y, e.normals[t.vertex2].Z),
                    new Vector3(e.normals[t.vertex3].X, e.normals[t.vertex3].Y, e.normals[t.vertex3].Z)
                });
            }
        }
        s.EndFigure();
        s.Figs[0].Rotate1(Math.PI / 2, 'x');
        s.Figs[0].Transpose1(new Vector3(0, 0, 0));

        Tube3D tube = new Tube3D();

        tube.Rays[0].Begin = new Vector3(3, -100, 2);
        tube.Rays[1].Begin = new Vector3(20, -100, 2);
        tube.Rays[2].Begin = new Vector3(1, -100, 20);

        tube.Rays[0].End = new Vector3(3, -11, 2);
        tube.Rays[1].End = new Vector3(20, -11, 2);
        tube.Rays[2].End = new Vector3(1, -11, 20);

        tube.Rayize();

        s.InnerN = 1.5;

        s.InitialRays.Add(tube);

        /*s.Add(-50, 0, -50, 50, 10, -50, 50, 20, 50);
         * s.Add(-50, 0, -50, 50, 20, 50, -50, 10, 50);
         */
    }
コード例 #5
0
ファイル: Sample.cs プロジェクト: tirinox/Rays
    static public void Load(Rays._3D.Scene3D s)
    {
        s.BeginFigure();
        s.PlaneType  = PlaneType.Normal;
        s.InnerDelta = 0;


        Tube3D tube = new Tube3D();

        tube.Rays[0].Begin = new Vector3(-10, -100, 20);
        tube.Rays[1].Begin = new Vector3(20, -100, -40);
        tube.Rays[2].Begin = new Vector3(20, -100, 20);

        tube.Rays[0].End = new Vector3(-10, -10, 20);
        tube.Rays[1].End = new Vector3(20, -10, -40);
        tube.Rays[2].End = new Vector3(20, -10, 20);

        tube.Rayize();



        s.InitialRays.Add(tube);

        //s.Add(-50, 0, -50, 50, 10, -50, 50, 20, 50);
        //s.Add(-45, 0, -45, 55, 20, 55, -45, 10, 55);
        s.InnerN = 3.5;

        /*AddQuad(s,
         *      new Vector3(-10, -50, -10),
         *      new Vector3(-10, -50, 10),
         *      new Vector3(10, -50, -10),
         *      new Vector3(10, -50, 10));*/

        double mn = -100, mx = 100;

        //	s.Add( RD(mn, mx), 0, RD(mn, mx), RD(mn, mx), 0, RD(mn, mx), RD(mn, mx), 0, RD(mn, mx));
        s.Add(-10, 0, 20, 20, 0, -40, 30, 0, 30);

        s.EndFigure();
        //	s.Figs[0].Rotate1(-10, 'x');
        s.Figs[0].Transpose1(0, -40, 0);
    }