private void Start() { _gm = GameManager.instance; _separation = 0.1f; _meshCutter = new MeshCutter(256); _playerMovement = PlayerMovement.instance; _soundManager = SoundManager.instance; }
// Use this for initialization void Start() { dragging = false; // Initialize a somewhat big array so that it doesn't resize hopefully? meshCutter = new MeshCutter(256); line = GetComponent <LineRenderer>(); line.positionCount = 0; }
private void SlideCut(Vector3 point1, Vector3 point2) { var condition = point2.y > point1.y; MeshCutter.CutMesh(MainManager.FigureController.MeshFilter, new Plane(condition ? point1 : point2, condition ? point2 : point1, new Vector3(point2.x, point2.y, point2.z + 1))); MainManager.FigureController.UpdateMeshRenderer(); }
private void Start() { plane = new Plane(new Vector3(0, 1, 0), Vector3.zero); PrimitivesPro.MeshUtils.SetGameObjectActive(OriginalObject.gameObject, false); UnityEngine.Random.InitState(System.DateTime.Now.Millisecond); cutter = new MeshCutter(); }
private void Start() { plane = new Plane(new Vector3(0, 1, 0), Vector3.zero); PrimitivesPro.MeshUtils.SetGameObjectActive(OriginalObject.gameObject, false); UnityEngine.Random.seed = System.DateTime.Now.Millisecond; cutter = new MeshCutter(); }
private void Start() { foreach (var obj in OriginalObjects) { PrimitivesPro.MeshUtils.SetGameObjectActive(obj.gameObject, false); } OriginalObject = OriginalObjects[objectIdx]; plane = new Plane(new Vector3(0, 1, 0), Vector3.zero); UnityEngine.Random.seed = System.DateTime.Now.Millisecond; cutter = new MeshCutter(); }
private void Start() { foreach (var obj in OriginalObjects) { PrimitivesPro.MeshUtils.SetGameObjectActive(obj.gameObject, false); } OriginalObject = OriginalObjects[objectIdx]; plane = new Plane(new Vector3(0, 1, 0), Vector3.zero); UnityEngine.Random.seed = System.DateTime.Now.Millisecond; cutter = new MeshCutter(); }
// Token: 0x060041FE RID: 16894 RVA: 0x0014F924 File Offset: 0x0014DD24 public void Cut() { MeshCutter meshCutter = new MeshCutter(); PrimitivesPro.Utils.Plane plane = this.ComputePlane(); GameObject gameObject; GameObject gameObject2; ContourData contourData; base.GenerationTimeMS = meshCutter.Cut(this.cuttingObject, plane, this.triangulateHoles, this.deleteOriginal, this.crossSection, out gameObject, out gameObject2, out contourData); if (gameObject != null) { gameObject.AddComponent <DefaultObject>(); gameObject2.AddComponent <DefaultObject>(); } }
private void Update() { if (!Input.GetMouseButtonDown(0) || !Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit, 50f)) { return; } var hitFilter = hit.transform.GetComponent <MeshFilter>(); if (!hitFilter) { return; } var hitFilterRigidbody = hit.transform.GetComponent <Rigidbody>(); Destroy(hitFilter.GetComponent <Collider>()); // destroy collider! cutPlane.transform.position = hit.point; var cutFilters = MeshCutter.CutMeshFilter(hitFilter, cutPlane); float multiplier = -1; foreach (var cutFilter in cutFilters) { cutFilter.gameObject.AddComponent <BoxCollider>().isTrigger = true; if (isKinematicMovement) { cutFilter.transform.position += Vector3.left * .5f * multiplier; multiplier *= -1; // now change to positive continue; } var rigidBody = cutFilter.gameObject.AddComponent <Rigidbody>(); rigidBody.velocity = hitFilterRigidbody.velocity; rigidBody.AddForce(Vector3.left * Random.Range(minCutForce, maxCutForce) * multiplier); multiplier *= -1; // now change to positive } }
private void OnEnable() { // Stop if we are not in sync with the AppManager. if (AppManager.currentMode != "MeshCutter") { return; } // Create mesh cutter. if (!meshCutter) { meshCutter = Instantiate(meshCutterTemplate); MoveCutterToHand(rightHander); meshCutter.TargetMesh = targetMesh; } meshCutter.gameObject.SetActive(true); }
public void Cut() { MeshUtils.Log("Cutting: " + cuttingObject.name); var cutter = new MeshCutter(); // create cutting plane var plane = ComputePlane(); ContourData contour; GameObject cut0, cut1; GenerationTimeMS = cutter.Cut(cuttingObject, plane, triangulateHoles, deleteOriginal, out cut0, out cut1, out contour); if (cut0 != null) { cut0.AddComponent <DefaultObject>(); cut1.AddComponent <DefaultObject>(); } }
void Start() { // Create box Mesh mesh = CreateBoxMesh(3, 1, 1); // Cut box Plane cutPlane = new Plane(_slicePlaneA, _slicePlaneB, _slicePlaneC); mesh = MeshCutter.CutMesh(mesh, cutPlane); // cut again! Plane cutPlane2 = new Plane(_slicePlane2[0], _slicePlane2[1], _slicePlane2[2]); mesh = MeshCutter.CutMesh(mesh, cutPlane2); // cut again!! Plane cutPlane3 = new Plane(_slicePlane3[0], _slicePlane3[1], _slicePlane3[2]); //mesh = MeshCutter.CutMesh(mesh, cutPlane3); GetComponent <MeshFilter>().mesh = mesh; }
private void Start() { // init cutter cutter = new MeshCutter(); cutter.Init(512, 512); UnityEngine.Random.seed = System.DateTime.Now.Millisecond; bool use2d = false; #if PHYSICS_2D use2d = Use2DCollision; #endif // init pool FragmentPool.Instance.Allocate(FragmentPoolSize, MeshColliders, use2d); FragmentPool.Instance.SetDeactivateOptions(DeactivateOptions, FadeoutOptions, DeactivateTimeout); FragmentPool.Instance.SetExplodableFragments(ExplodeFragments, DontUseTag); FragmentPool.Instance.SetFragmentPhysicsOptions(FragmentOptions); timer = new Stopwatch(); // init queue queue = new ExploderQueue(this); if (DontUseTag) { gameObject.AddComponent <Explodable>(); } else { gameObject.tag = "Exploder"; } state = State.DryRun; PreAllocateBuffers(); state = State.None; }
public void CreateObject(Mesh mesh, Vector3 CutDir) { MeshCutterAttacher Empty = (Instantiate(meshCutterAttach.gameObject, transform.position, transform.rotation) as GameObject).GetComponent <MeshCutterAttacher>(); Empty.transform.parent = transform; Empty.transform.localScale = new Vector3(1, 1, 1); Empty.transform.parent = null; MeshCutter EmptyMeshCutter = Empty.gameObject.AddComponent <MeshCutter>(); EmptyMeshCutter.renderer = Empty.gameObject.AddComponent <MeshRenderer>(); EmptyMeshCutter.meshFilter = Empty.gameObject.AddComponent <MeshFilter>(); EmptyMeshCutter.renderer.material = renderer.sharedMaterial; EmptyMeshCutter.meshFilter.mesh = mesh; EmptyMeshCutter.MaxCut = MaxCut - 1; EmptyMeshCutter.meshCutterAttach = meshCutterAttach; Empty.CutDir = CutDir; meshcutters[CreateIndex] = EmptyMeshCutter; CreateIndex++; }
/// <summary> /// run cutting algorithm /// </summary> public void Cut(GameObject primitive, bool fillHoles, bool deleteOriginal) { MeshUtils.Log("Cutting: " + primitive.name); var cutter = new MeshCutter(); // create cutting plane var plane = ComputePlane(); ContourData contour; GameObject cut0, cut1; GenerationTimeMS = cutter.Cut(primitive, plane, fillHoles, deleteOriginal, out cut0, out cut1, out contour); // contour.ShowContourDBG(float.MaxValue); // contour.CreateGameObject(true); if (cut0 != null) { cut0.AddComponent <DefaultObject>(); cut1.AddComponent <DefaultObject>(); } }
// Use this for initialization void Start() { // Initialize a somewhat big array so that it doesn't resize meshCutter = new MeshCutter(256); }
private void Awake() { IS = this; }
private void Start() { meshCutter = new MeshCutter(256); }
private void PointCut(Vector3 clickPoint) { MeshCutter.CutMesh(MainManager.FigureController.MeshFilter, new Plane(Vector3.right, clickPoint)); MainManager.FigureController.UpdateMeshRenderer(); }
private void Start() { // init cutter cutter = new MeshCutter(); cutter.Init(512, 512); UnityEngine.Random.seed = System.DateTime.Now.Millisecond; bool use2d = false; #if PHYSICS_2D use2d = Use2DCollision; #endif // init pool FragmentPool.Instance.Allocate(FragmentPoolSize, MeshColliders, use2d); FragmentPool.Instance.SetDeactivateOptions(DeactivateOptions, FadeoutOptions, DeactivateTimeout); FragmentPool.Instance.SetExplodableFragments(ExplodeFragments, DontUseTag); FragmentPool.Instance.SetFragmentPhysicsOptions(FragmentOptions); timer = new Stopwatch(); // init queue queue = new ExploderQueue(this); if (DontUseTag) { gameObject.AddComponent<Explodable>(); } else { gameObject.tag = "Exploder"; } state = State.DryRun; PreAllocateBuffers(); state = State.None; }
/// <summary> /// Awake is called when the script instance is being loaded. /// </summary> void Awake() { mc = gameObject.AddComponent <MeshCutter> (); mc.manifold = this; gameObject.AddComponent <ManifoldDragging> (); }