Exemple #1
0
    private void Initial()
    {
        particles = new List <GameObject>();
        opObjIf.SetGravity(bGravity);

        //initial OpObj & collision detection
        initialObj();
        initialCollision();

        copySize  = opObjIf.GetVertexNum() * 3;
        dataArray = new float[copySize];
        opObjAddr = new PHOpObjDesc(opObjIf.GetDescAddress());

        Time.fixedDeltaTime = 0.01f;

        pNum    = opObjAddr.assPsNum;
        gNum    = opObjAddr.assGrpNum;
        opPtcls = new PHOpParticleDesc[pNum];
        opGrps  = new PHOpGroupDesc[gNum];

        //initial local op particles and groups
        for (int pi = 0; pi < pNum; pi++)
        {
            opPtcls[pi] = new PHOpParticleDesc(opObjIf.GetOpParticle(pi).GetDescAddress());
        }
        for (int gi = 0; gi < pNum; gi++)
        {
            opGrps[gi] = new PHOpGroupDesc(opObjIf.GetOpGroup(gi).GetDescAddress());
        }

        for (int pi = 0; pi < pNum; pi++)
        {
            GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            sphere.SetActive(false);
            sphere.name = "Obj_" + objid + " Ptcl_" + pi;
            //sphere.tag = "OpParticle";
            float radius = opObjAddr.objAverRadius;
            sphere.transform.localScale = new Vector3(radius, radius, radius);

            sphere.transform.SetParent(gameObject.GetComponentInParent <PHSceneBehaviour> ().transform);
            particles.Add(sphere);
        }


        vNconst = vNum;
        gNconst = gNum;
        pNconst = pNum;

        print("obj: " + objid + " vNum: " + vNum + " pNum: " + pNum);
    }
Exemple #2
0
        static void test_array()
        {
            test_name("array");

            PHOpObjDesc descOpObj = new PHOpObjDesc();
            GRMeshFace  meshFace  = new GRMeshFace();

            for (int i = 0; i < 4; i++)
            {
                meshFace.indices[i] = 100 + i;
            }
            for (int i = 0; i < 4; i++)
            {
                System.Console.WriteLine("array<int>: expected: " + (100 + i) + " result: " + meshFace.indices[i]);
            }
            arraywrapper_int iarray = new arraywrapper_int(4);

            for (int i = 0; i < 4; i++)
            {
                meshFace.indices[i] = 200 + i;
            }
            string[]            strsrc = { "abc", "def", "gh", "jklm" };
            arraywrapper_char_p icharp = new arraywrapper_char_p(4);

            for (int i = 0; i < 4; i++)
            {
                icharp[i] = strsrc[i];
            }
            for (int i = 0; i < 4; i++)
            {
                put("array<char*>", strsrc[i], icharp[i]);
            }
            meshFace.indices = iarray;
            for (int i = 0; i < 4; i++)
            {
                System.Console.WriteLine("array<int>: expected: " + (200 + i) + " result: " + meshFace.indices[i]);
            }
            //Vec3i v3i = new Vec3i(1, 2, 3);
            //System.Console.WriteLine("array<int> alloc(3): result:   " + v3i);
            //v3i.alloc(2);
            //for (int i = 0; i < 2; i++) {
            //    v3i[i].x = 10 * (i + 1);
            //    v3i[i].y = 10 * (i + 1);
            //    v3i[i].z = 10 * (i + 1);
            //}
            //System.Console.WriteLine("                     expected: " + "((10, 10, 10), (20, 20, 20))");
            //System.Console.WriteLine("                     result:   " + v3i);

            CDConvexMeshDesc descMesh = new CDConvexMeshDesc();

            for (int x = 0; x < 10; x++)
            {
                for (int y = 0; y < 10; y++)
                {
                    for (int z = 0; z < 10; z++)
                    {
                        descMesh.vertices.push_back(new Vec3f(x, y, z));
                    }
                }
            }
            PHSdkIf        phSdk    = PHSdkIf.CreateSdk();
            CDConvexMeshIf mesh     = phSdk.CreateShape(CDConvexMeshIf.GetIfInfoStatic(), (CDConvexMeshDesc)descMesh) as CDConvexMeshIf;
            var            vertices = mesh.GetVertices();

            for (int i = 0; i < mesh.NVertex(); i++)
            {
                put_indent(2, vertices[i]);
            }
        }
        static void test_array()
        {
            test_name("array");

            PHOpObjDesc descOpObj = new PHOpObjDesc();

            /***
             * GRMeshFace meshFace = new GRMeshFace();
             * for (int i = 0; i < 4; i++) {
             *  meshFace.indices[i] = 100 + i;
             * }
             * for (int i = 0; i < 4; i++) {
             *  System.Console.WriteLine("array<int>: expected: " + (100 + i) + " result: " + meshFace.indices[i]);
             * }
             ***/
            arraywrapper_int iarray = new arraywrapper_int(4);

            /***
             * for (int i = 0; i < 4; i++) {
             *  meshFace.indices[i] = 200 + i;
             * }
             ***/
            string[]            strsrc = { "abc", "def", "gh", "jklm" };
            arraywrapper_char_p icharp = new arraywrapper_char_p(4);

            for (int i = 0; i < 4; i++)
            {
                icharp[i] = strsrc[i];
            }
            for (int i = 0; i < 4; i++)
            {
                put("array<char*>", strsrc[i], icharp[i]);
            }

            /***
             * meshFace.indices = iarray;
             * for (int i = 0; i < 4; i++) {
             *  System.Console.WriteLine("array<int>: expected: " + (200 + i) + " result: " + meshFace.indices[i]);
             * }
             ***/
            Vec3i v3i = new Vec3i(1, 2, 3);

            System.Console.WriteLine("array<int> alloc(3): result:   " + v3i);

            Vec3i[] v3ia = new Vec3i[3];
            for (int i = 0; i < 3; i++)
            {
                v3ia[i] = new Vec3i(10 * (i + 1), 10 * (i + 1), 10 * (i + 1));
            }
            string result = string.Format("(({0}, {1}, {2}), ({3}, {4}, {5}), ({6}, {7}, {8}))",
                                          v3ia[0][0], v3ia[0][1], v3ia[0][2], v3ia[1][0], v3ia[1][1], v3ia[1][2], v3ia[2][0], v3ia[2][1], v3ia[2][2]);

            put2("array<int> Vec3i[3]: ", "((10, 10, 10), (20, 20, 20), (30, 30, 30))", result);

            //CDConvexMeshDesc descMesh = new CDConvexMeshDesc();
            //for (int x = 0; x < 10; x++) {
            //    for (int y = 0; y < 10; y++) {
            //        for (int z = 0; z < 10; z++) {
            //            descMesh.vertices.push_back(new Vec3f(x, y, z));
            //        }
            //    }
            //}
            //PHSdkIf phSdk = PHSdkIf.CreateSdk();
            //CDConvexMeshIf mesh = phSdk.CreateShape(CDConvexMeshIf.GetIfInfoStatic(), (CDConvexMeshDesc)descMesh) as CDConvexMeshIf;
            //var vertices = mesh.GetVertices();
            //for (int i = 0; i < mesh.NVertex(); i++) {
            //    put_indent(2, vertices[i]);
            //}
        }
Exemple #4
0
 // -- DescStructオブジェクトを再構築する
 public override void ResetDescStruct()
 {
     desc = new PHOpObjDesc();
 }