// // Creates the grid. // public void CreateGrid() { AcousticSceneExporter.ExportScene(); Phonon.Vector3 downVector; downVector.x = .0f; downVector.y = -1.0f; downVector.z = .0f; Phonon.Grid.iplCreateGrid(AcousticSceneExporter.Scene, downVector, Spacing, ref grid); int gridSize = Phonon.Grid.iplSaveGrid(grid, null); GridData = new byte[gridSize]; Phonon.Grid.iplSaveGrid(grid, GridData); int numPoints = Phonon.Grid.iplGetGridPoints(grid, null); GridPoints = new float[3 * numPoints]; Phonon.Vector3[] gridPointsArray = new Phonon.Vector3[numPoints]; Phonon.Grid.iplGetGridPoints(grid, gridPointsArray); for (int i = 0; i < numPoints; ++i) { GridPoints[3*i + 0] = gridPointsArray[i].x; GridPoints[3*i + 1] = gridPointsArray[i].y; GridPoints[3*i + 2] = gridPointsArray[i].z; } Phonon.Grid.iplDestroyGrid(grid); AcousticSceneExporter.Destroy(); }
// // Exports this object. // public bool ExportGeometry(IntPtr scene) { if (NumVertices == 0 || NumTriangles == 0) return false; Phonon.Vector3[] vertices = new Phonon.Vector3[NumVertices]; Phonon.Triangle[] triangles = new Phonon.Triangle[NumTriangles]; if (AttachedMesh != null) ExportMesh(vertices, triangles); else if (AttachedTerrain != null) ExportTerrain(vertices, triangles); else return false; Phonon.Export.iplSetObjectVertices(scene, vertices.Length, vertices); Phonon.Export.iplSetObjectTriangles(scene, triangles.Length, triangles); return true; }