예제 #1
0
        private static void CreateListMeshComplexFromUnity(List <GameObject> listGameObject, List <Mesh> listMesh, out List <MeshComplex> listMeshComplex, out List <Matrix4x4> listMeshComplexLocalToWorld)
        {
            listMeshComplex             = new List <CaronteSharp.MeshComplex>();
            listMeshComplexLocalToWorld = new List <Matrix4x4>();
            int nParentGameObjects = listGameObject.Count;

            for (int i = 0; i < nParentGameObjects; i++)
            {
                UnityEngine.Mesh un_mesh   = listMesh[i];
                GameObject       parent_go = listGameObject[i];

                CaronteSharp.MeshComplex car_mesh = new CaronteSharp.MeshComplex();
                car_mesh.Set(un_mesh);
                listMeshComplex.Add(car_mesh);

                Matrix4x4 m_Local_to_World = parent_go.transform.localToWorldMatrix;
                listMeshComplexLocalToWorld.Add(m_Local_to_World);
            }
        }
예제 #2
0
        public static void TransformListMesh(List <GameObject> listParentGO, List <UnityEngine.Mesh> listMesh_un, Matrix4x4 m_BoundsWorld_to_BoundsLocal, out List <CaronteSharp.MeshComplex> listMesh_car)
        {
            listMesh_car = new List <CaronteSharp.MeshComplex>();
            int numParentGameObjects = listParentGO.Count;

            for (int i = 0; i < numParentGameObjects; ++i)
            {
                UnityEngine.Mesh un_mesh   = listMesh_un[i];
                GameObject       parent_go = listParentGO[i];

                Matrix4x4 m_Local_to_World  = parent_go.transform.localToWorldMatrix;
                Matrix4x4 m_Local_to_Bounds = m_BoundsWorld_to_BoundsLocal * m_Local_to_World;

                UnityEngine.Mesh transformedMesh;
                CRGeometryUtils.CreateMeshTransformed(un_mesh, m_Local_to_Bounds, out transformedMesh);

                CaronteSharp.MeshComplex car_mesh = new CaronteSharp.MeshComplex();
                car_mesh.Set(transformedMesh);

                UnityEngine.Object.DestroyImmediate(transformedMesh);
                listMesh_car.Add(car_mesh);
            }
        }