2Dgriu
parent
69314f8639
commit
0d72b07729
|
@ -135,7 +135,7 @@ void PropPickerInteractionStyle::setPointColor(QSet<int>point,double color[3])
|
|||
void PropPickerInteractionStyle::setFaceColor(QSet<int>face,double color[3])
|
||||
{
|
||||
vtkDataArray *faceColor = m_boundarySetting->getCellStructure()->GetCellData()->GetScalars();
|
||||
for (const int &pt : face) {
|
||||
for (const int &pt : face) {
|
||||
faceColor->SetComponent(pt, 0, color[0]);
|
||||
faceColor->SetComponent(pt, 1, color[1]);
|
||||
faceColor->SetComponent(pt, 2, color[2]);
|
||||
|
@ -299,7 +299,7 @@ void PropPickerInteractionStyle::selectGridFace(vtkObject *caller, unsigned long
|
|||
// ??? cell ??? ID ???
|
||||
vtkIdList* pointIds = cell->GetPointIds();
|
||||
std::cout << "Cell ID: " << cellId+1 << std::endl;
|
||||
std::cout << "Grid ID:" << m_boundarySetting->getFaceIdToGridId(cellId) <<std::endl;
|
||||
//std::cout << "Grid ID:" << m_boundarySetting->getFaceIdToGridId(cellId) <<std::endl;
|
||||
|
||||
// ?????????
|
||||
vtkPoints* points = polyData->GetPoints();
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
#include "vtkActor.h"
|
||||
#include "vtkRenderer.h"
|
||||
#include "processor/readNas.h"
|
||||
#include "processor/gen3DGrid.h"
|
||||
#include "processor/gen2DGrid.h"
|
||||
|
||||
#include<vtkPoints.h>
|
||||
#include<vtkPolyData.h>
|
||||
#include<vtkCellData.h>
|
||||
|
@ -917,6 +920,232 @@ void PreProcessing::generateCubiod(float x,float y, float z, float ox,float oy,f
|
|||
|
||||
void PreProcessing::generateGrid(float maxgrid)
|
||||
{
|
||||
if(m_modelType == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(!m_modelType)
|
||||
{
|
||||
gen3DGrid *read = new gen3DGrid;
|
||||
|
||||
float length = m_x;
|
||||
float width = m_y;
|
||||
float height = m_z;
|
||||
|
||||
length = 10;
|
||||
width = 10;
|
||||
height = 10;
|
||||
|
||||
read->setLength(length);
|
||||
read->setWidth(width);
|
||||
read->setHeight(height);
|
||||
read->setMaxInterval(maxgrid);
|
||||
|
||||
int faceNum = 0;
|
||||
|
||||
read->genProcess();
|
||||
|
||||
m_gridStructure = read->getStructure();
|
||||
|
||||
m_pointStructure = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
m_pointStructure->DeepCopy(m_gridStructure);
|
||||
|
||||
m_faceToPoint = read->getFaceToPoint();
|
||||
m_faceToCell = read->getFaceToCell();
|
||||
|
||||
m_cellIdToGridCellId = read->getCellIdToGridIdMap();
|
||||
|
||||
//------------------------------------整体
|
||||
vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
mapper->SetInputData(m_gridStructure);
|
||||
|
||||
//设置颜色
|
||||
vtkDataArray *cellcolor = vtkUnsignedCharArray::New();
|
||||
cellcolor->SetNumberOfComponents(3);
|
||||
m_gridStructure->GetCellData()->SetScalars(cellcolor);
|
||||
cellcolor->SetNumberOfTuples(m_gridStructure->GetNumberOfCells());
|
||||
cellcolor->FillComponent(0, 255);
|
||||
cellcolor->FillComponent(1, 255);
|
||||
cellcolor->FillComponent(2, 255);
|
||||
|
||||
m_cellActor = vtkSmartPointer<vtkActor>::New();
|
||||
m_cellActor->SetMapper(mapper);
|
||||
m_cellActor->GetProperty()->EdgeVisibilityOn();
|
||||
|
||||
m_visualWidgetService->removeAllActor();
|
||||
m_visualWidgetService->addActor(m_cellActor);
|
||||
m_visualWidgetService->getRender()->ResetCamera();
|
||||
m_visualWidgetService->getrenderWindow()->Render();
|
||||
|
||||
//---------------------------------------------线条
|
||||
// vtkSmartPointer<vtkDataSetMapper> mapper2 = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
// vtkSmartPointer<vtkUnstructuredGrid> test = read->getTest();
|
||||
// mapper2->SetInputData(test);
|
||||
|
||||
|
||||
// //设置颜色
|
||||
// vtkDataArray *cellcolor2 = vtkUnsignedCharArray::New();
|
||||
// cellcolor2->SetNumberOfComponents(3);
|
||||
// test->GetCellData()->SetScalars(cellcolor2);
|
||||
// cellcolor2->SetNumberOfTuples(test->GetNumberOfCells());
|
||||
// cellcolor2->FillComponent(0, 255);
|
||||
// cellcolor2->FillComponent(1, 0);
|
||||
// cellcolor2->FillComponent(2, 0);
|
||||
|
||||
// vtkSmartPointer<vtkActor> tt = vtkSmartPointer<vtkActor>::New();
|
||||
// tt->SetMapper(mapper2);
|
||||
|
||||
|
||||
// m_visualWidgetService->addActor(tt);
|
||||
// m_visualWidgetService->getRender()->ResetCamera();
|
||||
// m_visualWidgetService->getrenderWindow()->Render();
|
||||
|
||||
//---------------------------------------------线条
|
||||
|
||||
//点
|
||||
m_sphereSource = vtkSmartPointer<vtkSphereSource>::New();
|
||||
m_sphereSource->SetRadius(0.00007); // Adjust the radius to change the size of the points
|
||||
|
||||
vtkSmartPointer<vtkGlyph3D> glyphFilter = vtkSmartPointer<vtkGlyph3D>::New();
|
||||
glyphFilter->SetInputData(m_pointStructure);
|
||||
glyphFilter->SetSourceConnection(m_sphereSource->GetOutputPort());
|
||||
glyphFilter->SetColorModeToColorByScalar(); // Use scalar data for colors
|
||||
glyphFilter->Update();
|
||||
|
||||
vtkSmartPointer<vtkPolyDataMapper> glyphMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
|
||||
glyphMapper->SetInputConnection(glyphFilter->GetOutputPort());
|
||||
glyphMapper->ScalarVisibilityOn(); // Ensure colors are visible
|
||||
glyphMapper->SetScalarModeToUsePointData();
|
||||
|
||||
m_pointActor = vtkSmartPointer<vtkActor>::New();
|
||||
m_pointActor->SetMapper(glyphMapper);
|
||||
|
||||
|
||||
m_pointActor->SetPickable(false);
|
||||
|
||||
//设置点颜色
|
||||
vtkSmartPointer<vtkUnsignedCharArray> pointColor = vtkSmartPointer<vtkUnsignedCharArray>::New();
|
||||
pointColor->SetNumberOfComponents(3);
|
||||
pointColor->SetName("Colors");
|
||||
pointColor->SetNumberOfTuples(m_pointStructure->GetNumberOfPoints());
|
||||
pointColor->FillComponent(0, 255);
|
||||
pointColor->FillComponent(1, 255);
|
||||
pointColor->FillComponent(2, 255);
|
||||
m_pointStructure->GetPointData()->SetScalars(pointColor);
|
||||
|
||||
{
|
||||
vtkSmartPointer<vtkRenderWindow> renderWindow = m_visualWidgetService->getrenderWindow();
|
||||
vtkSmartPointer<vtkRenderer> renderer = m_visualWidgetService->getRender();
|
||||
|
||||
double distance = renderer->GetActiveCamera()->GetDistance();
|
||||
qDebug()<<"distance "<<distance;
|
||||
m_sphereSource->SetRadius(0.00007*distance/10);
|
||||
}
|
||||
m_status = 1;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
gen2DGrid *read = new gen2DGrid;
|
||||
|
||||
float length = m_x;
|
||||
float width = m_y;
|
||||
float height = m_z;
|
||||
|
||||
length = 10;
|
||||
width = 10;
|
||||
height = 10;
|
||||
|
||||
read->setLength(length);
|
||||
read->setWidth(width);
|
||||
//read->setHeight(height);
|
||||
read->setMaxInterval(maxgrid);
|
||||
|
||||
int faceNum = 0;
|
||||
|
||||
read->genProcess();
|
||||
|
||||
m_gridStructure = read->getStructure();
|
||||
|
||||
m_pointStructure = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
m_pointStructure->DeepCopy(m_gridStructure);
|
||||
|
||||
m_faceToPoint = read->getFaceToPoint();
|
||||
m_faceToCell = read->getFaceToCell();
|
||||
|
||||
m_cellIdToGridCellId = read->getCellIdToGridIdMap();
|
||||
|
||||
//------------------------------------整体
|
||||
vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
mapper->SetInputData(m_gridStructure);
|
||||
|
||||
//设置颜色
|
||||
vtkDataArray *cellcolor = vtkUnsignedCharArray::New();
|
||||
cellcolor->SetNumberOfComponents(3);
|
||||
m_gridStructure->GetCellData()->SetScalars(cellcolor);
|
||||
cellcolor->SetNumberOfTuples(m_gridStructure->GetNumberOfCells());
|
||||
cellcolor->FillComponent(0, 255);
|
||||
cellcolor->FillComponent(1, 0);
|
||||
cellcolor->FillComponent(2, 0);
|
||||
|
||||
m_cellActor = vtkSmartPointer<vtkActor>::New();
|
||||
m_cellActor->SetMapper(mapper);
|
||||
m_cellActor->GetProperty()->EdgeVisibilityOn();
|
||||
|
||||
m_visualWidgetService->removeAllActor();
|
||||
m_visualWidgetService->addActor(m_cellActor);
|
||||
m_visualWidgetService->getRender()->ResetCamera();
|
||||
m_visualWidgetService->getrenderWindow()->Render();
|
||||
|
||||
//点
|
||||
m_sphereSource = vtkSmartPointer<vtkSphereSource>::New();
|
||||
m_sphereSource->SetRadius(0.00007); // Adjust the radius to change the size of the points
|
||||
|
||||
vtkSmartPointer<vtkGlyph3D> glyphFilter = vtkSmartPointer<vtkGlyph3D>::New();
|
||||
glyphFilter->SetInputData(m_pointStructure);
|
||||
glyphFilter->SetSourceConnection(m_sphereSource->GetOutputPort());
|
||||
glyphFilter->SetColorModeToColorByScalar(); // Use scalar data for colors
|
||||
glyphFilter->Update();
|
||||
|
||||
vtkSmartPointer<vtkPolyDataMapper> glyphMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
|
||||
glyphMapper->SetInputConnection(glyphFilter->GetOutputPort());
|
||||
glyphMapper->ScalarVisibilityOn(); // Ensure colors are visible
|
||||
glyphMapper->SetScalarModeToUsePointData();
|
||||
|
||||
m_pointActor = vtkSmartPointer<vtkActor>::New();
|
||||
m_pointActor->SetMapper(glyphMapper);
|
||||
|
||||
|
||||
m_pointActor->SetPickable(false);
|
||||
|
||||
//设置点颜色
|
||||
vtkSmartPointer<vtkUnsignedCharArray> pointColor = vtkSmartPointer<vtkUnsignedCharArray>::New();
|
||||
pointColor->SetNumberOfComponents(3);
|
||||
pointColor->SetName("Colors");
|
||||
pointColor->SetNumberOfTuples(m_pointStructure->GetNumberOfPoints());
|
||||
pointColor->FillComponent(0, 255);
|
||||
pointColor->FillComponent(1, 255);
|
||||
pointColor->FillComponent(2, 255);
|
||||
m_pointStructure->GetPointData()->SetScalars(pointColor);
|
||||
|
||||
{
|
||||
vtkSmartPointer<vtkRenderWindow> renderWindow = m_visualWidgetService->getrenderWindow();
|
||||
vtkSmartPointer<vtkRenderer> renderer = m_visualWidgetService->getRender();
|
||||
|
||||
double distance = renderer->GetActiveCamera()->GetDistance();
|
||||
qDebug()<<"distance "<<distance;
|
||||
m_sphereSource->SetRadius(0.00007*distance/10);
|
||||
}
|
||||
m_status = 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void PreProcessing::generateGrid(float maxgrid)
|
||||
{
|
||||
std::cout<<"666666666666666666666666666"<<std::endl;
|
||||
if(m_modelType == -1)
|
||||
{
|
||||
return;
|
||||
|
@ -1268,23 +1497,6 @@ void PreProcessing::generateGrid(float maxgrid)
|
|||
}
|
||||
}
|
||||
|
||||
/*for (int i=0;i<vec_points.size();i++)
|
||||
{
|
||||
std::cout<<vec_points[i];
|
||||
std::cout<<" ";
|
||||
if(i%3==2)
|
||||
std::cout<<endl;
|
||||
}
|
||||
|
||||
|
||||
for (int i=0;i<vec_elements.size();i++)
|
||||
{
|
||||
std::cout<<vec_elements[i];
|
||||
std::cout<<" ";
|
||||
if(i%8==7)
|
||||
std::cout<<endl;
|
||||
}*/
|
||||
|
||||
//char hexIDstr_cor[100];
|
||||
ostringstream ostr2;
|
||||
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
|
||||
|
@ -1377,4 +1589,4 @@ void PreProcessing::generateGrid(float maxgrid)
|
|||
actor->GetProperty()->SetColor(0.85,0.85,0.85);
|
||||
m_visualWidgetService->addActor(actor);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include<vtkCellData.h>
|
||||
#include<vtkCellArray.h>
|
||||
#include<vtkQuad.h>
|
||||
#include<vtkLine.h>
|
||||
#include<vtkHexahedron.h>
|
||||
#include<vtkUnstructuredGrid.h>
|
||||
#include<vtkUnstructuredGridWriter.h>
|
||||
|
@ -25,6 +26,7 @@ gen2DGrid::gen2DGrid()
|
|||
{
|
||||
m_vtk_actor = vtkSmartPointer<vtkActor>::New();
|
||||
m_grid = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
m_grid_surface = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
|
||||
//1 center 0 leftBottom
|
||||
m_offset_type = 0;
|
||||
|
@ -119,20 +121,31 @@ void gen2DGrid::genProcess()
|
|||
point_max_z = origin_z + height/2.0;
|
||||
}
|
||||
|
||||
|
||||
float temp_x = 0.0;
|
||||
float temp_y = 0.0;
|
||||
//float temp_z = 0.0;
|
||||
|
||||
vec_set_point.clear();
|
||||
std::set<int> set_point0;
|
||||
std::set<int> set_point1;
|
||||
std::set<int> set_point2;
|
||||
std::set<int> set_point3;
|
||||
|
||||
m_faceToPoint.resize(4+1);
|
||||
m_faceToCell.resize(4+1);
|
||||
|
||||
for (int j=0;j<use_number_y;j++)
|
||||
{
|
||||
temp_y = point_min_y + use_interval_y*j;
|
||||
if (j==use_number_y-1)
|
||||
{
|
||||
temp_y = point_max_y;
|
||||
temp_y = point_max_y;
|
||||
}
|
||||
|
||||
for (int i=0;i<use_number_x;i++)
|
||||
{
|
||||
temp_x = point_min_x + use_interval_x*i;
|
||||
temp_x = point_min_x + use_interval_x*i;
|
||||
if (i==use_number_x-1)
|
||||
{
|
||||
temp_x = point_max_x;
|
||||
|
@ -140,9 +153,46 @@ void gen2DGrid::genProcess()
|
|||
vec_points.push_back(temp_x);
|
||||
vec_points.push_back(temp_y);
|
||||
vec_points.push_back(0);
|
||||
|
||||
if(j==0)
|
||||
{
|
||||
set_point0.insert(j*use_number_x+i);
|
||||
m_faceToPoint[0+1].insert(j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(j==use_number_y-1)
|
||||
{
|
||||
|
||||
set_point1.insert(j*use_number_x+i);
|
||||
m_faceToPoint[1+1].insert(j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(i==0)
|
||||
{
|
||||
|
||||
set_point2.insert(j*use_number_x+i);
|
||||
m_faceToPoint[2+1].insert(j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(i==use_number_x-1)
|
||||
{
|
||||
// std::cout<<j*use_number_x+i<<std::endl;
|
||||
set_point3.insert(j*use_number_x+i);
|
||||
m_faceToPoint[3+1].insert(j*use_number_x+i+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
vec_set_point.push_back(set_point0);
|
||||
vec_set_point.push_back(set_point1);
|
||||
vec_set_point.push_back(set_point2);
|
||||
vec_set_point.push_back(set_point3);
|
||||
|
||||
vec_set_cell.clear();
|
||||
std::set<int> set_cell0;
|
||||
std::set<int> set_cell1;
|
||||
std::set<int> set_cell2;
|
||||
std::set<int> set_cell3;
|
||||
|
||||
for (int j=0;j<use_number_y-1;j++)
|
||||
{
|
||||
for (int i=0;i<use_number_x-1;i++)
|
||||
|
@ -151,8 +201,37 @@ void gen2DGrid::genProcess()
|
|||
vec_elements.push_back((i+1)+j*use_number_x);
|
||||
vec_elements.push_back((i+1)+(j+1)*use_number_x);
|
||||
vec_elements.push_back(i+(j+1)*use_number_x);
|
||||
|
||||
if(j==0)
|
||||
{
|
||||
//std::cout<<j*(use_number_x-1)+i<<std::endl;
|
||||
set_cell0.insert(j*(use_number_x-1)+i);
|
||||
}
|
||||
|
||||
if(j==use_number_y-2)
|
||||
{
|
||||
|
||||
set_cell1.insert(j*(use_number_x-1)+i);
|
||||
}
|
||||
|
||||
if(i==0)
|
||||
{
|
||||
//std::cout<<j*(use_number_x-1)+i<<std::endl;
|
||||
set_cell2.insert(j*(use_number_x-1)+i);
|
||||
}
|
||||
|
||||
if(i==use_number_y-2)
|
||||
{
|
||||
//std::cout<<j*(use_number_x-1)+i<<std::endl;
|
||||
set_cell3.insert(j*(use_number_x-1)+i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
vec_set_cell.push_back(set_cell0);
|
||||
vec_set_cell.push_back(set_cell1);
|
||||
vec_set_cell.push_back(set_cell2);
|
||||
vec_set_cell.push_back(set_cell3);
|
||||
|
||||
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
|
||||
vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New();
|
||||
|
@ -184,16 +263,97 @@ void gen2DGrid::genProcess()
|
|||
quadpoly->GetPointIds()->SetId(3, quad[3]);
|
||||
m_grid->InsertNextCell(quadpoly->GetCellType(), quadpoly->GetPointIds());
|
||||
}
|
||||
|
||||
genSurfaceGrid();
|
||||
|
||||
//vtkSmartPointer<vtkDataSetMapper>mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
//mapper->SetInputData(m_grid);
|
||||
|
||||
//m_vtk_actor->SetMapper(mapper);
|
||||
//m_vtk_actor->GetProperty()->SetColor(m_color_x, m_color_y, m_color_z);
|
||||
//m_vtk_actor->GetProperty()->SetOpacity(m_opacity);
|
||||
//m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
}
|
||||
|
||||
void gen2DGrid::genSurfaceGrid()
|
||||
{
|
||||
|
||||
vtkSmartPointer<vtkCellArray> cells_temp;
|
||||
vtkSmartPointer<vtkPoints> points_temp = vtkSmartPointer<vtkPoints>::New();
|
||||
//vtkSmartPointer<vtkUnstructuredGrid> poly_temp = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
//m_grid_surface
|
||||
m_grid_surface->SetPoints(m_grid->GetPoints());
|
||||
vtkSmartPointer<vtkLine> quadpoly = vtkSmartPointer<vtkLine>::New();
|
||||
|
||||
int quad[2];
|
||||
int count_temp = 0;
|
||||
for (int i_surface_id=0;i_surface_id<4;i_surface_id++)
|
||||
{
|
||||
std::cout<<vec_set_cell[i_surface_id].size()<<std::endl;
|
||||
if(i_surface_id==0)
|
||||
{
|
||||
quad[0]=0;
|
||||
quad[1]=1;
|
||||
}
|
||||
else if(i_surface_id==1)
|
||||
{
|
||||
quad[0]=2;
|
||||
quad[1]=3;
|
||||
}
|
||||
else if(i_surface_id==2)
|
||||
{
|
||||
quad[0]=3;
|
||||
quad[1]=0;
|
||||
}
|
||||
else if(i_surface_id==3)
|
||||
{
|
||||
quad[0]=1;
|
||||
quad[1]=2;
|
||||
}
|
||||
|
||||
for (std::set<int>::iterator it = vec_set_cell[i_surface_id].begin(); it != vec_set_cell[i_surface_id].end(); ++it)
|
||||
{
|
||||
m_faceToCell[i_surface_id+1].push_back(count_temp+1);
|
||||
m_cellIdToGridCellId[count_temp] = *it;
|
||||
count_temp++;
|
||||
|
||||
vtkIdList* pointIds2 = vtkIdList::New();
|
||||
m_grid->GetCellPoints(*it, pointIds2);
|
||||
|
||||
quadpoly->GetPointIds()->SetId(0, pointIds2->GetId(quad[0]));
|
||||
quadpoly->GetPointIds()->SetId(1, pointIds2->GetId(quad[1]));
|
||||
m_grid_surface->InsertNextCell(quadpoly-> GetCellType(), quadpoly ->GetPointIds());
|
||||
}
|
||||
}
|
||||
|
||||
//vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
|
||||
//writer->SetFileName("ceshi0826.vtu");
|
||||
//writer->SetDataType(m_write_data_type);
|
||||
//writer->SetDataModeToAscii(); //0
|
||||
//writer->SetDataModeToBinary(); //1
|
||||
//std::cout<<writer->GetDataMode()<<std::endl;
|
||||
//writer->SetInputData(m_grid_surface);
|
||||
//writer->Write();
|
||||
|
||||
vtkSmartPointer<vtkDataSetMapper>mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
mapper->SetInputData(m_grid);
|
||||
mapper->SetInputData(m_grid_surface);
|
||||
mapper->SetRelativeCoincidentTopologyPolygonOffsetParameters(5.0,5.0);
|
||||
|
||||
m_vtk_actor->SetMapper(mapper);
|
||||
m_vtk_actor->GetProperty()->SetColor(m_color_x, m_color_y, m_color_z);
|
||||
|
||||
m_vtk_actor->GetProperty()->SetOpacity(m_opacity);
|
||||
m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
//m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
m_vtk_actor->GetProperty()->SetRepresentationToSurface();
|
||||
//m_vtk_actor->GetProperty()->SetEdgeVisibility(true);
|
||||
|
||||
//m_vtk_actor->GetProperty()->SetColor(1.0, 0.0, 0.0);
|
||||
//m_vtk_actor->PickableOff();
|
||||
//m_vtk_actor->DragableOff();
|
||||
|
||||
}
|
||||
|
||||
|
||||
void gen2DGrid::readGridJsonFile(string json_name)
|
||||
{
|
||||
CasRockGrid* struct_grid = new CasRockGrid;
|
||||
|
@ -539,6 +699,35 @@ void gen2DGrid::updateLineWidth(float line_width)
|
|||
m_vtk_actor->GetProperty()->SetLineWidth(line_width);
|
||||
}
|
||||
|
||||
vector<set<int>>& gen2DGrid::getPointSetWithSurface()
|
||||
{
|
||||
return vec_set_point;
|
||||
}
|
||||
|
||||
vector<set<int>>& gen2DGrid::getCellSetWithSurface()
|
||||
{
|
||||
return vec_set_cell;
|
||||
}
|
||||
|
||||
vtkSmartPointer<vtkUnstructuredGrid> gen2DGrid::getStructure()
|
||||
{
|
||||
return m_grid_surface;
|
||||
}
|
||||
|
||||
QVector<QSet<int>> gen2DGrid::getFaceToPoint()
|
||||
{
|
||||
return m_faceToPoint;
|
||||
}
|
||||
|
||||
QVector<QVector<int>> gen2DGrid::getFaceToCell()
|
||||
{
|
||||
return m_faceToCell;
|
||||
}
|
||||
|
||||
QMap<int,int> gen2DGrid::getCellIdToGridIdMap()
|
||||
{
|
||||
return m_cellIdToGridCellId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -5,6 +5,10 @@
|
|||
|
||||
#include <iostream>
|
||||
#include "structFromJson.h"
|
||||
#include <set>
|
||||
#include <QMap>
|
||||
#include <QSet>
|
||||
#include <QVector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -13,11 +17,13 @@ class gen2DGrid
|
|||
public:
|
||||
gen2DGrid();
|
||||
~gen2DGrid();
|
||||
vtkSmartPointer<vtkUnstructuredGrid> m_grid_surface;
|
||||
|
||||
private:
|
||||
vtkSmartPointer<vtkActor> m_vtk_actor;
|
||||
vtkSmartPointer<vtkUnstructuredGrid> m_grid;
|
||||
|
||||
|
||||
float m_color_x;
|
||||
float m_color_y;
|
||||
float m_color_z;
|
||||
|
@ -46,8 +52,19 @@ private:
|
|||
|
||||
vector<float> vec_points;
|
||||
vector<float> vec_elements;
|
||||
|
||||
|
||||
vector<set<int>> vec_set_point;
|
||||
vector<set<int>> vec_set_cell;
|
||||
|
||||
QVector<QVector<int>> m_faceToCell;
|
||||
QMap<int,int>m_cellIdToGridCellId;
|
||||
QVector<QSet<int>> m_faceToPoint;
|
||||
|
||||
void genSurfaceGrid();
|
||||
public:
|
||||
vector<set<int>>& getPointSetWithSurface();
|
||||
vector<set<int>>& getCellSetWithSurface();
|
||||
|
||||
vtkSmartPointer<vtkActor> getActor();
|
||||
void setColor(float color_x, float color_y, float color_z);
|
||||
void setOpacity(float opacity);
|
||||
|
@ -112,6 +129,11 @@ public:
|
|||
void writeGridFile(string nodes_file_name,string elements_file_name);
|
||||
void writeNodesFile(string nodes_file_name);
|
||||
void writeElementsFile(string elements_file_name);
|
||||
|
||||
QVector<QSet<int> > getFaceToPoint();
|
||||
QVector<QVector<int> > getFaceToCell();
|
||||
QMap<int, int> getCellIdToGridIdMap();
|
||||
vtkSmartPointer<vtkUnstructuredGrid> getStructure();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include<fstream>
|
||||
#include<string>
|
||||
#include<sstream>
|
||||
#include <set>
|
||||
|
||||
#include<vtkProperty.h>
|
||||
#include<vtkActor.h>
|
||||
|
@ -17,14 +18,29 @@
|
|||
#include<vtkUnstructuredGridWriter.h>
|
||||
#include<vtkXMLUnstructuredGridWriter.h>
|
||||
|
||||
#include <qfile.h>
|
||||
#include <QTextStream>
|
||||
#include <vtkTetra.h>
|
||||
#include <vtkTriangle.h>
|
||||
#include <vtkTriangle.h>
|
||||
#include <vtkStructuredGrid.h>
|
||||
#include <vtkLine.h>
|
||||
//#include <vtkUnStructuredGrid.h>
|
||||
|
||||
#include "qdebug.h"
|
||||
#include "readNas.h"
|
||||
|
||||
#include "gen3DGrid.h"
|
||||
#include "readJson.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
gen3DGrid::gen3DGrid()
|
||||
{
|
||||
m_vtk_actor = vtkSmartPointer<vtkActor>::New();
|
||||
m_grid = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
m_grid_surface = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
|
||||
//1 center 0 leftBottom
|
||||
m_offset_type = 0;
|
||||
|
@ -48,6 +64,9 @@ gen3DGrid::gen3DGrid()
|
|||
|
||||
vec_points.clear();
|
||||
vec_elements.clear();
|
||||
|
||||
vec_set_point.clear();
|
||||
vec_set_cell.clear();
|
||||
}
|
||||
|
||||
gen3DGrid::~gen3DGrid()
|
||||
|
@ -122,6 +141,18 @@ void gen3DGrid::genProcess()
|
|||
float temp_x = 0.0;
|
||||
float temp_y = 0.0;
|
||||
float temp_z = 0.0;
|
||||
|
||||
vec_set_point.clear();
|
||||
std::set<int> set_point0;
|
||||
std::set<int> set_point1;
|
||||
std::set<int> set_point2;
|
||||
std::set<int> set_point3;
|
||||
std::set<int> set_point4;
|
||||
std::set<int> set_point5;
|
||||
|
||||
m_faceToPoint.resize(6+1);
|
||||
m_faceToCell.resize(6+1);
|
||||
|
||||
for (int k=0;k<use_number_z;k++)
|
||||
{
|
||||
temp_z = point_min_z + use_interval_z*k;
|
||||
|
@ -129,13 +160,27 @@ void gen3DGrid::genProcess()
|
|||
{
|
||||
temp_z = point_max_z;
|
||||
}
|
||||
|
||||
//if(k==0)
|
||||
{
|
||||
//set_point1.insert(k*use_number_z*use_number_y+j*use_number_x+i);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*use_number_z*use_number_y+j*use_number_x+i<<std::endl;
|
||||
}
|
||||
|
||||
if(k==use_number_z-1)
|
||||
{
|
||||
//set_point6.insert(k*use_number_z*use_number_y+j*use_number_x+i);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*use_number_z*use_number_y+j*use_number_x+i<<std::endl;
|
||||
}
|
||||
|
||||
for (int j=0;j<use_number_y;j++)
|
||||
{
|
||||
temp_y = point_min_y + use_interval_y*j;
|
||||
if (j==use_number_y-1)
|
||||
{
|
||||
temp_y = point_max_y;
|
||||
//temp_y = point_max_y;
|
||||
}
|
||||
|
||||
|
||||
for (int i=0;i<use_number_x;i++)
|
||||
{
|
||||
|
@ -147,10 +192,60 @@ void gen3DGrid::genProcess()
|
|||
vec_points.push_back(temp_x);
|
||||
vec_points.push_back(temp_y);
|
||||
vec_points.push_back(temp_z);
|
||||
|
||||
if(k==0)
|
||||
{
|
||||
set_point0.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[0+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(k==use_number_z-1)
|
||||
{
|
||||
set_point1.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[1+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(j==0)
|
||||
{
|
||||
set_point2.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[2+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(j==use_number_y-1)
|
||||
{
|
||||
set_point4.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[4+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(i==0)
|
||||
{
|
||||
set_point3.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[3+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
|
||||
if(i==use_number_x-1)
|
||||
{
|
||||
set_point5.insert(k*use_number_y*use_number_x+j*use_number_x+i);
|
||||
m_faceToPoint[5+1].insert(k*use_number_y*use_number_x+j*use_number_x+i+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vec_set_point.push_back(set_point0);
|
||||
vec_set_point.push_back(set_point1);
|
||||
vec_set_point.push_back(set_point2);
|
||||
vec_set_point.push_back(set_point3);
|
||||
vec_set_point.push_back(set_point4);
|
||||
vec_set_point.push_back(set_point5);
|
||||
|
||||
vec_set_cell.clear();
|
||||
std::set<int> set_cell0;
|
||||
std::set<int> set_cell1;
|
||||
std::set<int> set_cell2;
|
||||
std::set<int> set_cell3;
|
||||
std::set<int> set_cell4;
|
||||
std::set<int> set_cell5;
|
||||
|
||||
for (int k=0;k<use_number_z-1;k++)
|
||||
{
|
||||
for (int j=0;j<use_number_y-1;j++)
|
||||
|
@ -165,9 +260,57 @@ void gen3DGrid::genProcess()
|
|||
vec_elements.push_back((i+1)+j*use_number_x+(k+1)*use_number_x*use_number_y);
|
||||
vec_elements.push_back((i+1)+(j+1)*use_number_x+(k+1)*use_number_x*use_number_y);
|
||||
vec_elements.push_back(i+(j+1)*use_number_x+(k+1)*use_number_x*use_number_y);
|
||||
|
||||
if(k==0) //0
|
||||
{
|
||||
set_cell0.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
//m_faceToCell[0+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
}
|
||||
|
||||
if(k==use_number_z-2) //1
|
||||
{
|
||||
set_cell1.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//m_faceToCell[1+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
}
|
||||
|
||||
if(j==0) //2
|
||||
{
|
||||
set_cell2.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//m_faceToCell[2+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
}
|
||||
|
||||
if(j==use_number_y-2) //4
|
||||
{
|
||||
set_cell4.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//m_faceToCell[4+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
}
|
||||
|
||||
if(i==0) //3
|
||||
{
|
||||
set_cell3.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//m_faceToCell[3+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
}
|
||||
|
||||
if(i==use_number_x-2) //5
|
||||
{
|
||||
set_cell5.insert(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i);
|
||||
//m_faceToCell[5+1].push_back(k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i+1);
|
||||
//std::cout<<k<<" "<<j<<" "<<i<<" "<<k*(use_number_y-1)*(use_number_x-1)+j*(use_number_x-1)+i<<std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vec_set_cell.push_back(set_cell0);
|
||||
vec_set_cell.push_back(set_cell1);
|
||||
vec_set_cell.push_back(set_cell2);
|
||||
vec_set_cell.push_back(set_cell3);
|
||||
vec_set_cell.push_back(set_cell4);
|
||||
vec_set_cell.push_back(set_cell5);
|
||||
|
||||
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
|
||||
vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New();
|
||||
|
@ -208,13 +351,121 @@ void gen3DGrid::genProcess()
|
|||
m_grid->InsertNextCell(hexpoly->GetCellType(), hexpoly->GetPointIds());
|
||||
}
|
||||
|
||||
//vtkSmartPointer<vtkDataSetMapper>mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
//mapper->SetInputData(m_grid);
|
||||
//mapper->SetRelativeCoincidentTopologyPolygonOffsetParameters(5.0,5.0);
|
||||
|
||||
//m_vtk_actor->SetMapper(mapper);
|
||||
//m_vtk_actor->GetProperty()->SetColor(m_color_x, m_color_y, m_color_z);
|
||||
|
||||
//m_vtk_actor->GetProperty()->SetOpacity(m_opacity);
|
||||
//m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
//m_vtk_actor->GetProperty()->SetRepresentationToSurface();
|
||||
//m_vtk_actor->GetProperty()->SetEdgeVisibility(true);
|
||||
|
||||
genSurfaceGrid();
|
||||
return;
|
||||
}
|
||||
|
||||
void gen3DGrid::genSurfaceGrid()
|
||||
{
|
||||
std::cout<<"999999999999999999999999"<<std::endl;
|
||||
vtkSmartPointer<vtkCellArray> cells_temp;
|
||||
vtkSmartPointer<vtkPoints> points_temp = vtkSmartPointer<vtkPoints>::New();
|
||||
//vtkSmartPointer<vtkUnstructuredGrid> poly_temp = vtkSmartPointer<vtkUnstructuredGrid>::New();
|
||||
//m_grid_surface
|
||||
m_grid_surface->SetPoints(m_grid->GetPoints());
|
||||
vtkSmartPointer<vtkQuad> quadpoly = vtkSmartPointer<vtkQuad>::New();
|
||||
|
||||
int quad[4];
|
||||
int count_temp = 0;
|
||||
for (int i_surface_id=0;i_surface_id<6;i_surface_id++)
|
||||
{
|
||||
if(i_surface_id==0)
|
||||
{
|
||||
quad[0]=0;
|
||||
quad[1]=1;
|
||||
quad[2]=2;
|
||||
quad[3]=3;
|
||||
}
|
||||
else if(i_surface_id==1)
|
||||
{
|
||||
quad[0]=4;
|
||||
quad[1]=5;
|
||||
quad[2]=6;
|
||||
quad[3]=7;
|
||||
}
|
||||
else if(i_surface_id==2)
|
||||
{
|
||||
quad[0]=0;
|
||||
quad[1]=1;
|
||||
quad[2]=5;
|
||||
quad[3]=4;
|
||||
}
|
||||
else if(i_surface_id==3)
|
||||
{
|
||||
quad[0]=0;
|
||||
quad[1]=3;
|
||||
quad[2]=7;
|
||||
quad[3]=4;
|
||||
}
|
||||
else if(i_surface_id==4)
|
||||
{
|
||||
quad[0]=3;
|
||||
quad[1]=2;
|
||||
quad[2]=6;
|
||||
quad[3]=7;
|
||||
}
|
||||
else if(i_surface_id==5)
|
||||
{
|
||||
quad[0]=1;
|
||||
quad[1]=2;
|
||||
quad[2]=6;
|
||||
quad[3]=5;
|
||||
}
|
||||
|
||||
for (std::set<int>::iterator it = vec_set_cell[i_surface_id].begin(); it != vec_set_cell[i_surface_id].end(); ++it)
|
||||
{
|
||||
m_faceToCell[i_surface_id+1].push_back(count_temp+1);
|
||||
m_cellIdToGridCellId[count_temp] = *it;
|
||||
count_temp++;
|
||||
//std::cout << *it << std::endl;
|
||||
vtkIdList* pointIds2 = vtkIdList::New();
|
||||
m_grid->GetCellPoints(*it, pointIds2);
|
||||
|
||||
quadpoly->GetPointIds()->SetId(0, pointIds2->GetId(quad[0]));
|
||||
quadpoly->GetPointIds()->SetId(1, pointIds2->GetId(quad[1]));
|
||||
quadpoly->GetPointIds()->SetId(2, pointIds2->GetId(quad[2]));
|
||||
quadpoly->GetPointIds()->SetId(3, pointIds2->GetId(quad[3]));
|
||||
m_grid_surface->InsertNextCell(quadpoly-> GetCellType(), quadpoly ->GetPointIds());
|
||||
}
|
||||
}
|
||||
|
||||
vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
|
||||
//writer->SetFileName("ceshi0826.vtu");
|
||||
//writer->SetDataType(m_write_data_type);
|
||||
//writer->SetDataModeToAscii(); //0
|
||||
//writer->SetDataModeToBinary(); //1
|
||||
//std::cout<<writer->GetDataMode()<<std::endl;
|
||||
//writer->SetInputData(m_grid_surface);
|
||||
//writer->Write();
|
||||
|
||||
vtkSmartPointer<vtkDataSetMapper>mapper = vtkSmartPointer<vtkDataSetMapper>::New();
|
||||
mapper->SetInputData(m_grid);
|
||||
mapper->SetInputData(m_grid_surface);
|
||||
mapper->SetRelativeCoincidentTopologyPolygonOffsetParameters(5.0,5.0);
|
||||
|
||||
m_vtk_actor->SetMapper(mapper);
|
||||
m_vtk_actor->GetProperty()->SetColor(m_color_x, m_color_y, m_color_z);
|
||||
|
||||
m_vtk_actor->GetProperty()->SetOpacity(m_opacity);
|
||||
m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
//m_vtk_actor->GetProperty()->SetRepresentationToWireframe();
|
||||
m_vtk_actor->GetProperty()->SetRepresentationToSurface();
|
||||
m_vtk_actor->GetProperty()->SetEdgeVisibility(true);
|
||||
|
||||
//m_vtk_actor->GetProperty()->SetColor(1.0, 0.0, 0.0);
|
||||
//m_vtk_actor->PickableOff();
|
||||
//m_vtk_actor->DragableOff();
|
||||
|
||||
}
|
||||
|
||||
void gen3DGrid::readGridJsonFile(string json_name)
|
||||
|
@ -570,6 +821,36 @@ void gen3DGrid::updateLineWidth(float line_width)
|
|||
m_vtk_actor->GetProperty()->SetLineWidth(line_width);
|
||||
}
|
||||
|
||||
vector<set<int>>& gen3DGrid::getPointSetWithSurface()
|
||||
{
|
||||
return vec_set_point;
|
||||
}
|
||||
|
||||
vector<set<int>>& gen3DGrid::getCellSetWithSurface()
|
||||
{
|
||||
return vec_set_cell;
|
||||
}
|
||||
|
||||
vtkSmartPointer<vtkUnstructuredGrid> gen3DGrid::getStructure()
|
||||
{
|
||||
return m_grid_surface;
|
||||
}
|
||||
|
||||
QVector<QSet<int>> gen3DGrid::getFaceToPoint()
|
||||
{
|
||||
return m_faceToPoint;
|
||||
}
|
||||
|
||||
QVector<QVector<int>> gen3DGrid::getFaceToCell()
|
||||
{
|
||||
return m_faceToCell;
|
||||
}
|
||||
|
||||
QMap<int,int> gen3DGrid::getCellIdToGridIdMap()
|
||||
{
|
||||
return m_cellIdToGridCellId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "structFromJson.h"
|
||||
#include <set>
|
||||
#include <QMap>
|
||||
#include <QVector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -15,10 +18,12 @@ public:
|
|||
gen3DGrid();
|
||||
~gen3DGrid();
|
||||
|
||||
vtkSmartPointer<vtkUnstructuredGrid> m_grid;
|
||||
vtkSmartPointer<vtkUnstructuredGrid> m_grid_surface;
|
||||
|
||||
private:
|
||||
vtkSmartPointer<vtkActor> m_vtk_actor;
|
||||
vtkSmartPointer<vtkUnstructuredGrid> m_grid;
|
||||
|
||||
|
||||
float m_color_x;
|
||||
float m_color_y;
|
||||
float m_color_z;
|
||||
|
@ -46,6 +51,15 @@ private:
|
|||
|
||||
vector<float> vec_points;
|
||||
vector<float> vec_elements;
|
||||
|
||||
vector<set<int>> vec_set_point;
|
||||
vector<set<int>> vec_set_cell;
|
||||
|
||||
QVector<QVector<int>> m_faceToCell;
|
||||
QMap<int,int>m_cellIdToGridCellId;
|
||||
QVector<QSet<int>> m_faceToPoint;
|
||||
|
||||
void genSurfaceGrid();
|
||||
|
||||
public:
|
||||
vtkSmartPointer<vtkActor> getActor();
|
||||
|
@ -55,6 +69,9 @@ public:
|
|||
float getOpacity()const{return m_opacity;}
|
||||
float getLineWidth()const{return m_line_width;}
|
||||
|
||||
vector<set<int>>& getPointSetWithSurface();
|
||||
vector<set<int>>& getCellSetWithSurface();
|
||||
|
||||
float getOffsetType()const{return m_offset_type;}
|
||||
float getOffsetX()const{return m_offset_x;}
|
||||
float getOffsetY()const{return m_offset_y;}
|
||||
|
@ -112,6 +129,11 @@ public:
|
|||
void writeGridFile(string nodes_file_name,string elements_file_name);
|
||||
void writeNodesFile(string nodes_file_name);
|
||||
void writeElementsFile(string elements_file_name);
|
||||
|
||||
QVector<QSet<int> > getFaceToPoint();
|
||||
QVector<QVector<int> > getFaceToCell();
|
||||
QMap<int, int> getCellIdToGridIdMap();
|
||||
vtkSmartPointer<vtkUnstructuredGrid> getStructure();
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue