コード例 #1
0
        public override List <Meshable> ExecuteShape(ShapeObject inSo)
        {
            inSo.PivotTurn(2);
            float          w         = inSo.Size[0];
            List <Vector3> stairLocs = new List <Vector3>();

            if (w <= 30)
            {
                stairLocs.Add(inSo.Position);
                Vector3 v = inSo.Vects[0];
                v *= (w - stairW);
                stairLocs.Add(inSo.Position + v);
            }
            else if (w < 45)
            {
                stairLocs.Add(inSo.Position);
                Vector3 v = inSo.Vects[0];
                v *= 30 - stairW;
                stairLocs.Add(inSo.Position + v);
            }
            else if (w < 60)
            {
                float   d1 = w / 2 - 15;
                float   d2 = w - d1;
                Vector3 v1 = inSo.Vects[0] * d1;
                Vector3 v2 = inSo.Vects[0] * d2;
                stairLocs.Add(inSo.Position + v1);
                stairLocs.Add(inSo.Position + v2);
            }
            else
            {
                stairLocs.Add(inSo.Position);
                Vector3 v1 = inSo.Vects[0] * (30 - stairW);
                Vector3 v2 = inSo.Vects[0] * (60 - stairW);
                stairLocs.Add(inSo.Position + v1);
                stairLocs.Add(inSo.Position + v2);
            }

            List <Meshable> outs  = new List <Meshable>();
            float           coreH = inSo.Size[1] + 3;

            foreach (Vector3 v in stairLocs)
            {
                outs.Add(CreateBox(v, new Vector3(stairW, coreH, stairH), inSo.Vects));
            }

            AssignNames(outs);
            inSo.meshable.name = inputs.names[0];
            outs.Add(inSo.meshable);
            return(outs);
        }
コード例 #2
0
ファイル: TestPivot.cs プロジェクト: ShaperGZ/SGBase
    // Use this for initialization
    void Start()
    {
        Vector3[]   pts = initShape1();
        Polygon     pg  = new Polygon(pts);
        ShapeObject pgo = ShapeObject.CreatePolygon(pts);
        Form        f   = pg.ExtrudeToForm(new Vector3(0, 40, 0));

        ShapeObject rf = ShapeObject.CreateMeshable(f);

        rf.name = "rf";

        //ShapeObject so = ShapeObject.CreateMeshable((Meshable)f.Clone());
        ShapeObject so = rf.Clone();

        //so.PivotMirror(0);
        so.PivotTurn(2);
    }