//=================================================================================
vtkIdType SMESH_VisualObjDef::GetNodeObjId( int theVTKID )
{
- if (myLocalGrid)
- {
- TMapOfIds::const_iterator i = myVTK2SMDSNodes.find(theVTKID);
- return i == myVTK2SMDSNodes.end() ? -1 : i->second;
- }
+ if (myLocalGrid)
+ {
+ TMapOfIds::const_iterator i = myVTK2SMDSNodes.find(theVTKID);
+ return i == myVTK2SMDSNodes.end() ? -1 : i->second;
+ }
return this->GetMesh()->FindNodeVtk(theVTKID)->GetID();
}
vtkIdType SMESH_VisualObjDef::GetNodeVTKId( int theObjID )
{
- if (myLocalGrid)
- {
- TMapOfIds::const_iterator i = mySMDS2VTKNodes.find(theObjID);
+ if (myLocalGrid)
+ {
+ TMapOfIds::const_iterator i = mySMDS2VTKNodes.find(theObjID);
return i == mySMDS2VTKNodes.end() ? -1 : i->second;
- }
+ }
- const SMDS_MeshNode* aNode = 0;
- if( this->GetMesh() ) {
- aNode = this->GetMesh()->FindNode(theObjID);
- }
- return aNode ? aNode->getVtkId() : -1;
+ const SMDS_MeshNode* aNode = 0;
+ if( this->GetMesh() ) {
+ aNode = this->GetMesh()->FindNode(theObjID);
+ }
+ return aNode ? aNode->getVtkId() : -1;
}
vtkIdType SMESH_VisualObjDef::GetElemObjId( int theVTKID )
{
- if (myLocalGrid)
- {
- TMapOfIds::const_iterator i = myVTK2SMDSElems.find(theVTKID);
- return i == myVTK2SMDSElems.end() ? -1 : i->second;
- }
+ if (myLocalGrid)
+ {
+ TMapOfIds::const_iterator i = myVTK2SMDSElems.find(theVTKID);
+ return i == myVTK2SMDSElems.end() ? -1 : i->second;
+ }
return this->GetMesh()->fromVtkToSmds(theVTKID);
}
vtkIdType SMESH_VisualObjDef::GetElemVTKId( int theObjID )
{
- if (myLocalGrid)
- {
- TMapOfIds::const_iterator i = mySMDS2VTKElems.find(theObjID);
- return i == mySMDS2VTKElems.end() ? -1 : i->second;
- }
+ if (myLocalGrid)
+ {
+ TMapOfIds::const_iterator i = mySMDS2VTKElems.find(theObjID);
+ return i == mySMDS2VTKElems.end() ? -1 : i->second;
+ }
return this->GetMesh()->FindElement(theObjID)->getVtkId();
//return this->GetMesh()->fromSmdsToVtk(theObjID);
}
MESSAGE("----------------------------------------------------------SMESH_VisualObjDef::buildPrs " << buildGrid);
if (buildGrid)
{
- myLocalGrid = true;
- try
- {
- mySMDS2VTKNodes.clear();
- myVTK2SMDSNodes.clear();
- mySMDS2VTKElems.clear();
- myVTK2SMDSElems.clear();
-
- if ( IsNodePrs() )
- buildNodePrs();
- else
- buildElemPrs();
- }
- catch(...)
- {
- mySMDS2VTKNodes.clear();
- myVTK2SMDSNodes.clear();
- mySMDS2VTKElems.clear();
- myVTK2SMDSElems.clear();
-
- myGrid->SetPoints( 0 );
- myGrid->SetCells( 0, 0, 0, 0, 0 );
- throw;
- }
+ myLocalGrid = true;
+ try
+ {
+ mySMDS2VTKNodes.clear();
+ myVTK2SMDSNodes.clear();
+ mySMDS2VTKElems.clear();
+ myVTK2SMDSElems.clear();
+
+ if ( IsNodePrs() )
+ buildNodePrs();
+ else
+ buildElemPrs();
+ }
+ catch(...)
+ {
+ mySMDS2VTKNodes.clear();
+ myVTK2SMDSNodes.clear();
+ mySMDS2VTKElems.clear();
+ myVTK2SMDSElems.clear();
+
+ myGrid->SetPoints( 0 );
+ myGrid->SetCells( 0, 0, 0, 0, 0 );
+ throw;
+ }
}
else
{
- myLocalGrid = false;
- if (!GetMesh()->isCompacted())
- {
- MESSAGE("*** buildPrs ==> compactMesh!");
- GetMesh()->compactMesh();
- }
- vtkUnstructuredGrid *theGrid = GetMesh()->getGrid();
- myGrid->ShallowCopy(theGrid);
- //MESSAGE(myGrid->GetReferenceCount());
- //MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
- //MESSAGE( "Update - myGrid->GetNumberOfPoints() = "<<myGrid->GetNumberOfPoints() );
- if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"buildPrs.vtu" );
+ myLocalGrid = false;
+ if (!GetMesh()->isCompacted())
+ {
+ MESSAGE("*** buildPrs ==> compactMesh!");
+ GetMesh()->compactMesh();
+ }
+ vtkUnstructuredGrid *theGrid = GetMesh()->getGrid();
+ myGrid->ShallowCopy(theGrid);
+ //MESSAGE(myGrid->GetReferenceCount());
+ //MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
+ //MESSAGE( "Update - myGrid->GetNumberOfPoints() = "<<myGrid->GetNumberOfPoints() );
+ if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"buildPrs.vtu" );
}
}
vtkUnstructuredGrid* SMESH_VisualObjDef::GetUnstructuredGrid()
{
- //MESSAGE("SMESH_VisualObjDef::GetUnstructuredGrid " << myGrid);
- return myGrid;
+ //MESSAGE("SMESH_VisualObjDef::GetUnstructuredGrid " << myGrid);
+ return myGrid;
}
//=================================================================================
bool SMESH_VisualObjDef::IsValid() const
{
- //MESSAGE("SMESH_VisualObjDef::IsValid");
+ //MESSAGE("SMESH_VisualObjDef::IsValid");
return GetNbEntities(SMDSAbs_Node) > 0 ||
GetNbEntities(SMDSAbs_0DElement) > 0 ||
GetNbEntities(SMDSAbs_Edge) > 0 ||
SMESH_MeshObj::SMESH_MeshObj(SMESH::SMESH_Mesh_ptr theMesh):
myClient(SalomeApp_Application::orb(),theMesh)
{
- myEmptyGrid = 0;
+ myEmptyGrid = 0;
if ( MYDEBUG )
MESSAGE("SMESH_MeshObj - this = "<<this<<"; theMesh->_is_nil() = "<<theMesh->_is_nil());
}
bool SMESH_MeshObj::NulData()
{
- MESSAGE ("SMESH_MeshObj::NulData() ==================================================================================");
- if (!myEmptyGrid)
- {
- myEmptyGrid = SMDS_UnstructuredGrid::New();
- myEmptyGrid->Initialize();
- myEmptyGrid->Allocate();
- vtkPoints* points = vtkPoints::New();
- points->SetNumberOfPoints(0);
- myEmptyGrid->SetPoints( points );
- points->Delete();
- myEmptyGrid->BuildLinks();
- }
- myGrid->ShallowCopy(myEmptyGrid);
- return true;
+ MESSAGE ("SMESH_MeshObj::NulData() ==================================================================================");
+ if (!myEmptyGrid)
+ {
+ myEmptyGrid = SMDS_UnstructuredGrid::New();
+ myEmptyGrid->Initialize();
+ myEmptyGrid->Allocate();
+ vtkPoints* points = vtkPoints::New();
+ points->SetNumberOfPoints(0);
+ myEmptyGrid->SetPoints( points );
+ points->Delete();
+ myEmptyGrid->BuildLinks();
+ }
+ myGrid->ShallowCopy(myEmptyGrid);
+ return true;
}
//=================================================================================
// function : GetElemDimension
//=================================================================================
bool SMESH_SubMeshObj::Update( int theIsClear )
{
- MESSAGE("SMESH_SubMeshObj::Update " << this)
+ MESSAGE("SMESH_SubMeshObj::Update " << this)
bool changed = myMeshObj->Update( theIsClear );
buildPrs(true);
return changed;
if (distrVisibility && GetDistributionVisibility()) {
for( i=0 ;i<myNbValues.size();i++ ) {
- if(myNbValues[i]) {
- numPositiveVal++;
- maxValue = std::max(maxValue,myNbValues[i]);
- }
+ if(myNbValues[i]) {
+ numPositiveVal++;
+ maxValue = std::max(maxValue,myNbValues[i]);
+ }
}
numDistrPts = 4*(numPositiveVal);
distrPts = vtkPoints::New();
distrPts->Delete();
distrPolys->Delete();
if ( myDistributionColoringType == SMESH_MULTICOLOR_TYPE ) {
- distColors = vtkUnsignedCharArray::New();
- distColors->SetNumberOfComponents(3);
- distColors->SetNumberOfTuples(numPositiveVal);
- this->myDistribution->GetCellData()->SetScalars(distColors);
- distColors->Delete();
+ distColors = vtkUnsignedCharArray::New();
+ distColors->SetNumberOfComponents(3);
+ distColors->SetNumberOfTuples(numPositiveVal);
+ this->myDistribution->GetCellData()->SetScalars(distColors);
+ distColors->Delete();
} else if( myDistributionColoringType == SMESH_MONOCOLOR_TYPE ){
- this->myDistribution->GetCellData()->SetScalars(NULL);
+ this->myDistribution->GetCellData()->SetScalars(NULL);
}
} else {
myDistribution->Reset();
// Customization of the vtkScalarBarActor to show distribution histogram.
double delimeter=0.0;
if(GetDistributionVisibility() && distrVisibility) {
- delimeter=0.01*size[0]; //1 % from horizontal size of the full presentation size.
- barWidth = size[0] - 4 - labelSize[0];
- distrHeight = barWidth/2;
+ delimeter=0.01*size[0]; //1 % from horizontal size of the full presentation size.
+ barWidth = size[0] - 4 - labelSize[0];
+ distrHeight = barWidth/2;
} else {
- barWidth = size[0] - 4 - labelSize[0];
- distrHeight = 0;
+ barWidth = size[0] - 4 - labelSize[0];
+ distrHeight = 0;
}
barHeight = (int)(0.86*size[1]);
}
if(GetDistributionVisibility() && distrVisibility) {
- // Distribution points
- shrink = delta*SHRINK_COEF;
- vtkIdType distPtsId=0;
- vtkIdType distPtsIds[4];
- for(i=0; i<numColors; i++) {
- if(myNbValues[i]) {
- itemH = distrHeight*((double)myNbValues[i]/maxValue);
-
- if(distrHeight == itemH)
- itemH = itemH - delimeter/2;
-
- x[1] = i*delta+shrink;
-
- // first point of polygon (quadrangle)
- x[0] = 0;
- distPtsIds[0] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // second point of polygon (quadrangle)
- x[0] = itemH;
- distPtsIds[1] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- x[1] = i*delta+delta-shrink;
-
- // third point of polygon (quadrangle)
- x[0] = 0;
- distPtsIds[3] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // fourth point of polygon (quadrangle)
- x[0] = itemH;
- distPtsIds[2] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- //Inser Quadrangle
- distrPolys->InsertNextCell(4,distPtsIds);
- }
- }
+ // Distribution points
+ shrink = delta*SHRINK_COEF;
+ vtkIdType distPtsId=0;
+ vtkIdType distPtsIds[4];
+ for(i=0; i<numColors; i++) {
+ if(myNbValues[i]) {
+ itemH = distrHeight*((double)myNbValues[i]/maxValue);
+
+ if(distrHeight == itemH)
+ itemH = itemH - delimeter/2;
+
+ x[1] = i*delta+shrink;
+
+ // first point of polygon (quadrangle)
+ x[0] = 0;
+ distPtsIds[0] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // second point of polygon (quadrangle)
+ x[0] = itemH;
+ distPtsIds[1] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ x[1] = i*delta+delta-shrink;
+
+ // third point of polygon (quadrangle)
+ x[0] = 0;
+ distPtsIds[3] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // fourth point of polygon (quadrangle)
+ x[0] = itemH;
+ distPtsIds[2] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ //Inser Quadrangle
+ distrPolys->InsertNextCell(4,distPtsIds);
+ }
+ }
}
}
// rnv end
// Customization of the vtkScalarBarActor to show distribution histogram.
double coef1, delimeter=0.0;
if(GetDistributionVisibility() && distrVisibility) {
- coef1=0.62;
- distrHeight = (int)((coef1/2)*size[1]);
- //delimeter between distribution diagram and scalar bar
- delimeter=0.02*size[1];
+ coef1=0.62;
+ distrHeight = (int)((coef1/2)*size[1]);
+ //delimeter between distribution diagram and scalar bar
+ delimeter=0.02*size[1];
}
else {
- coef1=0.4;
- barHeight = (int)(coef1*size[1]);
- distrHeight = 0;
+ coef1=0.4;
+ barHeight = (int)(coef1*size[1]);
+ distrHeight = 0;
}
barHeight = (int)(coef1*size[1]);
for (i=0; i<numPts/2; i++) {
x[0] = i*delta;
x[1] = barHeight;
- pts->SetPoint(2*i,x);
+ pts->SetPoint(2*i,x);
x[1] = distrHeight + delimeter;
pts->SetPoint(2*i+1,x);
}
if(GetDistributionVisibility() && distrVisibility) {
- // Distribution points
- shrink = delta*SHRINK_COEF;
- vtkIdType distPtsId=0;
- vtkIdType distPtsIds[4];
- for(i=0; i<numColors; i++) {
- if(myNbValues[i]) {
- itemH = distrHeight*((double)myNbValues[i]/maxValue);
-
- // first point of polygon (quadrangle)
- x[0] = i*delta+shrink;
- x[1] = 0;
- distPtsIds[0] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // second point of polygon (quadrangle)
- x[0] = i*delta+shrink;
- x[1] = itemH;
- distPtsIds[3] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // third point of polygon (quadrangle)
- x[0] = i*delta+delta-shrink;
- x[1] = 0;
- distPtsIds[1] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // fourth point of polygon (quadrangle)
- x[0] = i*delta+delta-shrink;
- x[1] = itemH;
- distPtsIds[2] = distPtsId;
- distrPts->SetPoint(distPtsId++,x);
-
- // Add polygon into poly data
- distrPolys->InsertNextCell(4,distPtsIds);
- }
- }
+ // Distribution points
+ shrink = delta*SHRINK_COEF;
+ vtkIdType distPtsId=0;
+ vtkIdType distPtsIds[4];
+ for(i=0; i<numColors; i++) {
+ if(myNbValues[i]) {
+ itemH = distrHeight*((double)myNbValues[i]/maxValue);
+
+ // first point of polygon (quadrangle)
+ x[0] = i*delta+shrink;
+ x[1] = 0;
+ distPtsIds[0] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // second point of polygon (quadrangle)
+ x[0] = i*delta+shrink;
+ x[1] = itemH;
+ distPtsIds[3] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // third point of polygon (quadrangle)
+ x[0] = i*delta+delta-shrink;
+ x[1] = 0;
+ distPtsIds[1] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // fourth point of polygon (quadrangle)
+ x[0] = i*delta+delta-shrink;
+ x[1] = itemH;
+ distPtsIds[2] = distPtsId;
+ distrPts->SetPoint(distPtsId++,x);
+
+ // Add polygon into poly data
+ distrPolys->InsertNextCell(4,distPtsIds);
+ }
+ }
}
// rnv end
}
// rnv begin
// Customization of the vtkScalarBarActor to show distribution histogram.
if(myNbValues[i] && myDistributionColoringType == SMESH_MULTICOLOR_TYPE && GetDistributionVisibility() && distrVisibility)
- {
- rgb = distColors->GetPointer(3*dcCount); //write into array directly
- rgb[0] = rgba[0];
- rgb[1] = rgba[1];
- rgb[2] = rgba[2];
- dcCount++;
- }
+ {
+ rgb = distColors->GetPointer(3*dcCount); //write into array directly
+ rgb[0] = rgba[0];
+ rgb[1] = rgba[1];
+ rgb[2] = rgba[2];
+ dcCount++;
+ }
}
// Now position everything properly
double coef;
if( GetDistributionVisibility() && distrVisibility )
if(this->Orientation == VTK_ORIENT_VERTICAL)
- coef = 0.4;
+ coef = 0.4;
else
- coef = 0.18;
+ coef = 0.18;
else
if(this->Orientation == VTK_ORIENT_VERTICAL)
- coef = 0.6;
+ coef = 0.6;
else
- coef=0.25;
+ coef=0.25;
if ( this->Orientation == VTK_ORIENT_VERTICAL )