myEdgeProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
myEdgeProp->SetLineWidth(aLineWidth);
+ // my1DActor is used to
+ // - show numbers
+ // - show controls on all edges (eg Length)
+ // since edges are shown by myHighlitableActor
my1DActor = SMESH_CellLabelActor::New();
my1DActor->SetStoreClippingMapping(true);
my1DActor->SetUserMatrix(aMatrix);
my1DExtProp->SetLineWidth(aLineWidth + aLineWidthInc);
my1DExtProp->SetPointSize(aElem0DSize);
+ // my1DExtActor is used to show filtered edges or links between nodes
my1DExtActor = SMESH_DeviceActor::New();
my1DExtActor->SetUserMatrix(aMatrix);
my1DExtActor->PickableOff();
if( !mgr )
return;
- myControlMode = eNone;
+ //myControlMode = eNone;
+ myControlMode = theMode;
theCheckEntityMode &= mgr->booleanValue( "SMESH", "display_entity", false );
my0DActor->GetMapper()->SetScalarVisibility(false);
return;
}
- vtkUnstructuredGrid* aGrid = myControlActor->GetUnstructuredGrid();
- vtkIdType aNbCells = aGrid->GetNumberOfCells();
+ int aNbCells = myFunctor ? myVisualObj->GetNbEntities( myFunctor->GetType() ) : 0;
bool aShowOnlyScalarBarTitle = false;
if(aNbCells) {
- myControlMode = theMode;
+ //myControlMode = theMode;
switch(myControlMode){
case eFreeNodes:
case eCoincidentNodes:
SetEntityMode(eEdges);
}
else if(myControlActor == my2DActor) {
- switch(myControlMode) {
- case eLength2D:
- case eFreeEdges:
- case eFreeFaces:
- case eMultiConnection2D:
- if (!myIsEntityModeCache){
- myEntityModeCache = GetEntityMode();
- myIsEntityModeCache=true;
- }
- SetEntityMode(eFaces);
- break;
- default:
- if (!myIsEntityModeCache){
- myEntityModeCache = GetEntityMode();
- myIsEntityModeCache=true;
- }
- SetEntityMode(eFaces);
+ if (!myIsEntityModeCache){
+ myEntityModeCache = GetEntityMode();
+ myIsEntityModeCache=true;
}
- }else if(myControlActor == my3DActor) {
+ SetEntityMode(eFaces);
+ }
+ else if(myControlActor == my3DActor) {
if (!myIsEntityModeCache){
myEntityModeCache = GetEntityMode();
myIsEntityModeCache=true;
if (isLogarithmic && range[0] > 1e-07 && range[1] > 1e-07)
lookupTable->SetScale(VTK_SCALE_LOG10);
- Update();
+ //Update();
}
int SMESH_ActorDef::GetNumberControlEntities()
if ( !mySelector || !mySelector->IsSelectionEnabled() )
{
myBaseActor->SetUnstructuredGrid( NULL );
- myHighlitableActor->SetUnstructuredGrid( NULL );
+ //myHighlitableActor->SetUnstructuredGrid( NULL );
}
theRenderer->AddActor(myBaseActor);
theRenderer->AddActor(myNodeExtActor);
case eCoincidentNodes:
myNodeExtActor->VisibilityOn();
break;
+ case eLength:
+ case eMultiConnection:
+ my1DActor->VisibilityOn();
+ break;
case eFreeEdges:
case eFreeBorders:
case eCoincidentElems1D:
+ case eLength2D:
+ case eMultiConnection2D:
my1DExtActor->VisibilityOn();
break;
case eFreeFaces:
case eCoincidentElems3D:
my3DExtActor->VisibilityOn();
break;
- case eLength2D:
- case eMultiConnection2D:
- my1DExtActor->VisibilityOn();
- break;
default:;
}
- if(myControlActor->GetUnstructuredGrid()->GetNumberOfCells())
+ if ( myFunctor && myVisualObj->GetNbEntities( myFunctor->GetType() ))
myScalarBarActor->VisibilityOn();
}
- if(myRepresentation != ePoint)
- myPickableActor->VisibilityOn();
- else {
- myNodeActor->VisibilityOn();
- }
-
- if(myEntityMode & e0DElements && GetRepresentation() != ePoint ){
- my0DActor->VisibilityOn();
- }
- if(myEntityMode & eBallElem && GetRepresentation() != ePoint ){
- myBallActor->VisibilityOn();
- }
-
- if(myEntityMode & eEdges && GetRepresentation() != ePoint){
- my1DActor->VisibilityOn();
- }
+ myPickableActor->VisibilityOn();
- if(myEntityMode & eFaces && GetRepresentation() != ePoint){
- my2DActor->VisibilityOn();
- }
-
- if(myEntityMode & eVolumes && GetRepresentation() != ePoint){
- my3DActor->VisibilityOn();
+ if ( GetRepresentation() != ePoint )
+ {
+ if(myEntityMode & e0DElements ){
+ my0DActor->VisibilityOn();
+ }
+ if(myEntityMode & eBallElem ){
+ myBallActor->VisibilityOn();
+ }
+ if(myEntityMode & eEdges && GetCellsLabeled() ){ // my1DActor shows labels only
+ my1DActor->VisibilityOn();
+ }
+ if(myEntityMode & eFaces ){
+ my2DActor->VisibilityOn();
+ }
+ if(myEntityMode & eVolumes ){
+ my3DActor->VisibilityOn();
+ }
}
- if(myNodeActor->GetPointsLabeled()){
+ if(myNodeActor->GetPointsLabeled()) {
+ myNodeActor->UpdateLabels();
myNodeActor->VisibilityOn();
}
-
if(my0DActor)
my0DActor->UpdateLabels();
}
myPickableActor = myBaseActor;
- myNodeActor->SetVisibility(false);
- myNodeExtActor->SetVisibility(false);
vtkProperty *aProp = NULL, *aBackProp = NULL;
vtkProperty *aPropVN = NULL, *aPropVR = NULL;
SMESH_DeviceActor::EReperesent aReperesent = SMESH_DeviceActor::EReperesent(-1);
switch (myRepresentation) {
case ePoint:
myPickableActor = myNodeActor;
- myNodeActor->SetVisibility(true);
aQuadraticMode = SMESH_Actor::eLines;
aProp = aBackProp = aPropVN = aPropVR = myNodeProp;
aReperesent = SMESH_DeviceActor::ePoint;
break;
}
- my2DActor->SetProperty(aProp);
- my2DActor->SetBackfaceProperty(aBackProp);
- my2DActor->SetRepresentation(aReperesent);
+ if ( myRepresentation != ePoint )
+ {
+ my2DActor->SetProperty(aProp);
+ my2DActor->SetBackfaceProperty(aBackProp);
+ my2DActor->SetRepresentation(aReperesent);
- if(aQuadraticMode == SMESH_Actor::eLines)
- my2DActor->SetQuadraticArcMode(false);
- else if(aQuadraticMode == SMESH_Actor::eArcs)
- my2DActor->SetQuadraticArcMode(true);
+ if(aQuadraticMode == SMESH_Actor::eLines)
+ my2DActor->SetQuadraticArcMode(false);
+ else if(aQuadraticMode == SMESH_Actor::eArcs)
+ my2DActor->SetQuadraticArcMode(true);
- my2DExtActor->SetRepresentation(aReperesent);
+ my2DExtActor->SetRepresentation(aReperesent);
- my3DActor->SetProperty(aPropVN);
- my3DActor->SetBackfaceProperty(aPropVR);
- my3DActor->SetRepresentation(aReperesent);
+ my3DActor->SetProperty(aPropVN);
+ my3DActor->SetBackfaceProperty(aPropVR);
+ my3DActor->SetRepresentation(aReperesent);
+ my0DActor->SetRepresentation(aReperesent);
+ myBallActor->SetRepresentation(aReperesent);
- my1DExtActor->SetVisibility(false);
- my2DExtActor->SetVisibility(false);
- my3DExtActor->SetVisibility(false);
-
- my0DActor->SetRepresentation(aReperesent);
- myBallActor->SetRepresentation(aReperesent);
-
- switch ( myControlMode ) {
- case eLength:
- case eMultiConnection:
- aProp = aBackProp = my1DProp;
- if(myRepresentation != ePoint)
- aReperesent = SMESH_DeviceActor::eInsideframe;
- break;
- default:;
- }
+ switch ( myControlMode ) {
+ case eLength:
+ case eMultiConnection:
+ aProp = aBackProp = my1DProp;
+ if(myRepresentation != ePoint)
+ aReperesent = SMESH_DeviceActor::eInsideframe;
+ break;
+ default:;
+ }
- if(aQuadraticMode == SMESH_Actor::eLines)
- my1DActor->SetQuadraticArcMode(false);
- else if(aQuadraticMode == SMESH_Actor::eArcs)
- my1DActor->SetQuadraticArcMode(true);
+ if(aQuadraticMode == SMESH_Actor::eLines)
+ my1DActor->SetQuadraticArcMode(false);
+ else if(aQuadraticMode == SMESH_Actor::eArcs)
+ my1DActor->SetQuadraticArcMode(true);
- my1DActor->SetProperty(aProp);
- my1DActor->SetBackfaceProperty(aBackProp);
- my1DActor->SetRepresentation(aReperesent);
+ my1DActor->SetProperty(aProp);
+ my1DActor->SetBackfaceProperty(aBackProp);
+ my1DActor->SetRepresentation(aReperesent);
- my1DExtActor->SetRepresentation(aReperesent);
+ my1DExtActor->SetRepresentation(aReperesent);
+ }
if(myIsPointsVisible)
myPickableActor = myNodeActor;
- if(GetPointRepresentation())
- myNodeActor->SetVisibility(true);
SetMapper(myPickableActor->GetMapper());
case SMESH_DeviceActor::eSurface:
case SMESH_DeviceActor::eWireframe:
{
- // if ( !mySelector || !mySelector->IsSelectionEnabled() )
- // myHighlitableActor->SetUnstructuredGrid( NULL );
- // else if ( !myHighlitableActor->myExtractUnstructuredGrid->GetInput() )
- // myHighlitableActor->SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
-
if(myIsHighlighted) {
myHighlitableActor->SetProperty(myHighlightProp);
}else if(myIsPreselected){
}
myNodeActor->SetRepresentation(SMESH_DeviceActor::ePoint);
myNodeActor->GetExtractUnstructuredGrid()->SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
+ myNodeActor->GetProperty()->Modified();
break;
}
}
if ( enable && ! myBaseActor->myExtractUnstructuredGrid->GetInput() )
{
myBaseActor->SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
- myHighlitableActor->SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
+ //myHighlitableActor->SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
myBaseActor->myExtractUnstructuredGrid->Update();
- myHighlitableActor->myExtractUnstructuredGrid->Update();
+ //myHighlitableActor->myExtractUnstructuredGrid->Update();
}
if ( !enable && myBaseActor->myExtractUnstructuredGrid->GetInput() )
{
myBaseActor->SetUnstructuredGrid( NULL );
- myHighlitableActor->SetUnstructuredGrid( NULL );
+ //myHighlitableActor->SetUnstructuredGrid( NULL );
myBaseActor->myExtractUnstructuredGrid->Update();
- myHighlitableActor->myExtractUnstructuredGrid->Update();
+ //myHighlitableActor->myExtractUnstructuredGrid->Update();
}
}
int SMESH_ActorDef::RenderOpaqueGeometry(vtkViewport *vp)
{
if (myPickableActor->GetIsOpaque())
- {
+ {
vtkRenderer *ren = static_cast<vtkRenderer *>(vp);
this->Render(ren);
return 1;
- }
+ }
return 0;
}
int SMESH_ActorDef::RenderTranslucentGeometry(vtkViewport *vp)
{
if (!myPickableActor->GetIsOpaque())
- {
+ {
vtkRenderer *ren = static_cast<vtkRenderer *>(vp);
this->Render(ren);
return 1;
- }
+ }
return 0;
}
void SMESH_ActorDef::Render(vtkRenderer *ren)
{
- unsigned long aTime = myTimeStamp->GetMTime();
- unsigned long anObjTime = myVisualObj->GetUnstructuredGrid()->GetMTime();
- unsigned long aClippingTime = myImplicitBoolean->GetMTime();
+ vtkMTimeType aTime = myTimeStamp->GetMTime();
+ vtkMTimeType anObjTime = myVisualObj->GetUnstructuredGrid()->GetMTime();
+ vtkMTimeType aClippingTime = myImplicitBoolean->GetMTime();
if(anObjTime > aTime || aClippingTime > aTime)
Update();
}
if ( !mySelector || !mySelector->IsSelectionEnabled() )
{
myBaseActor->SetUnstructuredGrid( NULL );
- myHighlitableActor->SetUnstructuredGrid( NULL );
+ //myHighlitableActor->SetUnstructuredGrid( NULL );
}
my1DActor->SetPlaneCollection( myPlaneCollection );
my1DActor->SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());