mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-05-31 05:57:51 +05:00
Fix for bug PAL13107 ( EDF248 - GEOM - UpdateViewer on python functions ).
This commit is contained in:
parent
225e5b820d
commit
4a2420a9a5
@ -347,14 +347,15 @@ const char* GEOM_Swig::getShapeTypeIcon(const char* IOR)
|
|||||||
return "None";
|
return "None";
|
||||||
}
|
}
|
||||||
|
|
||||||
void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode)
|
void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode, bool isUpdated)
|
||||||
{
|
{
|
||||||
class TEvent: public SALOME_Event {
|
class TEvent: public SALOME_Event {
|
||||||
std::string myEntry;
|
std::string myEntry;
|
||||||
int myMode;
|
int myMode;
|
||||||
|
bool myUpdateViewer;
|
||||||
public:
|
public:
|
||||||
TEvent(const char* theEntryArg, int theModeArg):
|
TEvent(const char* theEntryArg, int theModeArg, bool theUpdated):
|
||||||
myEntry(theEntryArg), myMode(theModeArg)
|
myEntry(theEntryArg), myMode(theModeArg), myUpdateViewer(theUpdated)
|
||||||
{}
|
{}
|
||||||
virtual void Execute() {
|
virtual void Execute() {
|
||||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||||
@ -366,29 +367,31 @@ void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode)
|
|||||||
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
||||||
SVTK_View* aView = aViewWindow->getView();
|
SVTK_View* aView = aViewWindow->getView();
|
||||||
aView->SetDisplayMode(anIO, myMode);
|
aView->SetDisplayMode(anIO, myMode);
|
||||||
aView->Repaint();
|
if (myUpdateViewer)
|
||||||
|
aView->Repaint();
|
||||||
}
|
}
|
||||||
else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||||
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
||||||
if (soccViewer)
|
if (soccViewer)
|
||||||
soccViewer->switchRepresentation(anIO, myMode);
|
soccViewer->switchRepresentation(anIO, myMode, myUpdateViewer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ProcessVoidEvent(new TEvent (theEntry, theMode));
|
ProcessVoidEvent(new TEvent (theEntry, theMode, isUpdated));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue, bool isUpdated)
|
||||||
{
|
{
|
||||||
class TEvent: public SALOME_Event {
|
class TEvent: public SALOME_Event {
|
||||||
std::string myEntry;
|
std::string myEntry;
|
||||||
int myRed;
|
int myRed;
|
||||||
int myGreen;
|
int myGreen;
|
||||||
int myBlue;
|
int myBlue;
|
||||||
|
bool myUpdateViewer;
|
||||||
public:
|
public:
|
||||||
TEvent(const char* theEntryArg, int theR, int theG, int theB):
|
TEvent(const char* theEntryArg, int theR, int theG, int theB, bool theUpdated):
|
||||||
myEntry(theEntryArg), myRed(theR), myGreen(theG), myBlue(theB)
|
myEntry(theEntryArg), myRed(theR), myGreen(theG), myBlue(theB), myUpdateViewer(theUpdated)
|
||||||
{}
|
{}
|
||||||
virtual void Execute() {
|
virtual void Execute() {
|
||||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||||
@ -401,7 +404,8 @@ void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
|||||||
SVTK_View* aView = aViewWindow->getView();
|
SVTK_View* aView = aViewWindow->getView();
|
||||||
QColor aColor (myRed, myGreen, myBlue);
|
QColor aColor (myRed, myGreen, myBlue);
|
||||||
aView->SetColor(anIO, aColor);
|
aView->SetColor(anIO, aColor);
|
||||||
aView->Repaint();
|
if (myUpdateViewer)
|
||||||
|
aView->Repaint();
|
||||||
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||||
Handle(AIS_InteractiveContext) ic = occViewer->getAISContext();
|
Handle(AIS_InteractiveContext) ic = occViewer->getAISContext();
|
||||||
AIS_ListOfInteractive List;
|
AIS_ListOfInteractive List;
|
||||||
@ -417,24 +421,26 @@ void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
|||||||
if (ite.Value()->IsKind(STANDARD_TYPE(GEOM_AISShape)))
|
if (ite.Value()->IsKind(STANDARD_TYPE(GEOM_AISShape)))
|
||||||
Handle(GEOM_AISShape)::DownCast(ite.Value())->SetShadingColor(CSFColor);
|
Handle(GEOM_AISShape)::DownCast(ite.Value())->SetShadingColor(CSFColor);
|
||||||
ite.Value()->Redisplay(Standard_True);
|
ite.Value()->Redisplay(Standard_True);
|
||||||
occViewer->update();
|
if (myUpdateViewer)
|
||||||
|
occViewer->update();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ProcessVoidEvent(new TEvent(theEntry, red, green, blue));
|
ProcessVoidEvent(new TEvent(theEntry, red, green, blue, isUpdated));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GEOM_Swig::setTransparency(const char* theEntry, float transp)
|
void GEOM_Swig::setTransparency(const char* theEntry, float transp, bool isUpdated)
|
||||||
{
|
{
|
||||||
class TEvent: public SALOME_Event {
|
class TEvent: public SALOME_Event {
|
||||||
std::string myEntry;
|
std::string myEntry;
|
||||||
float myParam;
|
float myParam;
|
||||||
|
bool myUpdateViewer;
|
||||||
public:
|
public:
|
||||||
TEvent(const char* theEntryArg, float theParam):
|
TEvent(const char* theEntryArg, float theParam, bool theUpdated):
|
||||||
myEntry(theEntryArg), myParam(theParam)
|
myEntry(theEntryArg), myParam(theParam), myUpdateViewer(theUpdated)
|
||||||
{}
|
{}
|
||||||
virtual void Execute() {
|
virtual void Execute() {
|
||||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||||
@ -446,16 +452,17 @@ void GEOM_Swig::setTransparency(const char* theEntry, float transp)
|
|||||||
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
||||||
SVTK_View* aView = aViewWindow->getView();
|
SVTK_View* aView = aViewWindow->getView();
|
||||||
aView->SetTransparency(anIO, myParam);
|
aView->SetTransparency(anIO, myParam);
|
||||||
aView->Repaint();
|
if (myUpdateViewer)
|
||||||
|
aView->Repaint();
|
||||||
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||||
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
||||||
if (soccViewer)
|
if (soccViewer)
|
||||||
soccViewer->setTransparency(anIO, myParam);
|
soccViewer->setTransparency(anIO, myParam, myUpdateViewer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ProcessVoidEvent(new TEvent (theEntry, transp));
|
ProcessVoidEvent(new TEvent (theEntry, transp, isUpdated));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,9 +52,9 @@ public:
|
|||||||
void createAndDisplayGO(const char* Entry, bool isUpdated = true);
|
void createAndDisplayGO(const char* Entry, bool isUpdated = true);
|
||||||
void eraseGO(const char* Entry, bool allWindows);
|
void eraseGO(const char* Entry, bool allWindows);
|
||||||
void createAndDisplayFitAllGO(const char* Entry);
|
void createAndDisplayFitAllGO(const char* Entry);
|
||||||
void setDisplayMode(const char* Entry, int mode);
|
void setDisplayMode(const char* Entry, int mode, bool isUpdated = true);
|
||||||
void setColor(const char* Entry, int red, int green, int blue);
|
void setColor(const char* Entry, int red, int green, int blue, bool isUpdated = true);
|
||||||
void setTransparency(const char* Entry, float transp);
|
void setTransparency(const char* Entry, float transp, bool isUpdated = true);
|
||||||
void setDeflection(const char* Entry, float deflect);
|
void setDeflection(const char* Entry, float deflect);
|
||||||
|
|
||||||
int getIndexTopology(const char *SubEntry, const char *Entry);
|
int getIndexTopology(const char *SubEntry, const char *Entry);
|
||||||
|
@ -42,9 +42,9 @@ class GEOM_Swig
|
|||||||
int getIndexTopology(const char *SubEntry, const char *Entry);
|
int getIndexTopology(const char *SubEntry, const char *Entry);
|
||||||
const char* getShapeTypeString(const char *Entry);
|
const char* getShapeTypeString(const char *Entry);
|
||||||
|
|
||||||
void setDisplayMode(const char* Entry, int mode);
|
void setDisplayMode(const char* Entry, int mode, bool isUpdated =true);
|
||||||
void setColor(const char* Entry, int red, int green, int blue);
|
void setColor(const char* Entry, int red, int green, int blue, bool isUpdated =true);
|
||||||
void setTransparency(const char* Entry, float transp);
|
void setTransparency(const char* Entry, float transp, bool isUpdated =true);
|
||||||
void setDeflection(const char* Entry, float deflect);
|
void setDeflection(const char* Entry, float deflect);
|
||||||
const char* getShapeTypeIcon(const char *Ior);
|
const char* getShapeTypeIcon(const char *Ior);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user