<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hello,everyone!<br></div><div>Can someone help me with this problem.</div><div>I'm doing a plugin for paraview which read data from array.</div><div>I'm trying to use structured grid.Paraview read data right but didn't visualize anything.<br><div><img src="cid:ii_jlm0mhjj0" alt="props.png" width="405" height="373"><br></div></div><div><br></div><div>The code looks like this:</div><div><br></div><div>vtkInformation *outInfo = outputVector->GetInformationObject(0); vtkStructuredGrid *output = vtkStructuredGrid::SafeDownCast(<br>        outInfo->Get(vtkDataObject::DATA_OBJECT()));</div><div> vtkStructuredGrid *output = vtkStructuredGrid::SafeDownCast(<br>        outInfo->Get(vtkDataObject::DATA_OBJECT()));<br><br><br>    double x[3];<br>    vtkPoints *newPoints;<br>    vtkCellArray *newVerts;<br><br>    newPoints = vtkPoints::New();<br><br>    // Set the desired precision for the points in the output.<br>    if(this->OutputPointsPrecision == vtkAlgorithm::DOUBLE_PRECISION)<br>    {<br>      newPoints->SetDataType(VTK_DOUBLE);<br>    }<br>    else<br>    {<br>      newPoints->SetDataType(VTK_FLOAT);<br>    }<br><br>    vtkSmartPointer<vtkPoints> points =<br>      vtkSmartPointer<vtkPoints>::New();<br>    this->NumberOfPoints =firstzone[0]-><a href="http://data.at">data.at</a>(0).array.size();<br><br>    newPoints->Allocate(NumberOfPoints);<br>    newVerts = vtkCellArray::New();<br>    newVerts->Allocate(newVerts->EstimateSize(1,NumberOfPoints));<br><br>    newVerts->InsertNextCell(NumberOfPoints);<br><br>    if (this->Distribution == VTK_POINT_UNIFORM )<br>    {  // only produce points on the surface of the sphere<br>      for (unsigned int i=0; i<NumberOfPoints; ++i)<br>      {<br><br>        x[0] = firstzone[0]-><a href="http://data.at">data.at</a>(0).<a href="http://array.at">array.at</a>(i);<br>        x[1] = firstzone[0]-><a href="http://data.at">data.at</a>(1).<a href="http://array.at">array.at</a>(i);<br>        x[2] = firstzone[0]-><a href="http://data.at">data.at</a>(2).<a href="http://array.at">array.at</a>(i);<br>        newVerts->InsertCellPoint(newPoints->InsertNextPoint(x));<br>      }<br>    }<br>    else<br>    { // uniform distribution throughout the sphere volume<br>      for (unsigned int i=0; i<this->NumberOfPoints;++i )<br>      {<br><br>          x[0] = firstzone[0]-><a href="http://data.at">data.at</a>(0).<a href="http://array.at">array.at</a>(i);<br>          x[1] = firstzone[0]-><a href="http://data.at">data.at</a>(1).<a href="http://array.at">array.at</a>(i);<br>          x[2] = firstzone[0]-><a href="http://data.at">data.at</a>(2).<a href="http://array.at">array.at</a>(i);<br>        newVerts->InsertCellPoint(newPoints->InsertNextPoint(x));<br>      }<br>    }<br>    //Get uniqe number of points<br>    std::set<double> uX;<br>    std::set<double> uY;<br>    std::set<double> uZ;<br>    for(size_t i=0;i<firstzone[0]-><a href="http://data.at">data.at</a>(0).array.size();++i){<br>        uX.insert(firstzone[0]-><a href="http://data.at">data.at</a>(0).<a href="http://array.at">array.at</a>(i));<br>    }<br>    for(size_t i=0;i<firstzone[0]-><a href="http://data.at">data.at</a>(1).array.size();++i){<br>        uY.insert(firstzone[0]-><a href="http://data.at">data.at</a>(1).<a href="http://array.at">array.at</a>(i));<br>    }<br>    for(size_t i=0;i<firstzone[0]-><a href="http://data.at">data.at</a>(2).array.size();++i){<br>        uZ.insert(firstzone[0]-><a href="http://data.at">data.at</a>(2).<a href="http://array.at">array.at</a>(i));<br>    }<br>    std::cout<<endl<<uX.size()<<" "<<uY.size()<<" "<<uZ.size()<<std::endl;<br><br>    output->SetDimensions(uZ.size(),uY.size(),uX.size());<br>    std::cout<<"Dimensions set"<<std::endl;<br>    output->SetPoints(newPoints);<br>    std::cout<<"Points set"<<std::endl;<br><br>    newPoints->Delete();<br>    newVerts->Delete();<br></div></div></div></div></div>