/// <summary> /// Remove and create new triangles in bounding box. Very Slow! /// </summary> /// <param name="graphicsDevice"></param> /// <param name="isolevel"></param> /// <param name="primitive"></param> /// <param name="box"></param> public static void ReProcess(GraphicsDevice graphicsDevice, double isolevel, ref VoxelChunk primitive, BoundingBox box) { //primitive.Remove( box ); primitive.RemoveBorderCubes(box); int triNum = 0; int minx = (int)box.Minimum.X; int miny = (int)box.Minimum.Y; int minz = (int)box.Minimum.Z; int maxx = (int)box.Maximum.X; int maxy = (int)box.Maximum.Y; int maxz = (int)box.Maximum.Z; for (int i = minx; i < maxx; i++) { for (int j = miny; j < maxy; j++) { for (int k = minz; k < maxz; k++) { triNum = Polygonise(i, j, k, isolevel); if (triNum > 0) { primitive.borderCubes.Add(new Vector3(i, j, k)); Build(ref primitive, triNum); } } } } //if( primitive.VertexCount == 0 ) //{ // primitive.isDrawable = false; //} //else //{ // primitive.InitializePrimitive( graphicsDevice ); //} }