private bool ChopModeGeometry(ChopRequest cr)
        {
            if ((Data.ChopGeometry == null) || !Data.ChopGeometry.HasMesh() || Data.NDesiredPieces <= 0)
            {
                return(false);
            }

            Matrix4x4 m_Local_to_World = Data.ChopGeometry.transform.localToWorldMatrix;

            UnityEngine.Mesh un_chopGeometry = Data.ChopGeometry.GetMesh();

            UnityEngine.Mesh transformedMesh;
            CRGeometryUtils.CreateMeshTransformed(un_chopGeometry, m_Local_to_World, out transformedMesh);

            CaronteSharp.MeshSimple car_chopGeometry = new CaronteSharp.MeshSimple();
            car_chopGeometry.Set(transformedMesh);
            Object.DestroyImmediate(transformedMesh);

            cr.nDesiredPieces_    = (uint)Data.NDesiredPieces;
            cr.meshFocusGeometry_ = car_chopGeometry;
            cr.focusMode_         = (PSBG_FOCUS_MODE)Data.FocusMode;
            cr.gridResolution_    = (uint)Data.GridResolution;
            cr.densityRate_       = Data.DensityRate;
            cr.transitionLength_  = Data.TransitionLength;
            cr.doExtrusionEffect_ = Data.DoExtrusionEffect;
            cr.doCoordinate_      = Data.DoCoordinate;

            return(true);
        }
Esempio n. 2
0
        public static void CreateMeshFromSimple(CaronteSharp.MeshSimple inputMesh, out UnityEngine.Mesh outputMesh)
        {
            outputMesh = new UnityEngine.Mesh();

            outputMesh.vertices  = inputMesh.arrPosition_;
            outputMesh.triangles = inputMesh.arrIndices_;

            outputMesh.RecalculateNormals();
            outputMesh.RecalculateBounds();

            outputMesh.Optimize();
        }