private void button3_Click(object sender, EventArgs e) { _triangleSearcher.Search(_layers.GetLayer(ind)); _triangleTable = _triangleSearcher.GetTriangleTable(); dataGridView2.DataSource = _triangleTable.GetTriangles(); checkBox1.Enabled = true; }
public MeshData MarchCubes(int[,,] noiseGrid) { int gridX = noiseGrid.GetLength(0); int gridY = noiseGrid.GetLength(1); int gridZ = noiseGrid.GetLength(2); MeshData meshData = new MeshData(gridX, gridY, gridZ); for (int x = 0; x < gridX - 1; x++) { for (int y = 0; y < gridY - 1; y++) { for (int z = 0; z < gridZ - 1; z++) { int cubeIndex = 0; int[] vertValues = { noiseGrid[x, y, z], noiseGrid[x, y, z + 1], noiseGrid[x + 1, y, z + 1], noiseGrid[x + 1, y, z], noiseGrid[x, y + 1, z], noiseGrid[x, y + 1, z + 1], noiseGrid[x + 1, y + 1, z + 1], noiseGrid[x + 1, y + 1, z], }; for (int i = 0; i < 8; i++) { if (vertValues[i] == 1) { cubeIndex |= 1 << i; } } int[] triangulation = TriangleTable.triTable[cubeIndex]; //Debug.Log(string.Join(",", triangulation)); for (int i = 0; i < 12; i += 3) { if (triangulation[i] != -1) { Vector3 offset = new Vector3(x - gridX / 2, y - gridY / 2, z - gridZ / 2); Vector3 vertex1 = TriangleTable.midPointFromIndex(triangulation[i]); Vector3 vertex2 = TriangleTable.midPointFromIndex(triangulation[i + 1]); Vector3 vertex3 = TriangleTable.midPointFromIndex(triangulation[i + 2]); vertex1 += offset; vertex2 += offset; vertex3 += offset; meshData.AddVertices(vertex1, vertex2, vertex3); meshData.AddTriangle(); } } } } } return(meshData); }
public Points3dMain(List <Node> nodes, LayersList layersList, TriangleTable triangleTable) { InitializeComponent(); RotateSetup(); Init(nodes, layersList); _triangleTable = triangleTable; button2.Enabled = true; }
private static void InitializeNativeTriangleTable() { NativeTriangleTable = new NativeArray <int>(TriangleTable.Length, Allocator.Persistent); int rows = TriangleTable.GetLength(0); int cols = TriangleTable.GetLength(1); for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { NativeTriangleTable[row * cols + col] = TriangleTable[row, col]; } } }
public TriangleSearcher() { triangleTable = new TriangleTable(); }
public TriangleView(TriangleTable triangleTable) { InitializeComponent(); dataGridView1.DataSource = triangleTable.GetTriangles(); }