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); }
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]); //} }
// -- DescStructオブジェクトを再構築する public override void ResetDescStruct() { desc = new PHOpObjDesc(); }