*
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
||||
public class CubeSlice : MonoBehaviour {
|
||||
public Mesh testMesh;
|
||||
|
||||
|
||||
// Use this for initialization
|
||||
void Start () {
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update () {
|
||||
|
||||
}
|
||||
|
||||
void OnDrawGizmos(){
|
||||
if (testMesh == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
float totalVolume = AdvancedMath.MeshVolume (testMesh.vertices, testMesh.triangles, transform.localToWorldMatrix);
|
||||
|
||||
Debug.Log ("Underwater volume = " + totalVolume);
|
||||
Debug.Log ("Expected volume = " + AdvancedMath.CylinderVolume(0.5f, 1.0f));
|
||||
|
||||
//List<Vector3> prismTriangles = new List<Vector3> ();
|
||||
|
||||
/*for (int i = 0; i < 1; ++i) {
|
||||
Vector3 v0 = new Vector3(0,-1,0);
|
||||
Vector3 v1 = new Vector3(1,-1,0);
|
||||
Vector3 v2 = new Vector3(0.5f,-5,1);
|
||||
Vector3 normal = AdvancedMath.TriangleNormal(v0, v1, v2);
|
||||
|
||||
float sign = Mathf.Sign(Vector3.Dot (normal, p.normal));
|
||||
|
||||
float h0 = p.GetDistanceToPoint(v0);
|
||||
float h1 = p.GetDistanceToPoint(v1);
|
||||
float h2 = p.GetDistanceToPoint(v2);
|
||||
float avgH = (h0 + h1 + h2) / 3.0f;
|
||||
|
||||
Vector3 vp0 = v0 - p.normal * h0;
|
||||
Vector3 vp1 = v1 - p.normal * h1;
|
||||
Vector3 vp2 = v2 - p.normal * h2;
|
||||
|
||||
float triangleSquare = AdvancedMath.TriangleSquare(vp0, vp1, vp2);
|
||||
float prismVolume = AdvancedMath.PrismVolume(triangleSquare, avgH) * sign;
|
||||
totalVolume += prismVolume;
|
||||
|
||||
Vector3 com = AdvancedMath.PrismCenterOfMass(vp0, vp1, vp2, p.normal, h0, h1, h2);
|
||||
|
||||
|
||||
AdvancedGizmo.DrawTriangle(v0, v1, v2, true);
|
||||
AdvancedGizmo.DrawTriangle(vp0, vp1, vp2, true);
|
||||
Debug.DrawLine(v0, vp0);
|
||||
Debug.DrawLine(v1, vp1);
|
||||
Debug.DrawLine(v2, vp2);
|
||||
|
||||
Gizmos.DrawSphere(new Vector3(com.x, com.y, com.z), 0.05f);
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
//Debug.Log ("Cut: " + cut);
|
||||
//Debug.Log ("Not cut: " + notCut);
|
||||
|
||||
//AdvancedGizmo.DrawMesh (cuttedTriangles.ToArray (), true);
|
||||
//AdvancedGizmo.DrawMesh (vertices, indices, false);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user