public static void GetRectData(vtkPolyData data, Rectangle rect) { var points = vtkPoints.New(); var colorArray = vtkUnsignedCharArray.New(); colorArray.SetNumberOfComponents(3); RectImageData = vtkImageData.New(); RectImageData.SetExtent(0, rect.Size.Width - 1, 0, rect.Size.Height - 1, 0, 0); RectImageData.SetNumberOfScalarComponents(1); RectImageData.SetScalarTypeToUnsignedChar(); for (var i = rect.Top; i < rect.Bottom; i++) { for (var j = rect.Left; j < rect.Right; j++) { double[] p = data.GetPoint(i * ImageWidth + j); points.InsertNextPoint(j - rect.Left, i - rect.Top, p[2]); double[] c = data.GetPointData().GetScalars().GetTuple3(i * ImageWidth + j); colorArray.InsertNextTuple3(c[0], c[1], c[2]); RectImageData.SetScalarComponentFromDouble(j - rect.Left, i - rect.Top, 0, 0, c[0]); } } RectPolyData = vtkPolyData.New(); RectPolyData.SetPoints(points); RectPolyData.GetPointData().SetScalars(colorArray); RectPolyData.Update(); }
public static void ReadDataFromFile(string filename) { try { SimplePointFile.GetImageInfo(filename); ImageWidth = SimplePointFile.ImageWidth; ImageHeight = SimplePointFile.ImageHeight; //Console.WriteLine("ImageWidth:" + ImageWidth); //Console.WriteLine("ImageHeight:" + ImageHeight); var points = vtkPoints.New(); var colorArray = vtkUnsignedCharArray.New(); colorArray.SetNumberOfComponents(3); ImageData = vtkImageData.New(); ImageData.SetExtent(0, ImageWidth - 1, 0, ImageHeight - 1, 0, 0); ImageData.SetNumberOfScalarComponents(1); ImageData.SetScalarTypeToUnsignedChar(); SimplePointFile.OpenReadFile(filename); double[] data; while ((data = SimplePointFile.ReadLine()) != null) { points.InsertNextPoint(data[0], data[1], data[2]); colorArray.InsertNextTuple3(data[3], data[4], data[5]); ImageData.SetScalarComponentFromDouble((int)data[0], (int)data[1], 0, 0, data[3]); } PolyData = vtkPolyData.New(); PolyData.SetPoints(points); PolyData.GetPointData().SetScalars(colorArray); PolyData.Update(); //Console.WriteLine("PolyData & ImageData Load."); } catch (Exception e) { MessageBox.Show(e.Message); } finally { SimplePointFile.CloseReadFile(); } }
/// <summary> /// Create scalar copy of vtkImageData. /// </summary> /// <param name="data">Input data.</param> /// <returns>Copied data.</returns> public static vtkImageData scalarCopy(vtkImageData data) { /*DEPRECATED!!*/ //Get data extent int[] dims = data.GetExtent(); vtkImageData newdata = vtkImageData.New(); newdata.SetExtent(dims[0], dims[1], dims[2], dims[3], dims[4], dims[5]); for (int h = dims[0]; h <= dims[1]; h++) { for (int w = dims[2]; w <= dims[3]; w++) { for (int d = dims[4]; d <= dims[5]; d++) { double scalar = data.GetScalarComponentAsDouble(h, w, d, 0); newdata.SetScalarComponentFromDouble(h, w, d, 0, scalar); } } } return(newdata); }