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); }
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(); }