#include "BasicGUI_PlaneDlg.h" // Method PLANE
#include "BasicGUI_WorkingPlaneDlg.h" // Method WORKING PLANE
+static BasicGUI* myBasicGUI = 0;
+
//=======================================================================
// function : BasicGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+BasicGUI* BasicGUI::GetOrCreateGUI()
+{
+ myBasicGUI = new BasicGUI();
+ return myBasicGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool BasicGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ BasicGUI::GetOrCreateGUI();
+ myBasicGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myBasicGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 4011: // POINT
{
Handle(AIS_InteractiveContext) ic;
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ if(myBasicGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myBasicGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
ic = v3d->getAISContext();
}
- BasicGUI_PointDlg *aDlg = new BasicGUI_PointDlg(parent, "", this, Sel, ic);
+ BasicGUI_PointDlg *aDlg = new BasicGUI_PointDlg(parent, "", myBasicGUI, Sel, ic);
break;
}
case 4012: // LINE
{
- BasicGUI_LineDlg *aDlg = new BasicGUI_LineDlg(parent, "", this, Sel);
+ BasicGUI_LineDlg *aDlg = new BasicGUI_LineDlg(parent, "", myBasicGUI, Sel);
break;
}
case 4013: // CIRCLE
{
- BasicGUI_CircleDlg *aDlg = new BasicGUI_CircleDlg(parent, "", this, Sel);
+ BasicGUI_CircleDlg *aDlg = new BasicGUI_CircleDlg(parent, "", myBasicGUI, Sel);
break;
}
case 4014: // ELLIPSE
{
- BasicGUI_EllipseDlg *aDlg = new BasicGUI_EllipseDlg(parent, "", this, Sel);
+ BasicGUI_EllipseDlg *aDlg = new BasicGUI_EllipseDlg(parent, "", myBasicGUI, Sel);
break;
}
case 4015: // ARC
{
- BasicGUI_ArcDlg *aDlg = new BasicGUI_ArcDlg(parent, "", this, Sel);
+ BasicGUI_ArcDlg *aDlg = new BasicGUI_ArcDlg(parent, "", myBasicGUI, Sel);
break ;
}
case 4016: // VECTOR
{
- BasicGUI_VectorDlg *aDlg = new BasicGUI_VectorDlg(parent, "", this, Sel);
+ BasicGUI_VectorDlg *aDlg = new BasicGUI_VectorDlg(parent, "", myBasicGUI, Sel);
break;
}
case 4017: // PLANE
{
- BasicGUI_PlaneDlg *aDlg = new BasicGUI_PlaneDlg(parent, "", this, Sel);
+ BasicGUI_PlaneDlg *aDlg = new BasicGUI_PlaneDlg(parent, "", myBasicGUI, Sel);
break;
}
case 4018: // WORKING PLANE
{
- BasicGUI_WorkingPlaneDlg *aDlg = new BasicGUI_WorkingPlaneDlg(parent, "", this, Sel);
+ BasicGUI_WorkingPlaneDlg *aDlg = new BasicGUI_WorkingPlaneDlg(parent, "", myBasicGUI, Sel);
break;
}
default:
myGeomGUI->GetDesktop()->putInfo(tr("GEOM_PRP_DONE"));
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return BasicGUI::OnGUIEvent(theCommandID, parent);}
+}
BasicGUI();
~BasicGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static BasicGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakePointAndDisplay(const double x, const double y, const double z);
void MakeLineAndDisplay(const gp_Pnt InitPoint, const gp_Pnt LastPoint);
const Standard_Real dz, const Standard_Real TrimSize);
void MakeWorkingPlane(const gp_Pnt P, const gp_Dir D);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
void BasicGUI_ArcDlg::SelectionIntoArgument()
{
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
void BasicGUI_ArcDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
//=================================================================================
void BasicGUI_ArcDlg::MakeArcSimulationAndDisplay()
{
- myGeomGUI->EraseSimulationShape();
+ myGeomGUI->EraseSimulationShape();
mySimulationTopoDs.Nullify();
try {
myRadius = 100.0;
myOkPoint1 = myOkDir = false;
- myEdgeFilter = new GEOM_EdgeFilter(StdSelect_Line, myGeom);
+ myEdgeFilter = new GEOM_ShapeTypeFilter(TopAbs_EDGE, myGeom);
myVertexFilter = new GEOM_ShapeTypeFilter(TopAbs_VERTEX, myGeom);
mySelection->AddFilter(myVertexFilter);
if(myOkPoint1 && myOkDir)
myBasicGUI->MakeCircleAndDisplay(myPoint1, myDir, myRadius);
+ return;
}
void BasicGUI_CircleDlg::SelectionIntoArgument()
{
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
GroupPoints->LineEdit1->setText(aString);
myOkPoint1 = true;
}
- else if (myEditCurrentArgument == GroupPoints->LineEdit2) {
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2) {
BRepAdaptor_Curve curv(TopoDS::Edge(S));
myDir = curv.Line().Direction();
GroupPoints->LineEdit2->setText(aString);
void BasicGUI_CircleDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
//=================================================================================
void BasicGUI_CircleDlg::enterEvent(QEvent* e)
{
- if (GroupConstructors->isEnabled())
+ if(GroupConstructors->isEnabled())
return;
this->ActivateThisDialog();
return;
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void BasicGUI_CircleDlg::ValueChangedInSpinBox( double newValue )
+void BasicGUI_CircleDlg::ValueChangedInSpinBox(double newValue)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
-
myRadius = newValue;
-
- if (myOkPoint1 && myOkDir)
+ if(myOkPoint1 && myOkDir)
MakeCircleSimulationAndDisplay();
return;
}
#include "BasicGUI.h"
-#include "GEOM_EdgeFilter.hxx"
-
#include <gp_Dir.hxx>
//=================================================================================
double step;
Handle(GEOM_ShapeTypeFilter) myVertexFilter;
- Handle(GEOM_EdgeFilter) myEdgeFilter; /* Filter selection */
+ Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* Filter selection */
gp_Pnt myPoint1;
gp_Dir myDir;
myMinorRadius = 100.0;
myOkPoint = myOkDir = false;
- myEdgeFilter = new GEOM_EdgeFilter(StdSelect_Line, myGeom);
+ myEdgeFilter = new GEOM_ShapeTypeFilter(TopAbs_EDGE, myGeom);
myVertexFilter = new GEOM_ShapeTypeFilter(TopAbs_VERTEX, myGeom);
mySelection->AddFilter(myVertexFilter);
//=================================================================================
void BasicGUI_EllipseDlg::SelectionIntoArgument()
{
- myGeomGUI->EraseSimulationShape();
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
void BasicGUI_EllipseDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void BasicGUI_EllipseDlg::ValueChangedInSpinBox( double newValue )
+void BasicGUI_EllipseDlg::ValueChangedInSpinBox(double newValue)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
QObject* send = (QObject*)sender();
if(send == GroupPoints->SpinBox_DX )
#include "BasicGUI.h"
-#include "GEOM_EdgeFilter.hxx"
-
#include <gp_Dir.hxx>
//=================================================================================
double step;
Handle(GEOM_ShapeTypeFilter) myVertexFilter;
- Handle(GEOM_EdgeFilter) myEdgeFilter; /* Filter selection */
+ Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* Filter selection */
gp_Pnt myPoint; /* Central point of ellipse */
bool myOkPoint; /* true when myPoint is defined */
void BasicGUI_LineDlg::SelectionIntoArgument()
{
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
myOkPoint2 = true;
}
- if(myOkPoint1 && myOkPoint2 && myPoint1.Distance(myPoint2) > Precision::Confusion() ) {
- mySimulationTopoDs = BRepBuilderAPI_MakeEdge(myPoint1, myPoint2).Shape();
- /* Try to add an arrow at simulation shape */
- bool notNeedToTest = this->AddArrowToSimulation(mySimulationTopoDs);
- myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
- }
+ if(myOkPoint1 && myOkPoint2 && myPoint1.Distance(myPoint2) > Precision::Confusion())
+ this->MakeLineSimulationAndDisplay();
return;
}
void BasicGUI_LineDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
//=================================================================================
void BasicGUI_LineDlg::enterEvent(QEvent* e)
{
- if(GroupConstructors->isEnabled())
+ if(GroupConstructors->isEnabled())
return;
this->ActivateThisDialog();
return;
//=================================================================================
-// function : AddArrowToSimulation()
+// function : MakeLineSimulationAndDisplay()
// purpose : An arrow (cone topology) is added to 'modifiedShape'
// : to simulate a vector or an 'oriented line' display. The result is in 'modifiedShape'.
// : If an arrow can't be added returns false and 'modifiedShape' isn't modified !
//=================================================================================
-bool BasicGUI_LineDlg::AddArrowToSimulation(TopoDS_Shape& modifiedShape)
+void BasicGUI_LineDlg::MakeLineSimulationAndDisplay()
{
- TopoDS_Shape arrow;
- /* Try to add a cone simulation shape to show direction of a linear edge */
- if(myGeomGUI->CreateArrowForLinearEdge(modifiedShape, arrow)) {
- TopoDS_Compound Comp;
- BRep_Builder B;
- B.MakeCompound (Comp);
- B.Add(Comp, modifiedShape);
- B.Add(Comp, arrow);
- modifiedShape = Comp;
- return true;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ try {
+ mySimulationTopoDs = BRepBuilderAPI_MakeEdge(myPoint1, myPoint2).Shape();
+ TopoDS_Shape arrow;
+ if(myGeomGUI->CreateArrowForLinearEdge(mySimulationTopoDs, arrow)) {
+ TopoDS_Compound Comp;
+ BRep_Builder B;
+ B.MakeCompound (Comp);
+ B.Add(Comp, mySimulationTopoDs);
+ B.Add(Comp, arrow);
+ mySimulationTopoDs = Comp;
+ }
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
- return false;
+ catch(Standard_Failure) {
+ MESSAGE("Exception catched in MakeLineSimulationAndDisplay");
+ return;
+ }
+ return;
}
private :
void Init();
void enterEvent(QEvent* e);
- bool AddArrowToSimulation(TopoDS_Shape& modifiedShape);
+ void MakeLineSimulationAndDisplay();
BasicGUI* myBasicGUI;
Handle(GEOM_ShapeTypeFilter) myVertexFilter; /* Filter selection */
myConstructorId = constructorId;
mySelection->ClearFilters();
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
myOkPoint1 = myOkDirection = myOkCoordinates = myOkPlanarFace = false;
myGeomGUI->GetBipointDxDyDz(Pfirst, Plast, myDx, myDy, myDz);
GroupPointDirection->LineEdit2->setText(aString);
myOkDirection = true;
- this->myTrimSize = GroupPointDirection->SpinBox_DX->GetValue();
+ myTrimSize = GroupPointDirection->SpinBox_DX->GetValue();
}
}
myDx = GroupPointPlusCoordinates->SpinBox_DX->GetValue();
myDy = GroupPointPlusCoordinates->SpinBox_DY->GetValue();
myDz = GroupPointPlusCoordinates->SpinBox_DZ->GetValue();
- this->myTrimSize = GroupPointPlusCoordinates->SpinBox_S->GetValue();
+ myTrimSize = GroupPointPlusCoordinates->SpinBox_S->GetValue();
myOkPoint1 = true;
myOkCoordinates = true;
}
myDx = (ax.Direction()).X();
myDy = (ax.Direction()).Y();
myDz = (ax.Direction()).Z();
- this->myTrimSize = GroupFace->SpinBox_DX->GetValue();
+ myTrimSize = GroupFace->SpinBox_DX->GetValue();
}
}
/* Call method simulation */
if((myOkPoint1 && myOkDirection) || (myOkPoint1 && myOkCoordinates) || myOkPlanarFace) {
if(myDx*myDx + myDy*myDy + myDz*myDz > Precision::Confusion()*Precision::Confusion())
- MakePlaneSimulationAndDisplay(myPoint1, myDx, myDy, myDz, myTrimSize) ;
+ this->MakePlaneSimulationAndDisplay();
}
return;
}
void BasicGUI_PlaneDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
- mySelection->ClearFilters() ;
+ mySelection->ClearFilters();
switch (myConstructorId)
{
myEditCurrentArgument = GroupPointDirection->LineEdit2;
/* Edge filter here */
mySelection->AddFilter(myEdgeFilter);
- SelectionIntoArgument();
}
break;
}
myEditCurrentArgument = GroupPointPlusCoordinates->LineEdit1;
/* Vertex filter here */
mySelection->AddFilter(myVertexFilter);
- SelectionIntoArgument();
}
break;
}
myEditCurrentArgument = GroupFace->LineEdit1;
/* Face filter here */
mySelection->AddFilter(myFaceFilter);
- SelectionIntoArgument();
}
break;
}
}
- return ;
+ this->SelectionIntoArgument();
+ return;
}
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void BasicGUI_PlaneDlg::ValueChangedInSpinBox( double newValue )
+void BasicGUI_PlaneDlg::ValueChangedInSpinBox(double newValue)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
- QObject* send = (QObject*)sender() ;
+ QObject* send = (QObject*)sender();
- if(send == GroupPointPlusCoordinates->SpinBox_DX) {
+ if(send == GroupPointPlusCoordinates->SpinBox_DX)
myDx = newValue;
- myDy = GroupPointPlusCoordinates->SpinBox_DY->GetValue();
- myDz = GroupPointPlusCoordinates->SpinBox_DZ->GetValue();
- } else if(send == GroupPointPlusCoordinates->SpinBox_DY) {
- myDx = GroupPointPlusCoordinates->SpinBox_DX->GetValue();
+ else if(send == GroupPointPlusCoordinates->SpinBox_DY)
myDy = newValue;
- myDz = GroupPointPlusCoordinates->SpinBox_DZ->GetValue();
- } else if(send == GroupPointPlusCoordinates->SpinBox_DZ) {
- myDx = GroupPointPlusCoordinates->SpinBox_DX->GetValue();
- myDy = GroupPointPlusCoordinates->SpinBox_DY->GetValue();
+ else if(send == GroupPointPlusCoordinates->SpinBox_DZ)
myDz = newValue;
- } else if(send == GroupPointDirection->SpinBox_DX || send == GroupPointPlusCoordinates->SpinBox_S || send == GroupFace->SpinBox_DX) {
+ else if(send == GroupPointDirection->SpinBox_DX || send == GroupPointPlusCoordinates->SpinBox_S || send == GroupFace->SpinBox_DX) {
myTrimSize = newValue;
} else
return;
if((myOkPoint1 && myOkDirection) || (myOkPoint1 && myOkCoordinates) || myOkPlanarFace) {
- if (myDx*myDx + myDy*myDy + myDz*myDz > Precision::Confusion() * Precision::Confusion())
- MakePlaneSimulationAndDisplay( myPoint1, myDx, myDy, myDz, myTrimSize);
+ if(myDx*myDx + myDy*myDy + myDz*myDz > Precision::Confusion() * Precision::Confusion())
+ this->MakePlaneSimulationAndDisplay();
}
-
- return ;
+ return;
}
// function : MakePlaneSimulationAndDisplay(()
// purpose :
//=================================================================================
-void BasicGUI_PlaneDlg::MakePlaneSimulationAndDisplay(const gp_Pnt& P1,
- const Standard_Real dx,
- const Standard_Real dy,
- const Standard_Real dz,
- const Standard_Real trimsize)
+void BasicGUI_PlaneDlg::MakePlaneSimulationAndDisplay()
{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
try {
- gp_Dir aDirection(dx, dy, dz);
+ gp_Dir aDirection(myDx, myDy, myDz);
/* We make a trimmed plane */
- gp_Pln gplane(P1, aDirection);
- mySimulationTopoDs = BRepBuilderAPI_MakeFace(gplane, -trimsize, +trimsize, -trimsize, +trimsize);
+ gp_Pln gplane(myPoint1, aDirection);
+ mySimulationTopoDs = BRepBuilderAPI_MakeFace(gplane, -myTrimSize, +myTrimSize, -myTrimSize, +myTrimSize);
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
catch(Standard_Failure) {
MESSAGE( "Exception catched in MakePlaneSimulation" << endl );
return;
}
-
- myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
- return ;
+ return;
}
private :
void Init();
void enterEvent(QEvent* e);
+ void MakePlaneSimulationAndDisplay();
BasicGUI* myBasicGUI;
void SetEditCurrentArgument();
void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox(double newValue);
- void MakePlaneSimulationAndDisplay(const gp_Pnt& P, const Standard_Real dx,
- const Standard_Real dy, const Standard_Real dz,
- const Standard_Real trimSize);
};
myConstructorId = constructorId;
mySelection->ClearFilters();
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
disconnect(mySelection, 0, this, 0);
switch (constructorId)
void BasicGUI_PointDlg::SelectionIntoArgument()
{
myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
//=================================================================================
void BasicGUI_PointDlg::SetEditCurrentArgument()
{
- if(myConstructorId != 0)
- return;
-
QPushButton* send = (QPushButton*)sender();
if(send == GroupPoints->PushButton1) {
//=================================================================================
void BasicGUI_PointDlg::ValueChangedInSpinBox(double newValue)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
-
DlgRef_SpinBox* send = (DlgRef_SpinBox*)sender();
double vx, vy, vz;
+
if(send == GroupDimensions->SpinBox_DX) {
vx = newValue;
vy = GroupDimensions->SpinBox_DY->GetValue();
void BasicGUI_WorkingPlaneDlg::ClickOnApply()
{
myGeomGUI->GetDesktop()->putInfo(tr(""));
- mySelection->ClearFilters();
if(myOkPlane)
myBasicGUI->MakeWorkingPlane(myLoc, myDir);
int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
if(nbSel != 1) {
- if(myEditCurrentArgument == GroupWPlane->LineEdit1)
- myOkPlane = false;
+ myOkPlane = false;
return;
}
if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
return;
- if(myEditCurrentArgument == GroupWPlane->LineEdit1) {
- BRepAdaptor_Surface surf(TopoDS::Face(S));
- gp_Pln Plane = surf.Plane();
- myLoc = Plane.Location();
- myDir = Plane.Axis().Direction();
-
- GroupWPlane->LineEdit1->setText(aString);
- myOkPlane = true;
- }
+ BRepAdaptor_Surface surf(TopoDS::Face(S));
+ gp_Pln Plane = surf.Plane();
+ myLoc = Plane.Location();
+ myDir = Plane.Axis().Direction();
+
+ GroupWPlane->LineEdit1->setText(aString);
+ myOkPlane = true;
/* no simulation */
return;
//=================================================================================
void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument()
{
- QPushButton* send = (QPushButton*)sender();
-
- if(send == GroupWPlane->PushButton1) {
- GroupWPlane->LineEdit1->setFocus();
- myEditCurrentArgument = GroupWPlane->LineEdit1;
- mySelection->AddFilter(myFaceFilter);
- SelectionIntoArgument();
- }
+ GroupWPlane->LineEdit1->setFocus();
+ this->SelectionIntoArgument();
return;
}
//=================================================================================
void BasicGUI_WorkingPlaneDlg::LineEditReturnPressed()
{
- QLineEdit* send = (QLineEdit*)sender();
- if(send == GroupWPlane->LineEdit1)
- myEditCurrentArgument = GroupWPlane->LineEdit1;
- else
- return;
-
GEOMBase_Skeleton::LineEditReturnPressed();
return;
}
using namespace std;
#include "BooleanGUI.h"
-#include "QAD_Application.h"
-#include "SALOMEGUI_QtCatchCorbaException.hxx"
-
#include "BooleanGUI_FuseDlg.h" // Method FUSE
#include "BooleanGUI_CommonDlg.h" // Method COMMON
#include "BooleanGUI_CutDlg.h" // Method CUT
#include "BooleanGUI_SectionDlg.h" // Method SECTION
+static BooleanGUI* myBooleanGUI = 0;
+
//=======================================================================
// function : BooleanGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+BooleanGUI* BooleanGUI::GetOrCreateGUI()
+{
+ myBooleanGUI = new BooleanGUI();
+ return myBooleanGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool BooleanGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ BooleanGUI::GetOrCreateGUI();
+ myBooleanGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myBooleanGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 5011: // FUSE
{
- BooleanGUI_FuseDlg *aDlg = new BooleanGUI_FuseDlg(parent, "", this, Sel);
+ BooleanGUI_FuseDlg *aDlg = new BooleanGUI_FuseDlg(parent, "", myBooleanGUI, Sel);
break;
}
case 5012: // COMMON
{
- BooleanGUI_CommonDlg *aDlg = new BooleanGUI_CommonDlg(parent, "", this, Sel);
+ BooleanGUI_CommonDlg *aDlg = new BooleanGUI_CommonDlg(parent, "", myBooleanGUI, Sel);
break;
}
case 5013: // CUT
{
- BooleanGUI_CutDlg *aDlg = new BooleanGUI_CutDlg(parent, "", this, Sel);
+ BooleanGUI_CutDlg *aDlg = new BooleanGUI_CutDlg(parent, "", myBooleanGUI, Sel);
break;
}
case 5014: // SECTION
{
- BooleanGUI_SectionDlg *aDlg = new BooleanGUI_SectionDlg(parent, "", this, Sel);
+ BooleanGUI_SectionDlg *aDlg = new BooleanGUI_SectionDlg(parent, "", myBooleanGUI, Sel);
break;
}
default:
}
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return BooleanGUI::OnGUIEvent(theCommandID, parent);}
+}
BooleanGUI();
~BooleanGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static BooleanGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeBooleanAndDisplay(GEOM::GEOM_Shape_ptr Shape1,
GEOM::GEOM_Shape_ptr Shape2,
const short operation);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
#include "BuildGUI_SolidDlg.h" // Method SOLID
#include "BuildGUI_CompoundDlg.h" // Method COMPOUND
+static BuildGUI* myBuildGUI = 0;
+
//=======================================================================
// function : BuildGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+BuildGUI* BuildGUI::GetOrCreateGUI()
+{
+ myBuildGUI = new BuildGUI();
+ return myBuildGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool BuildGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ BuildGUI::GetOrCreateGUI();
+ myBuildGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myBuildGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 407: // EXPLODE : use ic
{
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
- Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
- BuildGUI_SubShapeDlg *aDlg = new BuildGUI_SubShapeDlg(parent, "", this, Sel, ic);
+ Handle(AIS_InteractiveContext) ic;
+ if(myBuildGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myBuildGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ ic = v3d->getAISContext();
+ }
+ BuildGUI_SubShapeDlg *aDlg = new BuildGUI_SubShapeDlg(parent, "", myBuildGUI, Sel, ic);
break ;
}
case 4081: // GEOM::EDGE
{
- BuildGUI_EdgeDlg *aDlg = new BuildGUI_EdgeDlg(parent, "", this, Sel);
+ BuildGUI_EdgeDlg *aDlg = new BuildGUI_EdgeDlg(parent, "", myBuildGUI, Sel);
break;
}
case 4082: // GEOM::WIRE
{
- BuildGUI_WireDlg *aDlg = new BuildGUI_WireDlg(parent, "", this, Sel);
+ BuildGUI_WireDlg *aDlg = new BuildGUI_WireDlg(parent, "", myBuildGUI, Sel);
break;
}
case 4083: // GEOM::FACE
{
- BuildGUI_FaceDlg *aDlg = new BuildGUI_FaceDlg(parent, "", this, Sel);
+ BuildGUI_FaceDlg *aDlg = new BuildGUI_FaceDlg(parent, "", myBuildGUI, Sel);
break;
}
case 4084: // GEOM::SHELL
{
- BuildGUI_ShellDlg *aDlg = new BuildGUI_ShellDlg(parent, "", this, Sel);
+ BuildGUI_ShellDlg *aDlg = new BuildGUI_ShellDlg(parent, "", myBuildGUI, Sel);
break;
}
case 4085: // GEOM::SOLID
{
- BuildGUI_SolidDlg *aDlg = new BuildGUI_SolidDlg(parent, "", this, Sel);
+ BuildGUI_SolidDlg *aDlg = new BuildGUI_SolidDlg(parent, "", myBuildGUI, Sel);
break;
}
case 4086: // GEOM::COMPOUND
{
- BuildGUI_CompoundDlg *aDlg = new BuildGUI_CompoundDlg(parent, "", this, Sel);
+ BuildGUI_CompoundDlg *aDlg = new BuildGUI_CompoundDlg(parent, "", myBuildGUI, Sel);
break;
}
default:
anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributePixMap");
aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- MESSAGE( " Type " << S.ShapeType() )
- if ( S.ShapeType() == TopAbs_COMPOUND ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPOUND" );
- } else if ( S.ShapeType() == TopAbs_COMPSOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPSOLID" );
- } else if ( S.ShapeType() == TopAbs_SOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SOLID" );
- } else if ( S.ShapeType() == TopAbs_SHELL ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SHELL" );
- } else if ( S.ShapeType() == TopAbs_FACE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_FACE" );
- } else if ( S.ShapeType() == TopAbs_WIRE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_WIRE" );
- } else if ( S.ShapeType() == TopAbs_EDGE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_EDGE" );
- } else if ( S.ShapeType() == TopAbs_VERTEX ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_VERTEX" );
- }
-
- MESSAGE ( " aPixmap->GetPixMap " << aPixmap->GetPixMap() )
+ MESSAGE(" Type " << S.ShapeType())
+ if (S.ShapeType() == TopAbs_COMPOUND)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPOUND");
+ else if(S.ShapeType() == TopAbs_COMPSOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPSOLID");
+ else if(S.ShapeType() == TopAbs_SOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SOLID");
+ else if(S.ShapeType() == TopAbs_SHELL)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SHELL");
+ else if(S.ShapeType() == TopAbs_FACE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_FACE");
+ else if(S.ShapeType() == TopAbs_WIRE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_WIRE");
+ else if(S.ShapeType() == TopAbs_EDGE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_EDGE");
+ else if(S.ShapeType() == TopAbs_VERTEX)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_VERTEX");
+
+ MESSAGE(" aPixmap->GetPixMap " << aPixmap->GetPixMap())
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
aStudyBuilder->Addreference(newObj1, newObj);
IO->setEntry(newObj->GetID());
- aResult->StudyShapeId( newObj->GetID() );
- } else {
+ aResult->StudyShapeId(newObj->GetID());
+ }
+ else {
allreadyexist = true;
- if ( !myGeomGUI->SObjectExist(theObj, aResult->Name()) ) {
+ if(!myGeomGUI->SObjectExist(theObj, aResult->Name())) {
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(theObj);
aStudyBuilder->Addreference(newObj1, SO);
IO->setEntry(SO->GetID());
- aResult->StudyShapeId( SO->GetID() );
+ aResult->StudyShapeId(SO->GetID());
}
}
- result->setIO( IO );
- result->setName( nameG );
- if ( !allreadyexist )
+ result->setIO(IO);
+ result->setName(nameG);
+ if(!allreadyexist)
ic->Display(result);
- } else if ( myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) {
+ }
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
VTKViewer_RenderWindowInteractor* myRenderInter= ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRWInteractor();
int themode = myRenderInter->GetDisplayMode();
vtkRenderer *theRenderer = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer();
vtkRenderWindow *renWin = theRenderer->GetRenderWindow();
- Handle(GEOM_InteractiveObject) IO = new GEOM_InteractiveObject(aResult->Name(), myGeomGUI->GetFatherior(),"GEOM");
+ Handle(GEOM_InteractiveObject) IO = new GEOM_InteractiveObject(aResult->Name(), myGeomGUI->GetFatherior(), "GEOM");
- if ( SO->_is_nil() ) {
- SALOMEDS::SObject_var newObj = aStudyBuilder->NewObject( theObj );
+ if(SO->_is_nil()) {
+ SALOMEDS::SObject_var newObj = aStudyBuilder->NewObject(theObj);
anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributeIOR");
anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
anIOR->SetValue(aResult->Name());
anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributePixMap");
aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- if ( S.ShapeType() == TopAbs_COMPOUND ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPOUND" );
- } else if ( S.ShapeType() == TopAbs_COMPSOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPSOLID" );
- } else if ( S.ShapeType() == TopAbs_SOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SOLID" );
- } else if ( S.ShapeType() == TopAbs_SHELL ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SHELL" );
- } else if ( S.ShapeType() == TopAbs_FACE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_FACE" );
- } else if ( S.ShapeType() == TopAbs_WIRE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_WIRE" );
- } else if ( S.ShapeType() == TopAbs_EDGE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_EDGE" );
- } else if ( S.ShapeType() == TopAbs_VERTEX ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_VERTEX" );
- }
+ if(S.ShapeType() == TopAbs_COMPOUND)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPOUND");
+ else if(S.ShapeType() == TopAbs_COMPSOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPSOLID");
+ else if(S.ShapeType() == TopAbs_SOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SOLID");
+ else if(S.ShapeType() == TopAbs_SHELL)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SHELL");
+ else if(S.ShapeType() == TopAbs_FACE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_FACE");
+ else if(S.ShapeType() == TopAbs_WIRE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_WIRE");
+ else if(S.ShapeType() == TopAbs_EDGE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_EDGE");
+ else if(S.ShapeType() == TopAbs_VERTEX)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_VERTEX");
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
aStudyBuilder->Addreference(newObj1, newObj);
IO->setEntry(newObj->GetID());
- } else {
+ }
+ else {
allreadyexist = true;
- if ( !myGeomGUI->SObjectExist(theObj, aResult->Name()) ) {
+ if(!myGeomGUI->SObjectExist(theObj, aResult->Name())) {
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(theObj);
aStudyBuilder->Addreference(newObj1, SO);
IO->setEntry(SO->GetID());
}
}
- if ( !allreadyexist ) {
- vtkActorCollection* theActors =
- GEOM_AssemblyBuilder::BuildActors(S,0,themode,Standard_True);
+ if(!allreadyexist) {
+ vtkActorCollection* theActors = GEOM_AssemblyBuilder::BuildActors(S,0,themode,Standard_True);
theActors->InitTraversal();
vtkActor* anActor = (vtkActor*)theActors->GetNextActor();
while(!(anActor==NULL)) {
- GEOM_Actor* GActor = GEOM_Actor::SafeDownCast( anActor );
- GActor->setIO( IO );
- GActor->setName( nameG );
+ GEOM_Actor* GActor = GEOM_Actor::SafeDownCast(anActor);
+ GActor->setIO(IO);
+ GActor->setName(nameG);
theRenderer->AddActor(GActor);
renWin->Render();
anActor = (vtkActor*)theActors->GetNextActor();
/* commit transaction */
op->finish();
-
+
myGeomGUI->GetActiveStudy()->updateObjBrowser();
myGeomGUI->GetDesktop()->putInfo (tr("GEOM_PRP_READY"));
- return true ;
+ return true;
}
// function : OnSubShapeGetSelected()
// purpose :
//=====================================================================================
-bool BuildGUI::OnSubShapeGetSelected( const TopoDS_Shape& ShapeTopo,
- const char* ShapeTopoIOR,
- const int SubShapeType,
- Standard_Integer& aLocalContextId,
- bool& myUseLocalContext )
+bool BuildGUI::OnSubShapeGetSelected(const TopoDS_Shape& ShapeTopo, const char* ShapeTopoIOR, const int SubShapeType, Standard_Integer& aLocalContextId, bool& myUseLocalContext)
{
//* Test the type of viewer */
- if ( myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC ) {
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
return false;
- }
- SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
- SALOMEDS::SObject_var theObj = aStudy->FindObjectIOR( ShapeTopoIOR );
- if ( theObj->_is_nil() ) {
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::SObject_var theObj = aStudy->FindObjectIOR(ShapeTopoIOR);
+ if(theObj->_is_nil()) {
myGeomGUI->GetDesktop()->putInfo(tr("GEOM_PRP_SHAPE_IN_STUDY"));
- return false ;
+ return false;
}
-
OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
- Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+ Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
if( myUseLocalContext == false ) {
/* local context is from DialogBox */
TopoDS_Shape mainShape;
bool main = false;
- while ( !main ) {
- if ( aShape->IsMainShape() ) {
+ while(!main) {
+ if(aShape->IsMainShape()) {
mainShape = myGeomGUI->GetShapeReader().GetShape(myGeom, aShape);
main = true;
- } else
- aShape = myGeom->GetIORFromString( aShape->MainName() );
+ }
+ else
+ aShape = myGeom->GetIORFromString(aShape->MainName());
}
GEOM::GEOM_Shape::ListOfSubShapeID_var ListOfID = new GEOM::GEOM_Shape::ListOfSubShapeID;
TopoDS_Compound compound;
ic->InitSelected(); /* to init again */
BRep_Builder B;
- B.MakeCompound( compound );
+ B.MakeCompound(compound);
int i = 0;
/* We create a unique compound containing all the sub shapes selected by user as attribute of the main shape */
/* the compound is homogenous by selection */
while(ic->MoreSelected()) {
- int index = myGeomGUI->GetIndex( ic->SelectedShape(), mainShape, SubShapeType );
- ListOfID[i] = index ;
- B.Add( compound, ic->SelectedShape() );
+ int index = myGeomGUI->GetIndex(ic->SelectedShape(), mainShape, SubShapeType);
+ ListOfID[i] = index;
+ B.Add(compound, ic->SelectedShape());
i++;
ic->NextSelected();
}
/* Test if user has selected sub shapes */
- if( ListOfID->length() < 1 )
- return false ;
+ if(ListOfID->length() < 1)
+ return false;
- GEOM::GEOM_Shape_var aResult ;
+ GEOM::GEOM_Shape_var aResult;
try {
- aResult = myGeom->SubShape( aShape, SubShapeType, ListOfID );
+ aResult = myGeom->SubShape(aShape, SubShapeType, ListOfID);
}
catch (const SALOME::SALOME_Exception& S_ex) {
QtCatchCorbaException(S_ex);
}
/* local context from DialogBox */
- ic->CloseLocalContext(aLocalContextId) ;
+ ic->CloseLocalContext(aLocalContextId);
myUseLocalContext = false ;
- char* nameG = (char *)malloc(20);
+ char* nameG = (char *)malloc(20);
Standard_CString Type;
Handle(GEOM_AISShape) result;
- Handle(GEOM_InteractiveObject) IO ;
-
- // if ( !myGeomGUI->SObjectExist(theObj, aResult->Name()) ) {
- if ( nbSelected == 1 ) {
- TopExp_Explorer Exp ( compound, TopAbs_ShapeEnum(SubShapeType) );
- if ( Exp.More() ) {
- if ( myGeomGUI->GetShapeTypeString(Exp.Current(),Type) ) {
- aResult->NameType( Type );
- sprintf (nameG, "%s_%d", Type, myGeomGUI->GetIndex( Exp.Current(), mainTopo, SubShapeType ) );
- } else {
- aResult->NameType( tr("GEOM_SHAPE") );
- sprintf (nameG, "%s_%d", tr("GEOM_SHAPE").latin1(), myGeomGUI->GetNbGeom()++ );
+ Handle(GEOM_InteractiveObject) IO;
+
+ if(nbSelected == 1) {
+ TopExp_Explorer Exp (compound, TopAbs_ShapeEnum(SubShapeType));
+ if(Exp.More()) {
+ if(myGeomGUI->GetShapeTypeString(Exp.Current(),Type)) {
+ aResult->NameType(Type);
+ sprintf (nameG, "%s_%d", Type, myGeomGUI->GetIndex( Exp.Current(), mainTopo, SubShapeType));
+ }
+ else {
+ aResult->NameType(tr("GEOM_SHAPE"));
+ sprintf (nameG, "%s_%d", tr("GEOM_SHAPE").latin1(), myGeomGUI->GetNbGeom()++);
}
- result = new GEOM_AISShape( Exp.Current(), nameG );
+ result = new GEOM_AISShape(Exp.Current(), nameG);
IO = new GEOM_InteractiveObject(aResult->Name(), myGeomGUI->GetFatherior(), "GEOM");
}
}
else {
- if ( myGeomGUI->GetShapeTypeString(compound,Type) ) {
- aResult->NameType( Type );
- sprintf (nameG, "%s_%d", Type, myGeomGUI->GetNbGeom()++ );
+ if ( myGeomGUI->GetShapeTypeString(compound,Type)) {
+ aResult->NameType(Type);
+ sprintf (nameG, "%s_%d", Type, myGeomGUI->GetNbGeom()++);
} else {
- aResult->NameType( tr("GEOM_SHAPE") );
- sprintf (nameG, "%s_%d", tr("GEOM_SHAPE").latin1(), myGeomGUI->GetNbGeom()++ );
+ aResult->NameType(tr("GEOM_SHAPE"));
+ sprintf (nameG, "%s_%d", tr("GEOM_SHAPE").latin1(), myGeomGUI->GetNbGeom()++);
}
- result = new GEOM_AISShape( compound, nameG );
+ result = new GEOM_AISShape(compound, nameG);
IO = new GEOM_InteractiveObject(aResult->Name(), myGeomGUI->GetFatherior(), "GEOM");
}
- SALOMEDS::SObject_var SO = aStudy->FindObjectIOR( aResult->Name() );
+ SALOMEDS::SObject_var SO = aStudy->FindObjectIOR(aResult->Name());
/* open transaction */
- QAD_Operation* op = new SALOMEGUI_ImportOperation( myGeomGUI->GetActiveStudy() );
+ QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
op->start();
- SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
- SALOMEDS::SObject_var fatherSF = aStudy->FindObjectID(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->entry());
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+ SALOMEDS::SObject_var fatherSF = aStudy->FindObjectID(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->entry());
SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributePixMap_var aPixmap;
+ SALOMEDS::AttributeName_var aName;
+ SALOMEDS::AttributeIOR_var anIOR;
+ SALOMEDS::AttributePixMap_var aPixmap;
bool allreadyexist = false;
- if ( SO->_is_nil() ) {
- SALOMEDS::SObject_var newObj = aStudyBuilder->NewObject( theObj );
+ if(SO->_is_nil()) {
+ SALOMEDS::SObject_var newObj = aStudyBuilder->NewObject(theObj);
anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributeIOR");
anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
anIOR->SetValue(aResult->Name());
anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributePixMap");
aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- if ( result->Shape().ShapeType() == TopAbs_COMPOUND ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPOUND" );
- } else if ( result->Shape().ShapeType() == TopAbs_COMPSOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPSOLID" );
- } else if ( result->Shape().ShapeType() == TopAbs_SOLID ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SOLID" );
- } else if ( result->Shape().ShapeType() == TopAbs_SHELL ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SHELL" );
- } else if ( result->Shape().ShapeType() == TopAbs_FACE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_FACE" );
- } else if ( result->Shape().ShapeType() == TopAbs_WIRE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_WIRE" );
- } else if ( result->Shape().ShapeType() == TopAbs_EDGE ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_EDGE" );
- } else if ( result->Shape().ShapeType() == TopAbs_VERTEX ) {
- aPixmap->SetPixMap( "ICON_OBJBROWSER_VERTEX" );
- }
+ if(result->Shape().ShapeType() == TopAbs_COMPOUND)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPOUND");
+ else if(result->Shape().ShapeType() == TopAbs_COMPSOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPSOLID");
+ else if(result->Shape().ShapeType() == TopAbs_SOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SOLID");
+ else if(result->Shape().ShapeType() == TopAbs_SHELL)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SHELL");
+ else if(result->Shape().ShapeType() == TopAbs_FACE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_FACE");
+ else if(result->Shape().ShapeType() == TopAbs_WIRE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_WIRE");
+ else if(result->Shape().ShapeType() == TopAbs_EDGE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_EDGE");
+ else if(result->Shape().ShapeType() == TopAbs_VERTEX)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_VERTEX");
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
aStudyBuilder->Addreference(newObj1, newObj);
IO->setEntry(newObj->GetID());
aResult->StudyShapeId(newObj->GetID());
- } else {
+ }
+ else {
allreadyexist = true;
- if ( !myGeomGUI->SObjectExist(theObj, aResult->Name()) ) {
+ if(!myGeomGUI->SObjectExist(theObj, aResult->Name())) {
SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(theObj);
aStudyBuilder->Addreference(newObj1, SO);
/* commit transaction */
op->finish();
- result->setIO( IO );
- result->setName( nameG );
+ result->setIO(IO);
+ result->setName(nameG);
- if ( !allreadyexist )
+ if(!allreadyexist)
ic->Display(result);
GEOMBase_Display* myDisplayGUI = new GEOMBase_Display();
myGeomGUI->GetDesktop()->putInfo (tr("GEOM_PRP_READY"));
return true;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return BuildGUI::OnGUIEvent(theCommandID, parent);}
+}
BuildGUI();
~BuildGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static BuildGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeLinearEdgeAndDisplay(const gp_Pnt P1, const gp_Pnt P2);
void MakeWireAndDisplay(GEOM::GEOM_Gen::ListOfIOR& listShapesIOR);
bool OnSubShapeGetSelected(const TopoDS_Shape& ShapeTopo, const char* ShapeTopoIOR, const int SubShapeType,
Standard_Integer& aLocalContextId, bool& myUseLocalContext);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
{
switch (theCommandID)
{
- case 211: // SHADING/WIREFRAME - MENU
+ case 211: // MENU VIEW - WIREFRAME/SHADING
{
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
QApplication::setOverrideCursor(waitCursor);
}
break;
}
- case 212: // DISPLAY ALL - MENU
+ case 212: // MENU VIEW - DISPLAY ALL
{
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRWInteractor()->DisplayAll();
this->OnDisplayAll();
break;
}
- case 214: // ERASE ALL - MENU
+ case 213: // MENU VIEW - DISPLAY ONLY
+ {
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
+ this->OnVTKDisplayOnly();
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC)
+ this->OnDisplayOnly();
+ break;
+ }
+ case 214: // MENU VIEW - ERASE ALL
{
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRWInteractor()->EraseAll();
}
break;
}
- case 8021: // WIREFRAME/SHADING - POPUP VIEWER
+ case 215: // MENU VIEW - ERASE ONLY
+ {
+ this->OnErase();
+ break;
+ }
+ case 8031: // POPUP VIEWER - WIREFRAME/SHADING
{
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
// VTK
QApplication::restoreOverrideCursor();
break;
}
- case 8022 : // ERASE - POPUP VIEWER
- {
- this->OnErase();
- break;
- }
- case 8023: // DISPLAY ONLY - POPUP VIEWER
- {
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
- this->OnVTKDisplayOnly();
- else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC)
- this->OnDisplayOnly();
- break;
- }
- case 9022 : // ERASE - OBJBROSER POPUP
- {
- this->OnErase();
- break;
- }
- case 9023 : // DISPLAY ONLY - OBJBROSER POPUP
- {
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
- this->OnVTKDisplayOnly();
- else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC)
- this->OnDisplayOnly();
- break;
- }
default:
{
parent->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
#include "OCCViewer_Viewer3d.h"
#include "VTKViewer_ViewFrame.h"
-#include "GEOM_AssemblyBuilder.h"
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SALOMEGUI_NameDlg.h"
SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
- SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
- Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
switch (theCommandID)
{
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
break;
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
QString SCr = QAD_CONFIG->getSetting("Geometry:SettingsShadingColorRed");
QString SCg = QAD_CONFIG->getSetting("Geometry:SettingsShadingColorGreen");
QString SCb = QAD_CONFIG->getSetting("Geometry:SettingsShadingColorBlue");
QColor color;
if(!SCr.isEmpty() && !SCg.isEmpty() && !SCb.isEmpty()) {
color = QColor (SCr.toInt(), SCg.toInt(), SCb.toInt());
- } else {
+ }
+ else {
Quantity_Color Default = Quantity_Color();
- color = QColor ((int)Default.Red() * 255.0,
- (int)Default.Green()* 255.0,
- (int)Default.Blue() * 255.0);
+ color = QColor ((int)Default.Red() * 255.0, (int)Default.Green()* 255.0, (int)Default.Blue() * 255.0);
}
QColor c = QColorDialog::getColor(color, myGeomGUI->GetDesktop());
if(c.isValid()) {
- myGeomGUI->GetShadingColor() = Quantity_Color(c.red() / 255.0, c.green() / 255.0,
- c.blue() / 255.0, Quantity_TOC_RGB);
+ myGeomGUI->GetShadingColor() = Quantity_Color(c.red() / 255.0, c.green() / 255.0, c.blue() / 255.0, Quantity_TOC_RGB);
AIS_ListOfInteractive List;
ic->DisplayedObjects(List);
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
break;
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
QString IsoU = QAD_CONFIG->getSetting("Geometry:SettingsIsoU");
QString IsoV = QAD_CONFIG->getSetting("Geometry:SettingsIsoV");
if(!IsoU.isEmpty())
}
}
break;
- }
- case 903: // DISPLAY OBJECT BROWSER
- {
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
- // VTK
- QApplication::setOverrideCursor(Qt::waitCursor);
-
- SALOMEDS::SObject_var fatherSF =
- aStudy->FindObjectID(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->entry());
-
- SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
-
- for(;It.More();It.Next()) {
- Handle(SALOME_InteractiveObject) IObject = It.Value();
- SALOMEDS::SObject_var obj = aStudy->FindObjectID(IObject->getEntry());
-
- VTKViewer_RenderWindowInteractor* myRenderInter = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRWInteractor();
-
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
-
- if(myRenderInter->isInViewer(IObject)) {
- myRenderInter->Display(IObject);
- }
- else {
- // Create new actor
- if (!obj->_is_nil()) {
- if(obj->FindAttribute(anAttr, "AttributeIOR")) {
- // this SObject may be GEOM module root SObject
- SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator(obj);
- bool useSubItems = false;
- while(anIter->More() && !useSubItems) {
- SALOMEDS::SObject_var subobj = anIter->Value();
- SALOMEDS::GenericAttribute_var aTmpAttr;
- if(subobj->FindAttribute(aTmpAttr, "AttributeIOR")) {
- anAttr = aTmpAttr;
- obj = subobj;
- useSubItems = true;
- }
- else
- anIter->Next();
- }
-
- while(useSubItems?anIter->More():!anAttr->_is_nil()) {
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- GEOM::GEOM_Shape_var aShape = myGeom->GetIORFromString(anIOR->Value());
- TopoDS_Shape Shape = myGeomGUI->GetShapeReader().GetShape(myGeom,aShape);
-
- if (obj->FindAttribute(anAttr, "AttributeName")) {
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- vtkRenderer* theRenderer = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer();
- vtkActorCollection* theAllActors = theRenderer->GetActors();
- theAllActors->InitTraversal();
- vtkActor* actor = (vtkActor*)theAllActors->GetNextActor();
- Handle(SALOME_InteractiveObject) anIObj;
- // don't create new study object if it already exists
- bool isDisplayed = false;
- while(!(actor==NULL)) {
- SALOME_Actor* Gactor = SALOME_Actor::SafeDownCast(actor);
- if(Gactor!=NULL) {
- if(Gactor->hasIO()) {
- if(strcmp(Gactor->getIO()->getEntry(),obj->GetID())==0) {
- isDisplayed = true;
- anIObj = Gactor->getIO();
- if(!anIObj.IsNull())
- myRenderInter->Display(anIObj);
- }
- }
- }
- actor=(vtkActor*)(theAllActors->GetNextActor());
- }
- if(!isDisplayed) {
- // open transaction
- QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
- op->start();
-
- SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
- aStudyBuilder->Addreference(newObj1, obj);
- // commit transaction
- op->finish();
-
- vtkRenderWindow *renWin = theRenderer->GetRenderWindow();
- int themode = myRenderInter->GetDisplayMode();
-
- vtkActorCollection* theActors =
- GEOM_AssemblyBuilder::BuildActors(Shape,0,themode,Standard_True);
- theActors->InitTraversal();
- vtkActor* anActor = (vtkActor*)theActors->GetNextActor();
- while(!(anActor==NULL)) {
- GEOM_Actor* GActor = GEOM_Actor::SafeDownCast( anActor );
- Handle(GEOM_InteractiveObject) IO = new GEOM_InteractiveObject(anIOR->Value(), myGeomGUI->GetFatherior(),"GEOM");
- IO->setEntry(obj->GetID());
- GActor->setIO(IO);
- GActor->setName(IObject->getName());
-
- theRenderer->AddActor(GActor);
- renWin->Render();
- anActor = (vtkActor*)theActors->GetNextActor();
- }
- }
- }
- // next item iteration
- if(useSubItems) {
- anIter->Next();
- anAttr = SALOMEDS::GenericAttribute::_nil();
- while (anIter->More() && anAttr->_is_nil()) {
- SALOMEDS::SObject_var subobject = anIter->Value();
- SALOMEDS::GenericAttribute_var aTmpAttribute;
- if (subobject->FindAttribute(aTmpAttribute, "AttributeIOR")) {
- anAttr = aTmpAttribute;
- obj = subobject;
- } else anIter->Next();
- }
- } else anAttr = SALOMEDS::GenericAttribute::_nil();
- }
- }
- }
- }
- }
- myGeomGUI->GetActiveStudy()->updateObjBrowser(true);
- QApplication::restoreOverrideCursor();
-
- } else if (myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- QApplication::setOverrideCursor( Qt::waitCursor );
- SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
- for(;It.More();It.Next()) {
- Handle(SALOME_InteractiveObject) IObject = It.Value();
-
- SALOMEDS::SObject_var fatherSF =
- aStudy->FindObjectID(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->entry());
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
-
- if(v3d->isInViewer(IObject, true)) {
- Standard_Boolean found;
- Handle(GEOM_AISShape) aSh = myGeomGUI->ConvertIOinGEOMAISShape(IObject, found, true);
- if(found) {
- ic->Display(aSh);
- ic->AddOrRemoveCurrentObject(aSh, true);
- }
-
- }
- else {
- SALOMEDS::SObject_var obj = aStudy->FindObjectID(IObject->getEntry());
- if(!obj->_is_nil()) {
- if(obj->FindAttribute(anAttr, "AttributeIOR")) {
- // this SObject may be GEOM module root SObject
- SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator(obj);
- bool useSubItems = false;
- while(anIter->More() && !useSubItems) {
- SALOMEDS::SObject_var subobj = anIter->Value();
- SALOMEDS::GenericAttribute_var aTmpAttr;
- if(subobj->FindAttribute(aTmpAttr, "AttributeIOR")) {
- anAttr = aTmpAttr;
- obj = subobj;
- useSubItems = true;
- } else anIter->Next();
- }
- while(useSubItems?anIter->More():!anAttr->_is_nil()) {
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- GEOM::GEOM_Shape_var aShape = myGeom->GetIORFromString(anIOR->Value());
- TopoDS_Shape Shape = myGeomGUI->GetShapeReader().GetShape(myGeom,aShape);
- if(obj->FindAttribute(anAttr, "AttributeName")) {
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- // searchin for already displayed objects with the same shape
- AIS_ListOfInteractive aDisplayed;
- ic->DisplayedObjects(aDisplayed);
- AIS_ListIteratorOfListOfInteractive anIObjects(aDisplayed);
- Handle(AIS_Shape) anAISShape;
- for(;anIObjects.More();anIObjects.Next()) {
- anAISShape = Handle(AIS_Shape)::DownCast(anIObjects.Value());
- if(!anAISShape.IsNull()) {
- if(anAISShape->Shape().IsSame(Shape))
- break;
- anAISShape.Nullify();
- }
- }
- if(!anAISShape.IsNull()) {
- if(!ic->IsDisplayed(anAISShape))
- ic->Display(anAISShape);
- }
- else {
- if(!useSubItems) {
- // open transaction
- QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
- op->start();
-
- SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
- aStudyBuilder->Addreference(newObj1, obj);
- // commit transaction
- op->finish();
- }
-
- Handle(GEOM_AISShape) aSh = new GEOM_AISShape(Shape, aName->Value());
- aSh->SetShadingColor(myGeomGUI->GetShadingColor());
- Handle(GEOM_InteractiveObject) IO =
- new GEOM_InteractiveObject(anIOR->Value(), myGeomGUI->GetFatherior(), "GEOM");
- IO->setEntry(obj->GetID());
- aSh->setIO(IO);
- aSh->setName(aName->Value());
- ic->Display(aSh);
- if(!useSubItems)
- ic->AddOrRemoveCurrentObject(aSh, true);
- }
- }
- // next item iteration
- if (useSubItems) {
- anIter->Next();
- anAttr=SALOMEDS::GenericAttribute::_nil();
- while(anIter->More() && anAttr->_is_nil()) {
- SALOMEDS::SObject_var subobject = anIter->Value();
- SALOMEDS::GenericAttribute_var aTmpAttribute;
- if(subobject->FindAttribute(aTmpAttribute, "AttributeIOR")) {
- anAttr = aTmpAttribute;
- obj = subobject;
- }
- else
- anIter->Next();
- }
- }
- else
- anAttr = SALOMEDS::GenericAttribute::_nil();
- }
- }
- }
- }
- }
- myGeomGUI->GetActiveStudy()->updateObjBrowser(true);
- QApplication::restoreOverrideCursor();
- }
- break;
}
case 5103: // CHECK GEOMETRY
{
Quantity_Color CSFColor;
Shape->Color(CSFColor);
- QColor c = QColorDialog::getColor(QColor(CSFColor.Red() * 255.0,
- CSFColor.Green()* 255.0,
- CSFColor.Blue() * 255.0),
- myGeomGUI->GetDesktop());
+ QColor c = QColorDialog::getColor(QColor(CSFColor.Red() * 255.0, CSFColor.Green()* 255.0, CSFColor.Blue() * 255.0), myGeomGUI->GetDesktop());
if(c.isValid()) {
CSFColor = Quantity_Color (c.red()/255., c.green()/255., c.blue()/255., Quantity_TOC_RGB);
}
case 8033: // TRANSPARENCY - POPUP VIEWER
{
+ OCCViewer_Viewer3d* v3d;
+ Handle(AIS_InteractiveContext) ic;
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+ }
GEOMBase_TransparencyDlg *aDlg = new GEOMBase_TransparencyDlg(parent, "", Sel, ic);
break;
}
if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
break;
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
ic->InitCurrent();
if(ic->MoreCurrent()) {
Handle(GEOM_AISShape) CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
Engines::Component_var comp = myGeomGUI->GetDesktop()->getEngine("FactoryServer","GEOM");
if (!CORBA::is_nil(comp)) {
SALOMEDS::Driver_var driver = SALOMEDS::Driver::_narrow(comp);
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
aStudyBuilder->LoadWith(aStudy->FindComponent("GEOM"),driver);
}
else {
#include <Prs3d_Drawer.hxx>
#include <Prs3d_IsoAspect.hxx>
#include <BRep_Tool.hxx>
+#include <OSD_SharedLibrary.hxx>
// SALOME Includes
#include "QAD_RightFrame.h"
#include "QAD_Resource.h"
+#include "QAD_Tools.h"
+#include "QAD_Config.h"
#include "OCCViewer_ViewPort.h"
#include "OCCViewer_ViewPort3d.h"
#include "GEOMBase_Tools.h"
#include "GEOMBase_Sketcher.h"
-#include "BasicGUI.h"
-#include "BasicGUI_PointDlg.h"
-#include "PrimitiveGUI.h"
-#include "GenerationGUI.h"
-#include "BuildGUI.h"
-#include "BooleanGUI.h"
-#include "TransformationGUI.h"
-#include "OperationGUI.h"
-#include "RepairGUI.h"
-#include "MeasureGUI.h"
+// #include "BasicGUI_PointDlg.h"
/* The object itself created in the static method 'GetOrCreateGEOMBase()' */
static GEOMBase_Context* GeomGUI = 0;
+typedef bool OneDim(int, QAD_Desktop*);
//=======================================================================
// class : CustomItem
}
+//=======================================================================
+// function : OnGUIEvent() [static]
+// purpose : manage all events on GUI
+//=======================================================================
+bool GeometryGUI::LoadLibrary(int theCommandID, QAD_Desktop* parent, QString GUILibrary)
+{
+ QCString libs;
+ QFileInfo fileInfo;
+ QString GUILib, fileString, dir;
+
+ OSD_SharedLibrary myGUILibrary = OSD_SharedLibrary();
+
+ if(libs = getenv("LD_LIBRARY_PATH")) {
+ QStringList dirList = QStringList::split(":", libs, false); // skip empty entries
+ for(int i = dirList.count()-1; i >= 0; i--) {
+ dir = dirList[i];
+ fileString = QAD_Tools::addSlash(dir) + GUILibrary;
+ fileInfo.setFile(fileString);
+ if(fileInfo.exists()) {
+ GUILib = fileInfo.fileName();
+ break;
+ }
+ }
+ }
+
+ myGUILibrary.SetName(TCollection_AsciiString((char*)GUILib.latin1()).ToCString());
+ bool ok = myGUILibrary.DlOpen(OSD_RTLD_LAZY);
+ if(!ok) {
+ return false;
+ }
+
+ OSD_Function osdF = myGUILibrary.DlSymb("OnGUIEvent");
+ OneDim (*f1) = NULL;
+ if(osdF != NULL) {
+ f1 = (bool (*) (int, QAD_Desktop*)) osdF;
+ (*f1)(theCommandID, parent);
+ }
+ else
+ return false;
+
+ return true;
+}
+
+
//=======================================================================
// function : OnGUIEvent() [static]
// purpose : manage all events on GUI
if (GeomGUI->GetState() == CURRENT_SKETCH && theCommandID != 404 && theCommandID != 4041 && theCommandID != 4042 && theCommandID != 4043 && theCommandID != 4044 && theCommandID != 4045 && theCommandID != 4046 && theCommandID != 4047 && theCommandID != 4048 && theCommandID != 4051 && theCommandID != 4052 && theCommandID != 4053 && theCommandID != 4061 && theCommandID != 4062 && theCommandID != 4063 && theCommandID != 4064 && theCommandID != 4065)
return false;
-
+// cout<<"GeometryGUI::OnGUIEvent : theCommandID = "<<theCommandID<<endl;
// QString theCommandID_str = itoa(theCommandID);
// theCommandID_str.truncate(3);
// int theCommandID_Group = theCommandID_str.toInt();
- if(theCommandID == 31 || theCommandID == 33 || theCommandID == 111 ||
- theCommandID == 112 || theCommandID == 113 || theCommandID == 121 ||
- theCommandID == 122 || theCommandID == 123 || theCommandID == 411 ||
- theCommandID == 412 || theCommandID == 413 || theCommandID == 414 ||
- theCommandID == 415 || theCommandID == 804 || theCommandID == 901 ||
- theCommandID == 903 || theCommandID == 5103 || theCommandID == 8032 ||
- theCommandID == 8033 || theCommandID == 8034 || theCommandID == 9024) {
+ if(theCommandID == 111 || // MENU FILE - IMPORT BREP
+ theCommandID == 112 || // MENU FILE - IMPORT IGES
+ theCommandID == 113 || // MENU FILE - IMPORT STEP
+ theCommandID == 121 || // MENU FILE - EXPORT BREP
+ theCommandID == 122 || // MENU FILE - EXPORT IGES
+ theCommandID == 123 || // MENU FILE - EXPORT STEP
+ theCommandID == 31 || // MENU EDIT - COPY
+ theCommandID == 33 || // MENU EDIT - DELETE
+ theCommandID == 411 || // MENU SETTINGS - COPY
+ theCommandID == 412 || // MENU SETTINGS - ADD IN STUDY
+ theCommandID == 413 || // MENU SETTINGS - SHADING COLOR
+ theCommandID == 414 || // MENU SETTINGS - ISOS
+ theCommandID == 415 || // MENU SETTINGS - STEP VALUE FOR SPIN BOXES
+ theCommandID == 5103 || // MENU TOOLS - CHECK GEOMETRY
+ theCommandID == 8032 || // POPUP VIEWER - COLOR
+ theCommandID == 8033 || // POPUP VIEWER - TRANSPARENCY
+ theCommandID == 8034 || // POPUP VIEWER - ISOS
+ theCommandID == 804 || // POPUP VIEWER - ADD IN STUDY
+ theCommandID == 901 || // OBJECT BROWSER - RENAME
+ theCommandID == 9024) { // OBJECT BROWSER - OPEN
GEOMBase_Tools* myToolsGUI = new GEOMBase_Tools();
myToolsGUI->OnGUIEvent(theCommandID, parent);
return true;
}
- if(theCommandID == 404 || theCommandID == 4041 || theCommandID == 4042 ||
- theCommandID == 4043 || theCommandID == 4044 || theCommandID == 4045 ||
- theCommandID == 4046 || theCommandID == 4047 || theCommandID == 4048 ||
- theCommandID == 4051 || theCommandID == 4052 || theCommandID == 4053 ||
- theCommandID == 4061 || theCommandID == 4062 || theCommandID == 4063 ||
- theCommandID == 4064 || theCommandID == 4065) {
- GEOMBase_Sketcher* mySketcherGUI = new GEOMBase_Sketcher();
- mySketcherGUI->OnGUIEvent(theCommandID, parent);
- return true;
- }
- if(theCommandID == 211 || theCommandID == 212 || theCommandID == 214 ||
- theCommandID == 8021 || theCommandID == 8022 || theCommandID == 8023 ||
- theCommandID == 9022 || theCommandID == 9023) {
+ if(theCommandID == 211 || // MENU VIEW - WIREFRAME/SHADING
+ theCommandID == 212 || // MENU VIEW - DISPLAY ALL
+ theCommandID == 213 || // MENU VIEW - DISPLAY ONLY
+ theCommandID == 214 || // MENU VIEW - ERASE ALL
+ theCommandID == 215 || // MENU VIEW - ERASE ONLY
+ theCommandID == 8031) { // POPUP VIEWER - WIREFRAME/SHADING
+
GEOMBase_Display* myDisplayGUI = new GEOMBase_Display();
myDisplayGUI->OnGUIEvent(theCommandID, parent);
return true;
}
- if(theCommandID == 4011 || theCommandID == 4012 || theCommandID == 4013 ||
- theCommandID == 4014 || theCommandID == 4015 || theCommandID == 4016 ||
- theCommandID == 4017 || theCommandID == 4018) {
- BasicGUI* myBasicGUI = new BasicGUI();
- myBasicGUI->OnGUIEvent(theCommandID, parent);
+ if(theCommandID == 404 || // SKETCHER
+ theCommandID == 4041 || // SKETCHER - POPUP VIEWER - SEGMENT
+ theCommandID == 4042 || // SKETCHER - POPUP VIEWER - ARC
+ theCommandID == 4043 || // SKETCHER - POPUP VIEWER - SET ANGLE
+ theCommandID == 4044 || // SKETCHER - POPUP VIEWER - SET X
+ theCommandID == 4045 || // SKETCHER - POPUP VIEWER - SET Y
+ theCommandID == 4046 || // SKETCHER - POPUP VIEWER - DELETE
+ theCommandID == 4047 || // SKETCHER - POPUP VIEWER - END
+ theCommandID == 4048 || // SKETCHER - POPUP VIEWER - CLOSE
+ theCommandID == 4051 || // SKETCHER - MENU - SET PLANE
+ theCommandID == 4052 || // SKETCHER - MENU - TANGENT
+ theCommandID == 4053 || // SKETCHER - MENU - PERPENDICULAR
+ theCommandID == 4061 || // SKETCHER - MENU - LENGTH
+ theCommandID == 4062 || // SKETCHER - MENU - ANGLE
+ theCommandID == 4063 || // SKETCHER - MENU - RADIUS
+ theCommandID == 4064 || // SKETCHER - MENU - X
+ theCommandID == 4065) { // SKETCHER - MENU - Y
+ GEOMBase_Sketcher* mySketcherGUI = new GEOMBase_Sketcher();
+ mySketcherGUI->OnGUIEvent(theCommandID, parent);
return true;
}
- if(theCommandID == 4021 || theCommandID == 4022 || theCommandID == 4023 ||
- theCommandID == 4024 || theCommandID == 4025) {
- PrimitiveGUI* myPrimitiveGUI = new PrimitiveGUI();
- myPrimitiveGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 4011 || // MENU BASIC - POINT
+ theCommandID == 4012 || // MENU BASIC - LINE
+ theCommandID == 4013 || // MENU BASIC - CIRCLE
+ theCommandID == 4014 || // MENU BASIC - ELLIPSE
+ theCommandID == 4015 || // MENU BASIC - ARC
+ theCommandID == 4016 || // MENU BASIC - VECTOR
+ theCommandID == 4017 || // MENU BASIC - PLANE
+ theCommandID == 4018) { // MENU BASIC - WPLANE
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libBasicGUI.so");
+ return testlib;
}
- if(theCommandID == 4031 || theCommandID == 4032 ||
- theCommandID == 4033 || theCommandID == 4034) {
- GenerationGUI* myGenerationGUI = new GenerationGUI();
- myGenerationGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 4021 || // MENU PRIMITIVE - BOX
+ theCommandID == 4022 || // MENU PRIMITIVE - CYLINDER
+ theCommandID == 4023 || // MENU PRIMITIVE - SPHERE
+ theCommandID == 4024 || // MENU PRIMITIVE - TORUS
+ theCommandID == 4025) { // MENU PRIMITIVE - CONE
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libPrimitiveGUI.so");
+ return testlib;
}
- if(theCommandID == 407 || theCommandID == 4081 || theCommandID == 4082 ||
- theCommandID == 4083 || theCommandID == 4084 || theCommandID == 4085 ||
- theCommandID == 4086) {
- BuildGUI* myBuildGUI = new BuildGUI();
- myBuildGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 4031 || // MENU GENERATION - PRISM
+ theCommandID == 4032 || // MENU GENERATION - REVOLUTION
+ theCommandID == 4033 || // MENU GENERATION - FILLING
+ theCommandID == 4034) { // MENU GENERATION - PIPE
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libGenerationGUI.so");
+ return testlib;
}
- if(theCommandID == 5011 || theCommandID == 5012 ||
- theCommandID == 5013 || theCommandID == 5014) {
- BooleanGUI* myBooleanGUI = new BooleanGUI();
- myBooleanGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 407 || // MENU BUILD - EXPLODE
+ theCommandID == 4081 || // MENU BUILD - EDGE
+ theCommandID == 4082 || // MENU BUILD - WIRE
+ theCommandID == 4083 || // MENU BUILD - FACE
+ theCommandID == 4084 || // MENU BUILD - SHELL
+ theCommandID == 4085 || // MENU BUILD - SOLID
+ theCommandID == 4086) { // MENU BUILD - COMPUND
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libBuildGUI.so");
+ return testlib;
}
- if(theCommandID == 5021 || theCommandID == 5022 || theCommandID == 5023 ||
- theCommandID == 5024 || theCommandID == 5025 || theCommandID == 5026) {
- TransformationGUI* myTransformationGUI = new TransformationGUI();
- myTransformationGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 5011 || // MENU BOOLEAN - FUSE
+ theCommandID == 5012 || // MENU BOOLEAN - COMMON
+ theCommandID == 5013 || // MENU BOOLEAN - CUT
+ theCommandID == 5014) { // MENU BOOLEAN - SECTION
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libBooleanGUI.so");
+ return testlib;
}
- if(theCommandID == 503 || theCommandID == 504 ||
- theCommandID == 505 || theCommandID == 506) {
- OperationGUI* myOperationGUI = new OperationGUI();
- myOperationGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 5021 || // MENU TRANSFORMATION - TRANSLATION
+ theCommandID == 5022 || // MENU TRANSFORMATION - ROTATION
+ theCommandID == 5023 || // MENU TRANSFORMATION - MIRROR
+ theCommandID == 5024 || // MENU TRANSFORMATION - SCALE
+ theCommandID == 5025 || // MENU TRANSFORMATION - MULTI-TRANSLATION
+ theCommandID == 5026) { // MENU TRANSFORMATION - MULTI-ROTATION
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libTransformationGUI.so");
+ return testlib;
}
- if(theCommandID == 601 || theCommandID == 602 ||
- theCommandID == 603 || theCommandID == 604) {
- RepairGUI* myRepairGUI = new RepairGUI();
- myRepairGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 503 || // MENU OPERATION - PARTITION
+ theCommandID == 504 || // MENU OPERATION - ARCHIMEDE
+ theCommandID == 505 || // MENU OPERATION - FILLET
+ theCommandID == 506) { // MENU OPERATION - CHAMFER
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libOperationGUI.so");
+ return testlib;
}
- if(theCommandID == 701 || theCommandID == 702 || theCommandID == 703 ||
- theCommandID == 7041 || theCommandID == 7042 ||
- theCommandID == 705 || theCommandID == 706 || theCommandID == 707) {
- MeasureGUI* myMeasureGUI = new MeasureGUI();
- myMeasureGUI->OnGUIEvent(theCommandID, parent);
- return true;
+ if(theCommandID == 601 || // MENU REPAIR - SEWING
+ theCommandID == 602 || // MENU REPAIR - ORIENTATION
+ theCommandID == 603 || // MENU REPAIR - SUPPRESS FACES
+ theCommandID == 604) { // MENU REPAIR - SUPPRESS HOLE
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libRepairGUI.so");
+ return testlib;
+ }
+ if(theCommandID == 701 || // MENU MEASURE - PROPERTIES
+ theCommandID == 702 || // MENU MEASURE - CDG
+ theCommandID == 703 || // MENU MEASURE - INERTIA
+ theCommandID == 7041 || // MENU MEASURE - BOUNDING BOX
+ theCommandID == 7042 || // MENU MEASURE - MIN DISTANCE
+ theCommandID == 705 || // MENU MEASURE - TOLERANCE
+ theCommandID == 706 || // MENU MEASURE - WHATIS
+ theCommandID == 707) { // MENU MEASURE - CHECK
+ bool testlib = GeometryGUI::LoadLibrary(theCommandID, parent, "libMeasureGUI.so");
+ return testlib;
}
return true;
}
}
}
else if(GeomGUI->GetState() == POINT_METHOD) {
- GeomGUI->EraseSimulationShape();
- BasicGUI_PointDlg *DialogPt = (BasicGUI_PointDlg*)(GeomGUI->GetActiveDialogBox());
-
- if(DialogPt->UseLocalContext()) {
- ic->InitSelected();
- if(pe->state() == Qt::ShiftButton)
- v3d->getAISSelector()->shiftSelect(); /* Append selection */
- else
- v3d->getAISSelector()->select(); /* New selection */
+// GeomGUI->EraseSimulationShape();
+// BasicGUI_PointDlg *DialogPt = (BasicGUI_PointDlg*)(GeomGUI->GetActiveDialogBox());
+
+// if(DialogPt->UseLocalContext()) {
+// ic->InitSelected();
+// if(pe->state() == Qt::ShiftButton)
+// v3d->getAISSelector()->shiftSelect(); /* Append selection */
+// else
+// v3d->getAISSelector()->select(); /* New selection */
- if(ic->MoreSelected())
- thePoint = BRep_Tool::Pnt( TopoDS::Vertex(ic->SelectedShape()));
- else
- thePoint = GeomGUI->ConvertClickToPoint(pe->x(), pe->y(), ((OCCViewer_ViewPort3d*)vp)->getView());
- }
- else
- thePoint = GeomGUI->ConvertClickToPoint(pe->x(), pe->y(), ((OCCViewer_ViewPort3d*)vp)->getView());
-
- if(DialogPt != 0)
- DialogPt->PointIntoCoordinates(thePoint, true); /* display point */
- else
- GeomGUI->GetDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
+// if(ic->MoreSelected())
+// thePoint = BRep_Tool::Pnt( TopoDS::Vertex(ic->SelectedShape()));
+// else
+// thePoint = GeomGUI->ConvertClickToPoint(pe->x(), pe->y(), ((OCCViewer_ViewPort3d*)vp)->getView());
+// }
+// else
+// thePoint = GeomGUI->ConvertClickToPoint(pe->x(), pe->y(), ((OCCViewer_ViewPort3d*)vp)->getView());
+
+// if(DialogPt != 0)
+// DialogPt->PointIntoCoordinates(thePoint, true); /* display point */
+// else
+// GeomGUI->GetDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
}
return false;
}
~GeometryGUI();
static GEOMBase_Context* GetOrCreateGeometryGUI(QAD_Desktop* desktop);
-/* static GEOMBase_Context* GetGeomGUI(); */
+
+ static bool LoadLibrary(int theCommandID, QAD_Desktop* parent, QString GUILibrary);
/* Managed by IAPP */
Standard_EXPORT static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS += -lOCCViewer -lVTKViewer -lSalomeObject -lSalomeGUI -lGEOMClient -lGEOMObject -lGEOMFiltersSelection -lGEOMBase -lBasicGUI -lPrimitiveGUI -lGenerationGUI -lBuildGUI -lBooleanGUI -lTransformationGUI -lOperationGUI -lRepairGUI -lMeasureGUI $(OCC_KERNEL_LIBS) $(OCC_MODELER_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome
+LDFLAGS += -lOCCViewer -lVTKViewer -lSalomeObject -lSalomeGUI -lGEOMClient -lGEOMObject -lGEOMFiltersSelection -lGEOMBase $(OCC_KERNEL_LIBS) $(OCC_MODELER_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome
@CONCLUDE@
#include "GenerationGUI_FillingDlg.h" // Method FILLING
#include "GenerationGUI_PipeDlg.h" // Method PIPE
+static GenerationGUI* myGenerationGUI = 0;
+
//=======================================================================
// function : GenerationGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+GenerationGUI* GenerationGUI::GetOrCreateGUI()
+{
+ myGenerationGUI = new GenerationGUI();
+ return myGenerationGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool GenerationGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ GenerationGUI::GetOrCreateGUI();
+ myGenerationGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myGenerationGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 4031: // PRISM
{
- GenerationGUI_PrismDlg *aDlg = new GenerationGUI_PrismDlg(parent, "", this, Sel);
+ GenerationGUI_PrismDlg *aDlg = new GenerationGUI_PrismDlg(parent, "", myGenerationGUI, Sel);
break;
}
case 4032: // REVOL
{
- GenerationGUI_RevolDlg *aDlg = new GenerationGUI_RevolDlg(parent, "", this, Sel);
+ GenerationGUI_RevolDlg *aDlg = new GenerationGUI_RevolDlg(parent, "", myGenerationGUI, Sel);
break;
}
case 4033: // FILLING
{
- GenerationGUI_FillingDlg *aDlg = new GenerationGUI_FillingDlg(parent, "", this, Sel);
+ GenerationGUI_FillingDlg *aDlg = new GenerationGUI_FillingDlg(parent, "", myGenerationGUI, Sel);
break;
}
case 4034: // PIPE
{
- GenerationGUI_PipeDlg *aDlg = new GenerationGUI_PipeDlg(parent, "", this, Sel);
+ GenerationGUI_PipeDlg *aDlg = new GenerationGUI_PipeDlg(parent, "", myGenerationGUI, Sel);
break;
}
default:
}
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return GenerationGUI::OnGUIEvent(theCommandID, parent);}
+}
GenerationGUI();
~GenerationGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static GenerationGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakePrismAndDisplay(GEOM::GEOM_Shape_ptr BaseShape, const gp_Pnt P1, const gp_Pnt P2);
void MakeRevolutionAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Pnt loc,
const double tol3d, const double tol2d, const short nbiter);
void MakePipeAndDisplay(GEOM::GEOM_Shape_ptr aPath, GEOM::GEOM_Shape_ptr aBase);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
if(myOkSectionShape)
myGenerationGUI->MakeFillingAndDisplay(myGeomShape, myMinDeg, myMaxDeg, myTol3D, myTol2D, myNbIter);
-
return;
}
void GenerationGUI_FillingDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit1;
mySelection->AddFilter(myCompoundFilter);
+ this->SelectionIntoArgument();
}
- this->SelectionIntoArgument();
return;
}
#include "GenerationGUI_PipeDlg.h"
#include <BRepOffsetAPI_MakePipe.hxx>
-// #include <Standard_ErrorHandler.hxx>
-// #include <Standard_Failure.hxx>
#include <BRepAlgoAPI.hxx>
//=================================================================================
//=================================================================================
void GenerationGUI_PipeDlg::SelectionIntoArgument()
{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
myShape2 = S;
}
- if(myOkShape1 && myOkShape2 && !myShape1.IsNull() && !myShape2.IsNull()) {
- //Make preview
- TopoDS_Shape tds;
- TopoDS_Wire aWire;
-
- if(myShape2.ShapeType() == TopAbs_WIRE)
- aWire = TopoDS::Wire(myShape2);
- else if(myShape2.ShapeType() == TopAbs_EDGE) {
- TopoDS_Edge aEdge = TopoDS::Edge(myShape2);
- aWire = BRepBuilderAPI_MakeWire(aEdge);
- }
-
- tds = BRepOffsetAPI_MakePipe(aWire,myShape1);
- if(BRepAlgoAPI::IsValid(tds)) {
- //Draw Pipe
- mySimulationTopoDs = tds;
- myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
- }
- }
+ if(myOkShape1 && myOkShape2)
+ this->MakePipeSimulationAndDisplay();
return;
}
myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
return;
}
+
+
+//=================================================================================
+// function : MakeMirrorSimulationAndDisplay()
+// purpose : S1 is a shape and S2 a mirror.
+//=================================================================================
+void GenerationGUI_PipeDlg::MakePipeSimulationAndDisplay()
+{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ try {
+ TopoDS_Wire aWire;
+
+ if(myShape2.ShapeType() == TopAbs_WIRE)
+ aWire = TopoDS::Wire(myShape2);
+ else if(myShape2.ShapeType() == TopAbs_EDGE) {
+ TopoDS_Edge aEdge = TopoDS::Edge(myShape2);
+ aWire = BRepBuilderAPI_MakeWire(aEdge);
+ }
+
+ TopoDS_Shape tds = BRepOffsetAPI_MakePipe(aWire,myShape1);
+ if(BRepAlgoAPI::IsValid(tds)) {
+ //Draw Pipe
+ mySimulationTopoDs = tds;
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ }
+ }
+ catch(Standard_Failure) {
+ MESSAGE("Exception catched in MakeMirrorSimulationAndDisplay");
+ return;
+ }
+ return;
+}
private:
void Init();
void enterEvent(QEvent* e);
+ void MakePipeSimulationAndDisplay();
GenerationGUI* myGenerationGUI;
myOkBase = myOkLine = false;
myEdgeFilter = new GEOM_ShapeTypeFilter(TopAbs_EDGE, myGeom);
- mySelection->AddFilter(myEdgeFilter);
/* Get setting of step value from file configuration */
QString St = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double)));
connect(GroupPoints->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ReverseVector(int)));
connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
//=================================================================================
void GenerationGUI_PrismDlg::SelectionIntoArgument()
{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
return;
- gp_Pnt aPoint1, aPoint2 ;
+ gp_Pnt aPoint1, aPoint2;
if(myEditCurrentArgument == GroupPoints->LineEdit1) {
myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
}
if(myOkBase && myOkLine)
- MakePrismSimulationAndDisplay(myBaseTopo);
-
+ this->MakePrismSimulationAndDisplay();
return;
}
void GenerationGUI_PrismDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
//=================================================================================
void GenerationGUI_PrismDlg::ValueChangedInSpinBox(double newValue)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
- QObject* send = (QObject*)sender();
-
- if(send == GroupPoints->SpinBox_DX) {
- myHeight = newValue;
-
- if(myOkBase && myOkLine)
- MakePrismSimulationAndDisplay(myBaseTopo);
- }
+ myHeight = newValue;
+ if(myOkBase && myOkLine)
+ this->MakePrismSimulationAndDisplay();
return;
}
//=================================================================================
void GenerationGUI_PrismDlg::ReverseVector(int state)
{
- myGeomGUI->EraseSimulationShape();
- mySimulationTopoDs.Nullify();
-
myDx = -myDx;
myDy = -myDy;
myDz = -myDz;
if(myOkBase && myOkLine)
- MakePrismSimulationAndDisplay(myBaseTopo);
+ this->MakePrismSimulationAndDisplay();
return;
}
// function : MakePrismSimulationAndDisplay()
// purpose :
//=================================================================================
-void GenerationGUI_PrismDlg::MakePrismSimulationAndDisplay(const TopoDS_Shape& S)
+void GenerationGUI_PrismDlg::MakePrismSimulationAndDisplay()
{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
try {
- gp_Vec Vec(myDx, myDy, myDz );
+ gp_Vec Vec(myDx, myDy, myDz);
Vec.Normalize();
Vec *= myHeight;
- mySimulationTopoDs = BRepPrimAPI_MakePrism(S, Vec, Standard_False).Shape();
+ mySimulationTopoDs = BRepPrimAPI_MakePrism(myBaseTopo, Vec, Standard_False).Shape();
+ if(mySimulationTopoDs.IsNull())
+ return;
+ else
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
catch(Standard_Failure) {
- MESSAGE( "Exception catched in MakePrismSimulationAndDisplay" << endl ) ;
+ MESSAGE("Exception catched in MakePrismSimulationAndDisplay" << endl);
return;
}
- myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
return;
}
private :
void Init();
void enterEvent(QEvent* e);
- void MakePrismSimulationAndDisplay(const TopoDS_Shape& S);
+ void MakePrismSimulationAndDisplay();
GenerationGUI* myGenerationGUI;
#include "GenerationGUI_RevolDlg.h"
#include <BRepAdaptor_Curve.hxx>
-
+#include <BRepPrimAPI_MakeRevol.hxx>
#include "QAD_Config.h"
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
//=================================================================================
// class : GenerationGUI_RevolDlg()
// purpose : Constructs a GenerationGUI_RevolDlg which is a child of 'parent', with the
// TRUE to construct a modal dialog.
//=================================================================================
GenerationGUI_RevolDlg::GenerationGUI_RevolDlg(QWidget* parent, const char* name, GenerationGUI* theGenerationGUI, SALOME_Selection* Sel, bool modal, WFlags fl)
- : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+ :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
- QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_REVOL")));
- QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-
- if ( !name )
- setName( "GenerationGUI_RevolDlg" );
- resize( 303, 251 );
- setCaption( tr( "GEOM_REVOLUTION_TITLE" ) );
- setSizeGripEnabled( TRUE );
- GenerationGUI_RevolDlgLayout = new QGridLayout( this );
- GenerationGUI_RevolDlgLayout->setSpacing( 6 );
- GenerationGUI_RevolDlgLayout->setMargin( 11 );
-
- GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
- GroupConstructors->setTitle( tr( "GEOM_REVOLUTION" ) );
- GroupConstructors->setExclusive( TRUE );
- GroupConstructors->setColumnLayout(0, Qt::Vertical );
- GroupConstructors->layout()->setSpacing( 0 );
- GroupConstructors->layout()->setMargin( 0 );
- GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
- GroupConstructorsLayout->setAlignment( Qt::AlignTop );
- GroupConstructorsLayout->setSpacing( 6 );
- GroupConstructorsLayout->setMargin( 11 );
- Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
- Constructor1->setText( tr( "" ) );
- Constructor1->setPixmap( image0 );
- Constructor1->setChecked( TRUE );
- Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
- Constructor1->setMinimumSize( QSize( 50, 0 ) );
- GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupConstructorsLayout->addItem( spacer, 0, 1 );
- GenerationGUI_RevolDlgLayout->addWidget( GroupConstructors, 0, 0 );
-
- /***************************************************************/
- GroupButtons = new QGroupBox( this, "GroupButtons" );
- GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
- GroupButtons->setTitle( tr( "" ) );
- GroupButtons->setColumnLayout(0, Qt::Vertical );
- GroupButtons->layout()->setSpacing( 0 );
- GroupButtons->layout()->setMargin( 0 );
- GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
- GroupButtonsLayout->setAlignment( Qt::AlignTop );
- GroupButtonsLayout->setSpacing( 6 );
- GroupButtonsLayout->setMargin( 11 );
- buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
- buttonCancel->setText( tr( "GEOM_BUT_CLOSE" ) );
- buttonCancel->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
- buttonApply = new QPushButton( GroupButtons, "buttonApply" );
- buttonApply->setText( tr( "GEOM_BUT_APPLY" ) );
- buttonApply->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
- QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupButtonsLayout->addItem( spacer_9, 0, 2 );
- buttonOk = new QPushButton( GroupButtons, "buttonOk" );
- buttonOk->setText( tr( "GEOM_BUT_OK" ) );
- buttonOk->setAutoDefault( TRUE );
- buttonOk->setDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
- GenerationGUI_RevolDlgLayout->addWidget( GroupButtons, 2, 0 );
-
- /***************************************************************/
- GroupC1 = new QGroupBox( this, "GroupC1" );
- GroupC1->setTitle( tr( "GEOM_ARGUMENTS" ) );
- GroupC1->setFrameShape( QGroupBox::Box );
- GroupC1->setFrameShadow( QGroupBox::Sunken );
- GroupC1->setColumnLayout(0, Qt::Vertical );
- GroupC1->layout()->setSpacing( 0 );
- GroupC1->layout()->setMargin( 0 );
- GroupC1Layout = new QGridLayout( GroupC1->layout() );
- GroupC1Layout->setAlignment( Qt::AlignTop );
- GroupC1Layout->setSpacing( 6 );
- GroupC1Layout->setMargin( 11 );
-
- TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
- TextLabelC1A1->setText( tr( "GEOM_OBJECT" ) );
- TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A1->setFrameShape( QLabel::NoFrame );
- TextLabelC1A1->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A1, 0, 0 );
- SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
- SelectButtonC1A1->setText( tr( "" ) );
- SelectButtonC1A1->setPixmap( image1 );
- SelectButtonC1A1->setToggleButton( FALSE );
- SelectButtonC1A1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0,
- SelectButtonC1A1->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( SelectButtonC1A1, 0, 1 );
- LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
- GroupC1Layout->addMultiCellWidget( LineEditC1A1, 0, 0, 2, 3 );
-
- TextLabelC1A2 = new QLabel( GroupC1, "TextLabelC1A2" );
- TextLabelC1A2->setText( tr( "GEOM_AXIS" ) );
- TextLabelC1A2->setMinimumSize( QSize( 50, 0 ) );
- GroupC1Layout->addWidget( TextLabelC1A2, 1, 0 );
- SelectButtonC1A2 = new QPushButton( GroupC1, "SelectButtonC1A2" );
- SelectButtonC1A2->setText( tr( "" ) );
- SelectButtonC1A2->setPixmap( image1 );
- SelectButtonC1A2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0,
- SelectButtonC1A2->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( SelectButtonC1A2, 1, 1 );
- LineEditC1A2 = new QLineEdit( GroupC1, "LineEditC1A2" );
- GroupC1Layout->addMultiCellWidget( LineEditC1A2, 1, 1, 2, 3 );
-
- CheckBoxReverse = new QCheckBox( GroupC1, "CheckBoxReverse" );
- CheckBoxReverse->setText( tr( "GEOM_REVERSE" ) );
- GroupC1Layout->addMultiCellWidget( CheckBoxReverse, 2, 2, 0, 1 );
- TextLabelC1A3 = new QLabel( GroupC1, "TextLabelC1A3" );
- TextLabelC1A3->setText( tr( "GEOM_ANGLE" ) );
- TextLabelC1A3->setMinimumSize( QSize( 50, 0 ) );
- GroupC1Layout->addWidget( TextLabelC1A3, 2, 2 );
- SpinBox_C1A3 = new DlgRef_SpinBox( GroupC1, "GeomSpinBox_C1A3" ) ;
- GroupC1Layout->addWidget( SpinBox_C1A3, 2, 3 );
-
- GenerationGUI_RevolDlgLayout->addWidget( GroupC1, 1, 0 );
- /***************************************************************/
- myGenerationGUI = theGenerationGUI;
- Init(Sel) ; /* Initialisations */
+ QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_REVOL")));
+ QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
+
+ setCaption(tr("GEOM_REVOLUTION_TITLE"));
+
+ /***************************************************************/
+ GroupConstructors->setTitle(tr("GEOM_REVOLUTION"));
+ RadioButton1->setPixmap(image0);
+ RadioButton2->close(TRUE);
+ RadioButton3->close(TRUE);
+
+ GroupPoints = new DlgRef_2Sel1Spin1Check(this, "GroupPoints");
+ GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
+ GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT"));
+ GroupPoints->TextLabel2->setText(tr("GEOM_AXIS"));
+ GroupPoints->TextLabel3->setText(tr("GEOM_ANGLE"));
+ GroupPoints->CheckButton1->setText(tr("GEOM_REVERSE"));
+ GroupPoints->PushButton1->setPixmap(image1);
+ GroupPoints->PushButton2->setPixmap(image1);
+
+ Layout1->addWidget(GroupPoints, 1, 0);
+ /***************************************************************/
+
+ /* Initialisations */
+ myGenerationGUI = theGenerationGUI;
+ Init();
}
//=================================================================================
GenerationGUI_RevolDlg::~GenerationGUI_RevolDlg()
{
- // no need to delete child widgets, Qt does it all for us
+ // no need to delete child widgets, Qt does it all for us
}
// function : Init()
// purpose :
//=================================================================================
-void GenerationGUI_RevolDlg::Init( SALOME_Selection* Sel )
+void GenerationGUI_RevolDlg::Init()
{
+ /* init variables */
+ myEditCurrentArgument = GroupPoints->LineEdit1;
- /* Get setting of step value from file configuration */
- double step ;
- QString St = QAD_CONFIG->getSetting( "Geometry:SettingsGeomStep" ) ;
- step = St.toDouble() ;
-
- /* min, max, step and decimals for spin boxes */
- SpinBox_C1A3->RangeStepAndValidator( -999.999, 999.999, step, 3 ) ;
- SpinBox_C1A3->SetValue( 45.0 ) ; /* = myAngle */
- myAngle = 45.0 ;
-
- GroupC1->show();
- myConstructorId = 0 ;
- Constructor1->setChecked( TRUE );
- myEditCurrentArgument = LineEditC1A1 ;
- mySelection = Sel;
- myGeomGUI = GEOMBase_Context::GetGeomGUI() ;
-
- myOkBase = false ;
- myOkAxis = false ;
+ myAngle = 45.0;
+ myOkBase = myOkAxis = false;
- mySimulationTopoDs.Nullify() ;
- myBase.Nullify() ;
- myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
+ myEdgeFilter = new GEOM_ShapeTypeFilter(TopAbs_EDGE, myGeom);
- // TODO : previous selection into argument
+ /* Get setting of step value from file configuration */
+ QString St = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
+ step = St.toDouble();
- /* Filter definitions */
- Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
- myGeom = GEOM::GEOM_Gen::_narrow(comp);
- myEdgeFilter = new GEOM_EdgeFilter( StdSelect_Line, myGeom );
+ /* min, max, step and decimals for spin boxes & initial values */
+ GroupPoints->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
+ GroupPoints->SpinBox_DX->SetValue(myAngle);
/* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
- connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
- connect( SelectButtonC1A1, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
- connect( SelectButtonC1A2, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
-
- connect( SpinBox_C1A3, SIGNAL ( valueChanged( double) ), this, SLOT( ValueChangedInSpinBox( double) ) ) ;
- connect( CheckBoxReverse, SIGNAL (stateChanged(int) ), this, SLOT( ReverseAngle(int) ) ) ;
-
- connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
- connect( LineEditC1A2, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-
- connect( myGeomGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
- connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- /* to close dialog if study change */
- connect( myGeomGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
- /* Move widget on the botton right corner of main widget */
- int x, y ;
- myGeomGUI->DefineDlgPosition( this, x, y ) ;
- this->move( x, y ) ;
- this->show() ; /* displays Dialog */
-
- return ;
-}
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-//=================================================================================
-// function : ReverseAngle()
-// purpose : 'state' not used here
-//=================================================================================
-void GenerationGUI_RevolDlg::ReverseAngle(int state)
-{
- myAngle = -myAngle ;
- SpinBox_C1A3->SetValue( myAngle ) ;
+ connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+
+ connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+ connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+
+ connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(GroupPoints->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ReverseVector(int)));
- if(myOkBase && myOkAxis) {
- MakeRevolutionSimulationAndDisplay(myBase) ;
- } else {
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- }
- return ;
-}
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+ /* displays Dialog */
+ GroupPoints->show();
+ this->show();
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose : Radio button management
-//=================================================================================
-void GenerationGUI_RevolDlg::ConstructorsClicked(int constructorId)
-{
- /* only a constructor now */
- return ;
+ return;
}
+
//=================================================================================
// function : ClickOnOk()
// purpose :
//=================================================================================
void GenerationGUI_RevolDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
-
- return ;
+ this->ClickOnApply();
+ ClickOnCancel();
+ return;
}
+
//=================================================================================
// function : ClickOnApply()
// purpose :
//=================================================================================
void GenerationGUI_RevolDlg::ClickOnApply()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- myGeomGUI->GetDesktop()->putInfo( tr("") ) ;
-
- switch(myConstructorId)
- {
- case 0 :
- {
- if(myOkBase && myOkAxis) {
- myGenerationGUI->MakeRevolutionAndDisplay( myGeomShape, myLoc, myDir, myAngle*PI180 ) ;
- }
- break ;
- }
- }
- return ;
-}
-
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void GenerationGUI_RevolDlg::ClickOnCancel()
-{
- mySelection->ClearFilters() ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->ResetState() ;
- reject() ;
- return ;
+ myGeomGUI->GetDesktop()->putInfo(tr(""));
+ if (mySimulationTopoDs.IsNull())
+ return;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ if(myOkBase && myOkAxis)
+ myGenerationGUI->MakeRevolutionAndDisplay(myGeomShape, myLoc, myDir, myAngle*PI180);
+ return;
}
//=================================================================================
void GenerationGUI_RevolDlg::SelectionIntoArgument()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+ myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
- int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString) ;
- if ( nbSel != 1 ) {
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- LineEditC1A1->setText("") ;
- myOkBase = false ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 ) {
- LineEditC1A2->setText("") ;
- myOkAxis = false ;
- }
- return ;
+ int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
+ if(nbSel != 1) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1)
+ myOkBase = false;
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2)
+ myOkAxis = false;
+ return;
}
-
- /* nbSel == 1 ! */
- TopoDS_Shape S;
- Standard_Boolean testResult ;
- Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
-
- if( !myGeomGUI->GetTopoFromSelection(mySelection, S) )
- return ;
-
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
- return ;
+
+ // nbSel == 1
+ TopoDS_Shape S;
+ Standard_Boolean testResult;
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
+ return;
- /* test if appropriate shape for revol */
- TopAbs_ShapeEnum aType = S.ShapeType() ;
- if(aType != TopAbs_VERTEX && aType != TopAbs_EDGE && aType != TopAbs_WIRE && aType != TopAbs_FACE && aType != TopAbs_SHELL && aType != TopAbs_COMPOUND )
- return ;
-
- LineEditC1A1->setText(aString) ;
- myBase = S ;
- myOkBase = true ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 /*&& myGeomGUI->LinearLocationAndDirection(S, myLoc, myDir) */) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1) {
+ myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
+ return;
+ TopAbs_ShapeEnum aType = S.ShapeType();
+ if(aType != TopAbs_VERTEX && aType != TopAbs_EDGE && aType != TopAbs_WIRE && aType != TopAbs_FACE && aType != TopAbs_SHELL && aType != TopAbs_COMPOUND)
+ return;
+ myEditCurrentArgument->setText(aString);
+ myOkBase = true;
+ myBase = S;
+ }
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2) {
BRepAdaptor_Curve curv(TopoDS::Edge(S));
myDir = curv.Line().Direction();
myLoc = curv.Line().Location();
- LineEditC1A2->setText(aString) ;
- myOkAxis = true ;
+ myEditCurrentArgument->setText(aString);
+ myOkAxis = true;
}
-
- if( myOkBase && myOkAxis ) {
- MakeRevolutionSimulationAndDisplay( myBase) ;
- }
- return ;
+
+ if(myOkBase && myOkAxis)
+ this->MakeRevolutionSimulationAndDisplay();
+ return;
}
void GenerationGUI_RevolDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
- switch (myConstructorId)
- {
- case 0: /* default constructor */
- {
- if(send == SelectButtonC1A1) {
- LineEditC1A1->setFocus() ;
- myEditCurrentArgument = LineEditC1A1;
- mySelection->ClearFilters() ;
- }
- else if(send == SelectButtonC1A2) {
- LineEditC1A2->setFocus() ;
- myEditCurrentArgument = LineEditC1A2;
- mySelection->AddFilter(myEdgeFilter) ;
- }
- SelectionIntoArgument() ;
- break;
- }
- }
- return ;
+ mySelection->ClearFilters();
+
+ if(send == GroupPoints->PushButton1) {
+ GroupPoints->LineEdit1->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ }
+ else if(send == GroupPoints->PushButton2) {
+ GroupPoints->LineEdit2->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit2;
+ mySelection->AddFilter(myEdgeFilter);
+ }
+ this->SelectionIntoArgument();
+
+ return;
}
+
//=================================================================================
// function : LineEditReturnPressed()
// purpose :
//=================================================================================
void GenerationGUI_RevolDlg::LineEditReturnPressed()
{
- QLineEdit* send = (QLineEdit*)sender();
- if( send == LineEditC1A1 )
- myEditCurrentArgument = LineEditC1A1 ;
- else if ( send == LineEditC1A2 )
- myEditCurrentArgument = LineEditC1A2 ;
+ QLineEdit* send = (QLineEdit*)sender();
+ if(send == GroupPoints->LineEdit1)
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ else if (send == GroupPoints->LineEdit2)
+ myEditCurrentArgument = GroupPoints->LineEdit2;
else
- return ;
-
- /* User name of object input management */
- /* If successfull the selection is changed and signal emitted... */
- /* so SelectionIntoArgument() is automatically called. */
- const QString objectUserName = myEditCurrentArgument->text() ;
- QWidget* thisWidget = (QWidget*)this ;
- if( myGeomGUI->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
- myEditCurrentArgument->setText( objectUserName ) ;
- }
- return ;
-}
+ return;
-
-//=================================================================================
-// function : ValueChangedInSpinBox()
-// purpose :
-//=================================================================================
-void GenerationGUI_RevolDlg::ValueChangedInSpinBox( double newValue )
-{
- myAngle = newValue ;
- if ( myOkBase && myOkAxis ) {
- MakeRevolutionSimulationAndDisplay(myBase) ;
- }
- else {
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- }
- return ;
+ GEOMBase_Skeleton::LineEditReturnPressed();
+ return;
}
//=================================================================================
-// function : DeactivateActiveDialog()
+// function : ActivateThisDialog()
// purpose :
//=================================================================================
-void GenerationGUI_RevolDlg::DeactivateActiveDialog()
+void GenerationGUI_RevolDlg::ActivateThisDialog()
{
- if ( GroupConstructors->isEnabled() ) {
- GroupConstructors->setEnabled(false) ;
- GroupC1->setEnabled(false) ;
- GroupButtons->setEnabled(false) ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->EraseSimulationShape() ;
- mySelection->ClearFilters() ;
- }
- return ;
+ GEOMBase_Skeleton::ActivateThisDialog();
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ if(!mySimulationTopoDs.IsNull())
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ return;
}
//=================================================================================
-// function : ActivateThisDialog()
+// function : enterEvent()
// purpose :
//=================================================================================
-void GenerationGUI_RevolDlg::ActivateThisDialog()
+void GenerationGUI_RevolDlg::enterEvent(QEvent* e)
{
- /* Emit a signal to deactivate the active dialog */
- myGeomGUI->EmitSignalDeactivateDialog() ;
- GroupConstructors->setEnabled(true) ;
- GroupC1->setEnabled(true) ;
- GroupButtons->setEnabled(true) ;
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- if( !mySimulationTopoDs.IsNull() )
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
- return ;
+ if (GroupConstructors->isEnabled())
+ return;
+ this->ActivateThisDialog();
+ return;
}
-
//=================================================================================
-// function : enterEvent()
+// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void GenerationGUI_RevolDlg::enterEvent(QEvent* e)
-{
- if ( GroupConstructors->isEnabled() )
- return ;
- ActivateThisDialog() ;
+void GenerationGUI_RevolDlg::ValueChangedInSpinBox(double newValue)
+{
+ myAngle = newValue;
+ if(myOkBase && myOkAxis)
+ this->MakeRevolutionSimulationAndDisplay();
+ return;
}
-
//=================================================================================
-// function : closeEvent()
-// purpose :
+// function : ReverseAngle()
+// purpose : 'state' not used here
//=================================================================================
-void GenerationGUI_RevolDlg::closeEvent( QCloseEvent* e )
+void GenerationGUI_RevolDlg::ReverseAngle(int state)
{
- this->ClickOnCancel() ; /* same than click on cancel button */
+ myAngle = -myAngle;
+ GroupPoints->SpinBox_DX->SetValue(myAngle);
+ if(myOkBase && myOkAxis)
+ this->MakeRevolutionSimulationAndDisplay();
+ return;
}
// function : MakeRevolutionSimulationAndDisplay()
// purpose :
//=================================================================================
-void GenerationGUI_RevolDlg::MakeRevolutionSimulationAndDisplay( const TopoDS_Shape& S)
+void GenerationGUI_RevolDlg::MakeRevolutionSimulationAndDisplay()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
- if( S.IsNull() )
- return ;
-
- TopAbs_ShapeEnum aType = S.ShapeType() ;
- if(aType != TopAbs_VERTEX && aType != TopAbs_EDGE && aType != TopAbs_WIRE && aType != TopAbs_FACE && aType != TopAbs_SHELL && aType !=TopAbs_COMPOUND )
- return ;
-
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ TopAbs_ShapeEnum aType = myBase.ShapeType();
+ if(aType != TopAbs_VERTEX && aType != TopAbs_EDGE && aType != TopAbs_WIRE && aType != TopAbs_FACE && aType != TopAbs_SHELL && aType !=TopAbs_COMPOUND)
+ return;
+
try {
- gp_Ax1 AX( this->myLoc, this->myDir);
- mySimulationTopoDs = BRepPrimAPI_MakeRevol(S, AX, this->myAngle*PI180 );
- myGeomGUI->DisplaySimulationShape(mySimulationTopoDs) ;
+ gp_Ax1 AX(myLoc, myDir);
+ mySimulationTopoDs = BRepPrimAPI_MakeRevol(myBase, AX, myAngle*PI180);
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
catch(Standard_Failure) {
- MESSAGE( "Exception catched in MakeRevolutionSimulationAndDisplay" ) ;
+ MESSAGE("Exception catched in MakeRevolutionSimulationAndDisplay");
+ return;
}
- return ;
+ return;
}
#ifndef DIALOGBOX_REVOLUTION_H
#define DIALOGBOX_REVOLUTION_H
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_2Sel1Spin1Check.h"
+
#include "GenerationGUI.h"
-#include "DlgRef_SpinBox.h"
-#include "GEOM_EdgeFilter.hxx"
-#include <gp_Pnt.hxx>
#include <gp_Dir.hxx>
-#include <BRepPrimAPI_MakeRevol.hxx>
-
-#include <qvariant.h>
-#include <qdialog.h>
-#include <qvalidator.h>
-
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QButtonGroup;
-class QCheckBox;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
//=================================================================================
// class : GenerationGUI_RevolDlg
// purpose :
//=================================================================================
-class GenerationGUI_RevolDlg : public QDialog
+class GenerationGUI_RevolDlg : public GEOMBase_Skeleton
{
Q_OBJECT
~GenerationGUI_RevolDlg();
private :
- GenerationGUI* myGenerationGUI;
- GEOM::GEOM_Gen_var myGeom ; /* Current Geom object */
- GEOMBase_Context* myGeomGUI ; /* Current GeomGUI object */
- SALOME_Selection* mySelection ; /* User shape selection */
- TopoDS_Shape mySimulationTopoDs; /* Shape used for simulation display */
- TopoDS_Shape myBase ;
- GEOM::GEOM_Shape_var myGeomShape ; /* is myBase */
-
- gp_Pnt myLoc ;
- gp_Dir myDir ;
+ void Init();
+ void enterEvent(QEvent* e);
+ void MakeRevolutionSimulationAndDisplay();
- Standard_Real myAngle ;
+ GenerationGUI* myGenerationGUI;
- bool myOkBase ;
- bool myOkAxis ;
- QLineEdit* myEditCurrentArgument; /* Current LineEdit */
- int myConstructorId ; /* Current constructor id = radio button id */
- Handle(GEOM_EdgeFilter) myEdgeFilter; /* Filter selection */
+ double step;
+ Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* Filters selection */
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent( QEvent* e);
- void Init( SALOME_Selection* Sel ) ;
- void MakeRevolutionSimulationAndDisplay( const TopoDS_Shape& S) ;
+ TopoDS_Shape myBase;
+ GEOM::GEOM_Shape_var myGeomShape; /* is myBase */
+ gp_Pnt myLoc;
+ gp_Dir myDir;
+ Standard_Real myAngle;
+ bool myOkBase;
+ bool myOkAxis;
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
- QGroupBox* GroupC1;
- QPushButton* SelectButtonC1A2;
- QLineEdit* LineEditC1A1;
- QLineEdit* LineEditC1A2;
- QPushButton* SelectButtonC1A1;
- QLabel* TextLabelC1A1;
- QLabel* TextLabelC1A2;
- DlgRef_SpinBox* SpinBox_C1A3 ; /* for angle */
- QLabel* TextLabelC1A3;
- QCheckBox* CheckBoxReverse;
+ DlgRef_2Sel1Spin1Check* GroupPoints;
private slots:
-
- void ConstructorsClicked(int constructorId);
void ClickOnOk();
- void ClickOnCancel();
void ClickOnApply();
- void SetEditCurrentArgument() ;
- void SelectionIntoArgument() ;
- void LineEditReturnPressed() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
- void ReverseAngle(int state) ;
- void ValueChangedInSpinBox( double newValue ) ;
+ void ActivateThisDialog();
+ void LineEditReturnPressed();
+ void SelectionIntoArgument();
+ void SetEditCurrentArgument();
+ void ReverseAngle(int state);
+ void ValueChangedInSpinBox(double newValue);
-protected:
- QGridLayout* GenerationGUI_RevolDlgLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupButtonsLayout;
- QGridLayout* GroupC1Layout;
};
#endif // DIALOGBOX_REVOLUTION_H
#include "MeasureGUI_WhatisDlg.h" // Method WHATIS
#include "MeasureGUI_CheckShape.h" // Method CHECKSHAPE
+static MeasureGUI* myMeasureGUI = 0;
+
//=======================================================================
// function : MeasureGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+MeasureGUI* MeasureGUI::GetOrCreateGUI()
+{
+ myMeasureGUI = new MeasureGUI();
+ return myMeasureGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool MeasureGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ MeasureGUI::GetOrCreateGUI();
+ myMeasureGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myMeasureGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
}
case 702: // CDG : Center of mass
{
- MeasureGUI_CenterMassDlg *aDlg = new MeasureGUI_CenterMassDlg(parent, "", this, Sel);
+ MeasureGUI_CenterMassDlg *aDlg = new MeasureGUI_CenterMassDlg(parent, "", myMeasureGUI, Sel);
break;
}
case 703: // INERTIA
}
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return MeasureGUI::OnGUIEvent(theCommandID, parent);}
+}
MeasureGUI();
~MeasureGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static MeasureGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeCDGAndDisplay(GEOM::GEOM_Shape_ptr Shape);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
#include "OperationGUI_FilletDlg.h" // Method FILLET
#include "OperationGUI_ChamferDlg.h" // Method CHAMFER
+static OperationGUI* myOperationGUI = 0;
+
//=======================================================================
// function : OperationGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+OperationGUI* OperationGUI::GetOrCreateGUI()
+{
+ myOperationGUI = new OperationGUI();
+ return myOperationGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool OperationGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ OperationGUI::GetOrCreateGUI();
+ myOperationGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myOperationGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 503: // PARTITION
{
- OperationGUI_PartitionDlg *aDlg = new OperationGUI_PartitionDlg(parent, "", this, Sel);
+ OperationGUI_PartitionDlg *aDlg = new OperationGUI_PartitionDlg(parent, "", myOperationGUI, Sel);
break;
}
case 504: // ARCHIMEDE
{
- OperationGUI_ArchimedeDlg *aDlg = new OperationGUI_ArchimedeDlg(parent, "", this, Sel);
+ OperationGUI_ArchimedeDlg *aDlg = new OperationGUI_ArchimedeDlg(parent, "", myOperationGUI, Sel);
break;
}
case 505: // FILLET
{
Handle(AIS_InteractiveContext) ic;
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ if(myOperationGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myOperationGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
ic = v3d->getAISContext();
}
- OperationGUI_FilletDlg *aDlg = new OperationGUI_FilletDlg(parent, "", this, Sel, ic);
+ OperationGUI_FilletDlg *aDlg = new OperationGUI_FilletDlg(parent, "", myOperationGUI, Sel, ic);
break;
}
case 506: // CHAMFER
{
Handle(AIS_InteractiveContext) ic;
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ if(myOperationGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myOperationGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
ic = v3d->getAISContext();
}
- OperationGUI_ChamferDlg *aDlg = new OperationGUI_ChamferDlg(parent, "", this, Sel, ic);
+ OperationGUI_ChamferDlg *aDlg = new OperationGUI_ChamferDlg(parent, "", myOperationGUI, Sel, ic);
break;
}
default:
return true;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return OperationGUI::OnGUIEvent(theCommandID, parent);}
+}
OperationGUI();
~OperationGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static OperationGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakePartitionAndDisplay(const GEOM::GEOM_Gen::ListOfIOR& listShapesIOR,
const GEOM::GEOM_Gen::ListOfIOR& listToolsIOR,
Standard_Integer& aLocalContextId,
bool& myUseLocalContext);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
#include "PrimitiveGUI_TorusDlg.h" // Method TORUS
#include "PrimitiveGUI_ConeDlg.h" // Method CONE
+static PrimitiveGUI* myPrimitiveGUI = 0;
+
//=======================================================================
// function : PrimitiveGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+PrimitiveGUI* PrimitiveGUI::GetOrCreateGUI()
+{
+ myPrimitiveGUI = new PrimitiveGUI();
+ return myPrimitiveGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool PrimitiveGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ PrimitiveGUI::GetOrCreateGUI();
+ myPrimitiveGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myPrimitiveGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 4021: // BOX
{
- PrimitiveGUI_BoxDlg *aDlg = new PrimitiveGUI_BoxDlg(parent, "", this, Sel);
+ PrimitiveGUI_BoxDlg *aDlg = new PrimitiveGUI_BoxDlg(parent, "", myPrimitiveGUI, Sel);
break;
}
case 4022: // CYLINDER
{
- PrimitiveGUI_CylinderDlg *aDlg = new PrimitiveGUI_CylinderDlg(parent, "", this, Sel);
+ PrimitiveGUI_CylinderDlg *aDlg = new PrimitiveGUI_CylinderDlg(parent, "", myPrimitiveGUI, Sel);
break;
}
case 4023: // SPHERE
{
- PrimitiveGUI_SphereDlg *aDlg = new PrimitiveGUI_SphereDlg(parent, "", this, Sel);
+ PrimitiveGUI_SphereDlg *aDlg = new PrimitiveGUI_SphereDlg(parent, "", myPrimitiveGUI, Sel);
break;
}
case 4024: // TORUS
{
- PrimitiveGUI_TorusDlg *aDlg = new PrimitiveGUI_TorusDlg(parent, "", this, Sel);
+ PrimitiveGUI_TorusDlg *aDlg = new PrimitiveGUI_TorusDlg(parent, "", myPrimitiveGUI, Sel);
break;
}
case 4025: // CONE
{
- PrimitiveGUI_ConeDlg *aDlg = new PrimitiveGUI_ConeDlg(parent, "", this, Sel);
+ PrimitiveGUI_ConeDlg *aDlg = new PrimitiveGUI_ConeDlg(parent, "", myPrimitiveGUI, Sel);
break;
}
default:
}
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return PrimitiveGUI::OnGUIEvent(theCommandID, parent);}
+}
PrimitiveGUI();
~PrimitiveGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static PrimitiveGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeBoxAndDisplay(const gp_Pnt P1, const gp_Pnt P2);
void MakeCylinderAndDisplay(const gp_Pnt BasePoint, const gp_Dir aDir,
void MakeConeAndDisplay(const gp_Pnt BasePoint, const gp_Dir aDir,
const double Radius1, const double Radius2, const double aHeight);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
case 1:
{
GroupPoints->hide();
- resize( 0, 0 );
+ resize(0, 0);
GroupDimensions->show();
double initValue = 200.0;
QObject* send = (QObject*)sender();
double vx, vy, vz;
- if(send == GroupDimensions->SpinBox_DX)
+ if(send == GroupDimensions->SpinBox_DX) {
vx = newValue;
- else if(send == GroupDimensions->SpinBox_DY)
+ vy = GroupDimensions->SpinBox_DY->GetValue();
+ vz = GroupDimensions->SpinBox_DZ->GetValue();
+ }
+ else if(send == GroupDimensions->SpinBox_DY) {
+ vx = GroupDimensions->SpinBox_DX->GetValue();
vy = newValue;
- else if(send == GroupDimensions->SpinBox_DZ)
+ vz = GroupDimensions->SpinBox_DZ->GetValue();
+ }
+ else if(send == GroupDimensions->SpinBox_DZ) {
+ vx = GroupDimensions->SpinBox_DX->GetValue();
+ vy = GroupDimensions->SpinBox_DY->GetValue();
vz = newValue;
+ }
myPoint1.SetCoord(0.0, 0.0, 0.0);
myPoint2.SetCoord(vx, vy, vz);
return;
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
return;
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
return;
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
if(send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus();
#include "RepairGUI_SuppressFacesDlg.h" // Method SUPPRESS FACES
#include "RepairGUI_SuppressHoleDlg.h" // Method SUPPRESS HOLE
+static RepairGUI* myRepairGUI = 0;
+
//=======================================================================
// function : RepairGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+RepairGUI* RepairGUI::GetOrCreateGUI()
+{
+ myRepairGUI = new RepairGUI();
+ return myRepairGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool RepairGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ RepairGUI::GetOrCreateGUI();
+ myRepairGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myRepairGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 601: // SEWING
{
- RepairGUI_SewingDlg *aDlg = new RepairGUI_SewingDlg(parent, "", this, Sel);
+ RepairGUI_SewingDlg *aDlg = new RepairGUI_SewingDlg(parent, "", myRepairGUI, Sel);
break;
}
case 602: // ORIENTATION
{
- RepairGUI_OrientationDlg *aDlg = new RepairGUI_OrientationDlg(parent, "", this, Sel);
+ RepairGUI_OrientationDlg *aDlg = new RepairGUI_OrientationDlg(parent, "", myRepairGUI, Sel);
break;
}
case 603: // SUPPRESS FACES : use ic
{
Handle(AIS_InteractiveContext) ic;
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ if(myRepairGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myRepairGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
ic = v3d->getAISContext();
}
- RepairGUI_SuppressFacesDlg *aDlg = new RepairGUI_SuppressFacesDlg(parent, "", this, Sel, ic);
+ RepairGUI_SuppressFacesDlg *aDlg = new RepairGUI_SuppressFacesDlg(parent, "", myRepairGUI, Sel, ic);
break;
}
case 604: // SUPPRESS HOLES : use ic
{
Handle(AIS_InteractiveContext) ic;
- if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
- OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ if(myRepairGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myRepairGUI->myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
ic = v3d->getAISContext();
}
- RepairGUI_SuppressHoleDlg *aDlg = new RepairGUI_SuppressHoleDlg(parent, "", this, Sel, ic);
+ RepairGUI_SuppressHoleDlg *aDlg = new RepairGUI_SuppressHoleDlg(parent, "", myRepairGUI, Sel, ic);
break;
}
default:
myGeomGUI->GetDesktop()->putInfo (tr("GEOM_PRP_READY"));
return true ;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return RepairGUI::OnGUIEvent(theCommandID, parent);}
+}
RepairGUI();
~RepairGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static RepairGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeSewingAndDisplay(GEOM::GEOM_Gen::ListOfIOR& listShapesIOR,
const Standard_Real precision);
const Standard_Integer& aLocalContextId,
bool& myUseLocalContext);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
#include "TransformationGUI_MultiTranslationDlg.h" // Method MULTI TRANSLATION
#include "TransformationGUI_MultiRotationDlg.h" // Method MULTI ROTATION
+static TransformationGUI* myTransformationGUI = 0;
+
//=======================================================================
// function : TransformationGUI()
// purpose : Constructor
}
+//=======================================================================
+// function : GetOrCreateGUI()
+// purpose : Gets or create an object 'GUI' with initialisations
+// : Returns 'GUI' as a pointer
+//=======================================================================
+TransformationGUI* TransformationGUI::GetOrCreateGUI()
+{
+ myTransformationGUI = new TransformationGUI();
+ return myTransformationGUI;
+}
+
+
//=======================================================================
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool TransformationGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
{
- myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ TransformationGUI::GetOrCreateGUI();
+ myTransformationGUI->myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myTransformationGUI->myGeomGUI->GetActiveStudy()->getSelection());
switch (theCommandID)
{
case 5021: // TRANSLATION
{
- TransformationGUI_TranslationDlg *aDlg = new TransformationGUI_TranslationDlg(parent, "", this, Sel);
+ TransformationGUI_TranslationDlg *aDlg = new TransformationGUI_TranslationDlg(parent, "", myTransformationGUI, Sel);
break;
}
case 5022: // ROTATION
{
- TransformationGUI_RotationDlg *aDlg = new TransformationGUI_RotationDlg(parent, "", this, Sel);
+ TransformationGUI_RotationDlg *aDlg = new TransformationGUI_RotationDlg(parent, "", myTransformationGUI, Sel);
break;
}
case 5023: // MIRROR
{
- TransformationGUI_MirrorDlg *aDlg = new TransformationGUI_MirrorDlg(parent, "", this, Sel);
+ TransformationGUI_MirrorDlg *aDlg = new TransformationGUI_MirrorDlg(parent, "", myTransformationGUI, Sel);
break;
}
case 5024: // SCALE
{
- TransformationGUI_ScaleDlg *aDlg = new TransformationGUI_ScaleDlg(parent, "", this, Sel );
+ TransformationGUI_ScaleDlg *aDlg = new TransformationGUI_ScaleDlg(parent, "", myTransformationGUI, Sel );
break;
}
case 5025: // MULTI TRANSLATION
{
- TransformationGUI_MultiTranslationDlg *aDlg = new TransformationGUI_MultiTranslationDlg(parent, "", this, Sel);
+ TransformationGUI_MultiTranslationDlg *aDlg = new TransformationGUI_MultiTranslationDlg(parent, "", myTransformationGUI, Sel);
break;
}
case 5026: // MULTI ROTATION
{
- TransformationGUI_MultiRotationDlg *aDlg = new TransformationGUI_MultiRotationDlg(parent, "", this, Sel);
+ TransformationGUI_MultiRotationDlg *aDlg = new TransformationGUI_MultiRotationDlg(parent, "", myTransformationGUI, Sel);
break;
}
default:
}
return;
}
+
+
+//=====================================================================================
+// EXPORTED METHODS
+//=====================================================================================
+extern "C"
+{
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+ {return TransformationGUI::OnGUIEvent(theCommandID, parent);}
+}
#define TRANSFORMATIONGUI_H
#include "GEOMBase_Display.h"
+#include "QAD_Config.h"
//=================================================================================
// class : TransformationGUI
TransformationGUI();
~TransformationGUI();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+ static TransformationGUI* GetOrCreateGUI();
+ static bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
void MakeTranslationAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Vec V);
void MakeRotationAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Pnt loc,
const gp_Dir Dir, const gp_Pnt Loc, const double Ang,
const short NbTimes1, const double Step, const short NbTimes2);
-private:
GEOMBase_Context* myGeomGUI;
GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
using namespace std;
#include "TransformationGUI_MirrorDlg.h"
+#include <BRepBuilderAPI_Transform.hxx>
#include <Geom_Plane.hxx>
#include <BRep_Tool.hxx>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qpixmap.h>
-
-
-
-
//=================================================================================
// class : TransformationGUI_MirrorDlg()
// purpose : Constructs a TransformationGUI_MirrorDlg which is a child of 'parent', with the
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
-TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg( QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl )
- : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg(QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl)
+ :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
-
- QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_MIRROR")));
- QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-
- if ( !name )
- setName( "TransformationGUI_MirrorDlg" );
- resize( 303, 225 );
- setCaption( tr( "GEOM_MIRROR_TITLE" ) );
- setSizeGripEnabled( TRUE );
- TransformationGUI_MirrorDlgLayout = new QGridLayout( this );
- TransformationGUI_MirrorDlgLayout->setSpacing( 6 );
- TransformationGUI_MirrorDlgLayout->setMargin( 11 );
-
- /***************************************************************/
- GroupButtons = new QGroupBox( this, "GroupButtons" );
- GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
- GroupButtons->setTitle( tr( "" ) );
- GroupButtons->setColumnLayout(0, Qt::Vertical );
- GroupButtons->layout()->setSpacing( 0 );
- GroupButtons->layout()->setMargin( 0 );
- GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
- GroupButtonsLayout->setAlignment( Qt::AlignTop );
- GroupButtonsLayout->setSpacing( 6 );
- GroupButtonsLayout->setMargin( 11 );
- buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
- buttonCancel->setText( tr( "GEOM_BUT_CLOSE" ) );
- buttonCancel->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
- buttonApply = new QPushButton( GroupButtons, "buttonApply" );
- buttonApply->setText( tr( "GEOM_BUT_APPLY" ) );
- buttonApply->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
- QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupButtonsLayout->addItem( spacer_9, 0, 2 );
- buttonOk = new QPushButton( GroupButtons, "buttonOk" );
- buttonOk->setText( tr( "GEOM_BUT_OK" ) );
- buttonOk->setAutoDefault( TRUE );
- buttonOk->setDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
-
- TransformationGUI_MirrorDlgLayout->addWidget( GroupButtons, 2, 0 );
-
- GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
- GroupConstructors->setTitle( tr( "GEOM_MIRROR" ) );
- GroupConstructors->setExclusive( TRUE );
- GroupConstructors->setColumnLayout(0, Qt::Vertical );
- GroupConstructors->layout()->setSpacing( 0 );
- GroupConstructors->layout()->setMargin( 0 );
- GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
- GroupConstructorsLayout->setAlignment( Qt::AlignTop );
- GroupConstructorsLayout->setSpacing( 6 );
- GroupConstructorsLayout->setMargin( 11 );
- QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupConstructorsLayout->addItem( spacer_2, 0, 1 );
- Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
- Constructor1->setText( tr( "" ) );
- Constructor1->setPixmap( image0 );
- Constructor1->setChecked( TRUE );
- Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
- Constructor1->setMinimumSize( QSize( 50, 0 ) );
- GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
- TransformationGUI_MirrorDlgLayout->addWidget( GroupConstructors, 0, 0 );
-
- /***************************************************************/
- GroupC1 = new QGroupBox( this, "GroupC1" );
- GroupC1->setTitle( tr( "GEOM_ARGUMENTS" ) );
- GroupC1->setColumnLayout(0, Qt::Vertical );
- GroupC1->layout()->setSpacing( 0 );
- GroupC1->layout()->setMargin( 0 );
- GroupC1Layout = new QGridLayout( GroupC1->layout() );
- GroupC1Layout->setAlignment( Qt::AlignTop );
- GroupC1Layout->setSpacing( 6 );
- GroupC1Layout->setMargin( 11 );
- TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
- TextLabelC1A1->setText( tr( "GEOM_OBJECT" ) );
- TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A1->setFrameShape( QLabel::NoFrame );
- TextLabelC1A1->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A1, 0, 0 );
- TextLabelC1A2 = new QLabel( GroupC1, "TextLabelC1A2" );
- TextLabelC1A2->setText( tr( "GEOM_PLANE_MIRROR" ) );
- TextLabelC1A2->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A2->setFrameShape( QLabel::NoFrame );
- TextLabelC1A2->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A2, 1, 0 );
- SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
- SelectButtonC1A1->setText( tr( "" ) );
- SelectButtonC1A1->setPixmap( image1 );
- GroupC1Layout->addWidget( SelectButtonC1A1, 0, 1 );
- SelectButtonC1A2 = new QPushButton( GroupC1, "SelectButtonC1A2" );
- SelectButtonC1A2->setText( tr( "" ) );
- SelectButtonC1A2->setPixmap( image1 );
- GroupC1Layout->addWidget( SelectButtonC1A2, 1, 1 );
- LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
- LineEditC1A1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, LineEditC1A1->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( LineEditC1A1, 0, 2 );
- LineEditC1A2 = new QLineEdit( GroupC1, "LineEditC1A2" );
- GroupC1Layout->addWidget( LineEditC1A2, 1, 2 );
- TransformationGUI_MirrorDlgLayout->addWidget( GroupC1, 1, 0 );
-
- /* Initialisation */
- myTransformationGUI = theTransformationGUI;
- Init( Sel ) ;
+ QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_MIRROR")));
+ QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
+
+ setCaption(tr("GEOM_MIRROR_TITLE"));
+
+ /***************************************************************/
+ GroupConstructors->setTitle(tr("GEOM_MIRROR"));
+ RadioButton1->setPixmap(image0);
+ RadioButton2->close(TRUE);
+ RadioButton3->close(TRUE);
+
+ GroupPoints = new DlgRef_2Sel_QTD(this, "GroupPoints");
+ GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
+ GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT"));
+ GroupPoints->TextLabel2->setText(tr("GEOM_PLANE_MIRROR"));
+ GroupPoints->PushButton1->setPixmap(image1);
+ GroupPoints->PushButton2->setPixmap(image1);
+
+ Layout1->addWidget(GroupPoints, 1, 0);
+ /***************************************************************/
+
+ /* Initialisations */
+ myTransformationGUI = theTransformationGUI;
+ Init();
}
}
-
//=================================================================================
// function : Init()
// purpose :
//=================================================================================
-void TransformationGUI_MirrorDlg::Init( SALOME_Selection* Sel )
+void TransformationGUI_MirrorDlg::Init()
{
- mySelection = Sel ;
- myShape1.Nullify() ;
- myShape2.Nullify() ;
- mySimulationTopoDs.Nullify() ;
- myConstructorId = 0 ;
-
- myGeomGUI = GEOMBase_Context::GetGeomGUI() ;
- GroupC1->show();
+ /* init variables */
+ myEditCurrentArgument = GroupPoints->LineEdit1;
- myEditCurrentArgument = LineEditC1A1 ;
- Constructor1->setChecked( TRUE );
- myOkShape1 = myOkShape2 = false ;
+ myOkShape1 = myOkShape2 = false;
- myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
+ /* Vertices Filter for all arguments */
+ myFaceFilter = new GEOM_FaceFilter(StdSelect_Plane, myGeom);
- Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
- myGeom = GEOM::GEOM_Gen::_narrow(comp);
- /* Filter definition */
-
- myFaceFilter = new GEOM_FaceFilter( StdSelect_Plane, myGeom );
+ /* signals and slots connections */
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
- // TODO previous selection into argument ?
+ connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
- /* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
- connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
- connect( SelectButtonC1A1, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
- connect( SelectButtonC1A2, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
-
- connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
- connect( LineEditC1A2, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-
- connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- connect( myGeomGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
- /* to close dialog if study change */
- connect( myGeomGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
- /* Move widget on the botton right corner of main widget */
- int x, y ;
- myGeomGUI->DefineDlgPosition( this, x, y ) ;
- this->move( x, y ) ;
- this->show() ; /* Displays Dialog */
-
- return ;
-}
+ connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+ connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ /* displays Dialog */
+ GroupPoints->show();
+ this->show();
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose : Radio button management
-//=================================================================================
-void TransformationGUI_MirrorDlg::ConstructorsClicked(int constructorId)
-{
- GEOMBase_Context::GetGeomGUI()->EraseSimulationShape() ;
-
- switch (constructorId)
- {
- case 0:
- {
- GroupC1->show();
- myConstructorId = constructorId ;
- myEditCurrentArgument = LineEditC1A1 ;
- LineEditC1A2->setText(tr("")) ;
- Constructor1->setChecked( TRUE );
- myOkShape1 = myOkShape2 = false ;
- break;
- }
- }
- return ;
+ return;
}
+
//=================================================================================
// function : ClickOnOk()
// purpose :
//=================================================================================
void TransformationGUI_MirrorDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
-
- return ;
+ this->ClickOnApply();
+ ClickOnCancel();
+ return;
}
//=================================================================================
//=================================================================================
void TransformationGUI_MirrorDlg::ClickOnApply()
{
- myGeomGUI->GetDesktop()->putInfo( tr("") ) ;
- switch(myConstructorId)
- {
- case 0 :
- {
- if(myOkShape1 && myOkShape2) {
- myTransformationGUI->MakeMirrorAndDisplay(myGeomShape1 ,myGeomShape2 ) ;
- }
- break ;
- }
- }
- // accept();
- return ;
-}
-
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void TransformationGUI_MirrorDlg::ClickOnCancel()
-{
- mySelection->ClearFilters() ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->ResetState() ;
- reject() ;
- return ;
+ myGeomGUI->GetDesktop()->putInfo(tr(""));
+ if (mySimulationTopoDs.IsNull())
+ return;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ if(myOkShape1 && myOkShape2)
+ myTransformationGUI->MakeMirrorAndDisplay(myGeomShape1, myGeomShape2);
+ return;
}
-
//=================================================================================
// function : SelectionIntoArgument()
// purpose : Called when selection has changed
//=================================================================================
void TransformationGUI_MirrorDlg::SelectionIntoArgument()
{
- myEditCurrentArgument->setText("") ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+ myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
- int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString) ;
- if ( nbSel != 1 ) {
- switch (myConstructorId)
- {
- case 0:
- {
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myOkShape1 = false ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 ) {
- myOkShape2 = false ;
- }
- break ;
- }
- }
- return ;
+ int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
+ if(nbSel != 1) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1)
+ myOkShape1 = false;
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2)
+ myOkShape2 = false;
+ return;
}
- /* nbSel == 1 */
- TopoDS_Shape S;
- Standard_Boolean testResult ;
- Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
- if( !myGeomGUI->GetTopoFromSelection(mySelection, S) )
- return ;
+ // nbSel == 1
+ TopoDS_Shape S;
+ Standard_Boolean testResult;
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
+ return;
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myGeomShape1 = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
- return ;
- myShape1 = S ;
- LineEditC1A1->setText(aString) ;
- myOkShape1 = true ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 ) {
- myGeomShape2 = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
- return ;
- myShape2 = S ;
- LineEditC1A2->setText(aString) ;
- myOkShape2 = true ;
+ if(myEditCurrentArgument == GroupPoints->LineEdit1) {
+ myGeomShape1 = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
+ return;
+ myShape1 = S;
+ myEditCurrentArgument->setText(aString);
+ myOkShape1 = true;
}
-
- if(myOkShape1 && myOkShape2) {
- MakeMirrorSimulationAndDisplay( myShape1, myShape2 ) ;
- }
-
- return ;
-}
-
-
-
-//=================================================================================
-// function : MakeMirrorSimulationAndDisplay()
-// purpose : S1 is a shape and S2 a mirror.
-//=================================================================================
-void TransformationGUI_MirrorDlg::MakeMirrorSimulationAndDisplay( const TopoDS_Shape& S1, const TopoDS_Shape& S2 )
-{
- this->mySimulationTopoDs.Nullify() ;
-
- try {
- Handle(Geom_Surface) surf = BRep_Tool::Surface(TopoDS::Face(S2)) ;
- Handle(Geom_Plane) myPlane = Handle(Geom_Plane)::DownCast(surf) ;
- const gp_Ax3 pos = myPlane->Position() ;
- const gp_Pnt loc = pos.Location() ; /* location of the plane */
- const gp_Dir dir = pos.Direction() ; /* Main direction of the plane (Z axis) */
-
- /* plane used for mirroring */
- gp_Ax2 pln(loc, dir) ;
- gp_Trsf theTransformation ;
- theTransformation.SetMirror(pln) ;
- BRepBuilderAPI_Transform myBRepTransformation( S1, theTransformation, Standard_False ) ;
-
- this->mySimulationTopoDs = myBRepTransformation.Shape() ;
- if( this->mySimulationTopoDs.IsNull() )
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2) {
+ myGeomShape2 = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
return ;
- else
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
- }
- catch(Standard_Failure) {
- MESSAGE( "Exception catched in MakeMirrorSimulationAndDisplay" ) ;
- return ;
+ myShape2 = S;
+ myEditCurrentArgument->setText(aString);
+ myOkShape2 = true;
}
- return ;
-}
+ if(myOkShape1 && myOkShape2)
+ MakeMirrorSimulationAndDisplay();
+ return;
+}
//=================================================================================
void TransformationGUI_MirrorDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
- switch (myConstructorId)
- {
- case 0:
- {
- if( send == SelectButtonC1A1 ) {
- LineEditC1A1->setFocus() ;
- myEditCurrentArgument = LineEditC1A1 ;
- mySelection->ClearFilters() ;
- SelectionIntoArgument() ;
- }
- else if(send == SelectButtonC1A2) {
- LineEditC1A2->setFocus() ;
- myEditCurrentArgument = LineEditC1A2;
- mySelection->AddFilter(myFaceFilter) ;
- SelectionIntoArgument() ;
- }
- break;
- }
- }
- return ;
-}
+ if(send == GroupPoints->PushButton1) {
+ GroupPoints->LineEdit1->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ }
+ else if(send == GroupPoints->PushButton2) {
+ GroupPoints->LineEdit2->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit2;
+ mySelection->AddFilter(myFaceFilter);
+ }
+ this->SelectionIntoArgument();
+ return;
+}
//=================================================================================
//=================================================================================
void TransformationGUI_MirrorDlg::LineEditReturnPressed()
{
- QLineEdit* send = (QLineEdit*)sender();
- if( send == LineEditC1A1 )
- myEditCurrentArgument = LineEditC1A1 ;
- else if ( send == LineEditC1A2 )
- myEditCurrentArgument = LineEditC1A2 ;
+ QLineEdit* send = (QLineEdit*)sender();
+ if(send == GroupPoints->LineEdit1)
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ else if(send == GroupPoints->LineEdit2)
+ myEditCurrentArgument = GroupPoints->LineEdit2;
else
- return ;
-
- /* User name of object input management */
- /* If successfull the selection is changed and signal emitted... */
- /* so SelectionIntoArgument() is automatically called. */
- const QString objectUserName = myEditCurrentArgument->text() ;
- QWidget* thisWidget = (QWidget*)this ;
- if( myGeomGUI->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
- myEditCurrentArgument->setText( objectUserName ) ;
- }
- return ;
-}
-
-
+ return;
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose :
-//=================================================================================
-void TransformationGUI_MirrorDlg::DeactivateActiveDialog()
-{
- if ( GroupConstructors->isEnabled() ) {
- GroupConstructors->setEnabled(false) ;
- GroupC1->setEnabled(false) ;
- GroupButtons->setEnabled(false) ;
- disconnect( mySelection, 0, this, 0 );
- }
- return ;
+ GEOMBase_Skeleton::LineEditReturnPressed();
+ return;
}
-
//=================================================================================
-// function : closeEvent()
-// purpose :
+// function : enterEvent()
+// purpose : when mouse enter onto the QWidget
//=================================================================================
-void TransformationGUI_MirrorDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_MirrorDlg::enterEvent(QEvent * e)
{
- this->ClickOnCancel() ; /* same than click on cancel button */
+ if(GroupConstructors->isEnabled())
+ return;
+ this->ActivateThisDialog();
+ return;
}
//=================================================================================
-// function : enterEvent()
-// purpose : when mouse enter onto the QWidget
+// function : ActivateThisDialog()
+// purpose :
//=================================================================================
-void TransformationGUI_MirrorDlg::enterEvent( QEvent * )
+void TransformationGUI_MirrorDlg::ActivateThisDialog()
{
- if ( GroupConstructors->isEnabled() )
- return ;
- ActivateThisDialog() ;
+ GEOMBase_Skeleton::ActivateThisDialog();
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ if(!mySimulationTopoDs.IsNull())
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ return;
}
-
//=================================================================================
-// function : ActivateThisDialog()
-// purpose :
+// function : MakeMirrorSimulationAndDisplay()
+// purpose : S1 is a shape and S2 a mirror.
//=================================================================================
-void TransformationGUI_MirrorDlg::ActivateThisDialog()
+void TransformationGUI_MirrorDlg::MakeMirrorSimulationAndDisplay()
{
- /* Emit a signal to deactivate any active dialog */
- myGeomGUI->EmitSignalDeactivateDialog() ;
- GroupConstructors->setEnabled(true) ;
- GroupC1->setEnabled(true) ;
- GroupButtons->setEnabled(true) ;
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- return ;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ try {
+ Handle(Geom_Surface) surf = BRep_Tool::Surface(TopoDS::Face(myShape2));
+ Handle(Geom_Plane) myPlane = Handle(Geom_Plane)::DownCast(surf);
+ const gp_Ax3 pos = myPlane->Position();
+ const gp_Pnt loc = pos.Location(); /* location of the plane */
+ const gp_Dir dir = pos.Direction(); /* Main direction of the plane (Z axis) */
+
+ /* plane used for mirroring */
+ gp_Ax2 pln(loc, dir);
+ gp_Trsf theTransformation;
+ theTransformation.SetMirror(pln);
+ BRepBuilderAPI_Transform myBRepTransformation(myShape1, theTransformation, Standard_False);
+
+ this->mySimulationTopoDs = myBRepTransformation.Shape();
+ if(mySimulationTopoDs.IsNull())
+ return;
+ else
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ }
+ catch(Standard_Failure) {
+ MESSAGE("Exception catched in MakeMirrorSimulationAndDisplay");
+ return;
+ }
+ return;
}
#ifndef DIALOGBOX_MIRROR_H
#define DIALOGBOX_MIRROR_H
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_2Sel_QTD.h"
+
#include "TransformationGUI.h"
-#include <BRepBuilderAPI_Transform.hxx>
#include "GEOM_FaceFilter.hxx"
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
-
//=================================================================================
// class : TransformationGUI_MirrorDlg
// purpose :
//=================================================================================
-class TransformationGUI_MirrorDlg : public QDialog
+class TransformationGUI_MirrorDlg : public GEOMBase_Skeleton
{
Q_OBJECT
public:
- TransformationGUI_MirrorDlg( QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
+ TransformationGUI_MirrorDlg(QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0);
~TransformationGUI_MirrorDlg();
private :
+ void Init();
+ void enterEvent(QEvent* e);
+ void MakeMirrorSimulationAndDisplay();
+
TransformationGUI* myTransformationGUI;
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent( QEvent* e); /* Mouse enter the QWidget */
- void Init( SALOME_Selection* Sel ) ;
- void MakeMirrorSimulationAndDisplay( const TopoDS_Shape& S1, const TopoDS_Shape& S2 ) ;
- GEOM::GEOM_Gen_var myGeom ; /* Current GeomI object */
- GEOMBase_Context* myGeomGUI ; /* Current GeomGUI object */
- SALOME_Selection* mySelection ; /* User shape selection */
- TopoDS_Shape myShape1 ; /* topology used */
- TopoDS_Shape myShape2 ; /* topology used */
- GEOM::GEOM_Shape_var myGeomShape1 ; /* is myShape1 */
- GEOM::GEOM_Shape_var myGeomShape2 ; /* is myShape2 */
- TopoDS_Shape mySimulationTopoDs; /* Shape used for simulation display */
- bool myOkShape1 ;
- bool myOkShape2 ; /* to check when arguments are defined */
- int myConstructorId ; /* Current constructor id = radio button id */
- QLineEdit* myEditCurrentArgument; /* Current LineEdit */
Handle(GEOM_FaceFilter) myFaceFilter; /* To filter selections */
- QGroupBox* GroupButtons;
- QPushButton* buttonApply;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
- QGroupBox* GroupC1;
- QLabel* TextLabelC1A1;
- QLabel* TextLabelC1A2;
- QPushButton* SelectButtonC1A1;
- QPushButton* SelectButtonC1A2;
- QLineEdit* LineEditC1A1;
- QLineEdit* LineEditC1A2;
+ TopoDS_Shape myShape1; /* topology used */
+ TopoDS_Shape myShape2; /* topology used */
+ GEOM::GEOM_Shape_var myGeomShape1; /* is myShape1 */
+ GEOM::GEOM_Shape_var myGeomShape2; /* is myShape2 */
+ bool myOkShape1;
+ bool myOkShape2; /* to check when arguments are defined */
-private slots :
+ DlgRef_2Sel_QTD* GroupPoints;
- void ConstructorsClicked(int constructorId);
+private slots :
void ClickOnOk();
- void ClickOnCancel();
void ClickOnApply();
- void SetEditCurrentArgument() ;
- void SelectionIntoArgument() ;
- void LineEditReturnPressed() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
+ void ActivateThisDialog();
+ void LineEditReturnPressed();
+ void SelectionIntoArgument();
+ void SetEditCurrentArgument();
-protected:
- QGridLayout* TransformationGUI_MirrorDlgLayout;
- QGridLayout* GroupButtonsLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupC1Layout;
};
#endif // DIALOGBOX_MIRROR_H
#include "TransformationGUI_RotationDlg.h"
#include "QAD_Config.h"
-
+//#include <TopLoc_Location.hxx>
+#include <BRepBuilderAPI_Transform.hxx>
#include <BRepAdaptor_Curve.hxx>
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
-
//=================================================================================
// class : TransformationGUI_RotationDlg()
// purpose : Constructs a TransformationGUI_RotationDlg which is a child of 'parent', with the
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
-TransformationGUI_RotationDlg::TransformationGUI_RotationDlg( QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl )
- : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+TransformationGUI_RotationDlg::TransformationGUI_RotationDlg(QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl)
+ :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
- QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_ROTATION")));
- QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-
- if ( !name )
- setName( "TransformationGUI_RotationDlg" );
- resize( 303, 251 );
- setCaption( tr( "GEOM_ROTATION_TITLE" ) );
- setSizeGripEnabled( TRUE );
- TransformationGUI_RotationDlgLayout = new QGridLayout( this );
- TransformationGUI_RotationDlgLayout->setSpacing( 6 );
- TransformationGUI_RotationDlgLayout->setMargin( 11 );
-
- GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
- GroupConstructors->setTitle( tr( "GEOM_ROTATION" ) );
- GroupConstructors->setExclusive( TRUE );
- GroupConstructors->setColumnLayout(0, Qt::Vertical );
- GroupConstructors->layout()->setSpacing( 0 );
- GroupConstructors->layout()->setMargin( 0 );
- GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
- GroupConstructorsLayout->setAlignment( Qt::AlignTop );
- GroupConstructorsLayout->setSpacing( 6 );
- GroupConstructorsLayout->setMargin( 11 );
- Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
- Constructor1->setText( tr( "" ) );
- Constructor1->setPixmap( image0 );
- Constructor1->setChecked( TRUE );
- Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
- Constructor1->setMinimumSize( QSize( 50, 0 ) );
- GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupConstructorsLayout->addItem( spacer, 0, 1 );
- TransformationGUI_RotationDlgLayout->addWidget( GroupConstructors, 0, 0 );
-
- /***************************************************************/
- GroupButtons = new QGroupBox( this, "GroupButtons" );
- GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
- GroupButtons->setTitle( tr( "" ) );
- GroupButtons->setColumnLayout(0, Qt::Vertical );
- GroupButtons->layout()->setSpacing( 0 );
- GroupButtons->layout()->setMargin( 0 );
- GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
- GroupButtonsLayout->setAlignment( Qt::AlignTop );
- GroupButtonsLayout->setSpacing( 6 );
- GroupButtonsLayout->setMargin( 11 );
- buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
- buttonCancel->setText( tr( "GEOM_BUT_CLOSE" ) );
- buttonCancel->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
- buttonApply = new QPushButton( GroupButtons, "buttonApply" );
- buttonApply->setText( tr( "GEOM_BUT_APPLY" ) );
- buttonApply->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
- QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupButtonsLayout->addItem( spacer_9, 0, 2 );
- buttonOk = new QPushButton( GroupButtons, "buttonOk" );
- buttonOk->setText( tr( "GEOM_BUT_OK" ) );
- buttonOk->setAutoDefault( TRUE );
- buttonOk->setDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
- TransformationGUI_RotationDlgLayout->addWidget( GroupButtons, 2, 0 );
-
- /***************************************************************/
- GroupC1 = new QGroupBox( this, "GroupC1" );
- GroupC1->setTitle( tr( "GEOM_ARGUMENTS" ) );
- GroupC1->setFrameShape( QGroupBox::Box );
- GroupC1->setFrameShadow( QGroupBox::Sunken );
- GroupC1->setColumnLayout(0, Qt::Vertical );
- GroupC1->layout()->setSpacing( 0 );
- GroupC1->layout()->setMargin( 0 );
- GroupC1Layout = new QGridLayout( GroupC1->layout() );
- GroupC1Layout->setAlignment( Qt::AlignTop );
- GroupC1Layout->setSpacing( 6 );
- GroupC1Layout->setMargin( 11 );
- SelectButtonC1A2 = new QPushButton( GroupC1, "SelectButtonC1A2" );
- SelectButtonC1A2->setText( tr( "" ) );
- SelectButtonC1A2->setPixmap( image1 );
- SelectButtonC1A2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0,
- SelectButtonC1A2->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( SelectButtonC1A2, 1, 1 );
-
- LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
- GroupC1Layout->addMultiCellWidget( LineEditC1A1, 0, 0, 2, 3 );
- LineEditC1A2 = new QLineEdit( GroupC1, "LineEditC1A2" );
- GroupC1Layout->addMultiCellWidget( LineEditC1A2, 1, 1, 2, 3 );
- SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
- SelectButtonC1A1->setText( tr( "" ) );
- SelectButtonC1A1->setPixmap( image1 );
- SelectButtonC1A1->setToggleButton( FALSE );
- SelectButtonC1A1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0,
- SelectButtonC1A1->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( SelectButtonC1A1, 0, 1 );
-
- TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
- TextLabelC1A1->setText( tr( "GEOM_OBJECT" ) );
- TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A1->setFrameShape( QLabel::NoFrame );
- TextLabelC1A1->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A1, 0, 0 );
- TextLabelC1A2 = new QLabel( GroupC1, "TextLabelC1A2" );
- TextLabelC1A2->setText( tr( "GEOM_AXIS" ) );
- TextLabelC1A2->setMinimumSize( QSize( 50, 0 ) );
- GroupC1Layout->addWidget( TextLabelC1A2, 1, 0 );
-
- SpinBox_C1A3 = new DlgRef_SpinBox( GroupC1, "GeomSpinBox_C1A3" ) ;
- GroupC1Layout->addWidget( SpinBox_C1A3, 2, 3 );
-
- TextLabelC1A3 = new QLabel( GroupC1, "TextLabelC1A3" );
- TextLabelC1A3->setText( tr( "GEOM_ANGLE" ) );
- TextLabelC1A3->setMinimumSize( QSize( 50, 0 ) );
- GroupC1Layout->addWidget( TextLabelC1A3, 2, 2 );
- CheckBoxReverse = new QCheckBox( GroupC1, "CheckBoxReverse" );
- CheckBoxReverse->setText( tr( "GEOM_REVERSE" ) );
- GroupC1Layout->addMultiCellWidget( CheckBoxReverse, 2, 2, 0, 1 );
- TransformationGUI_RotationDlgLayout->addWidget( GroupC1, 1, 0 );
- myTransformationGUI = theTransformationGUI;
- Init(Sel) ; /* Initialisations */
+ QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_ROTATION")));
+ QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
+
+ setCaption(tr("GEOM_ROTATION_TITLE"));
+
+ /***************************************************************/
+ GroupConstructors->setTitle(tr("GEOM_ROTATION"));
+ RadioButton1->setPixmap(image0);
+ RadioButton2->close(TRUE);
+ RadioButton3->close(TRUE);
+
+ GroupPoints = new DlgRef_2Sel1Spin1Check(this, "GroupPoints");
+ GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
+ GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT"));
+ GroupPoints->TextLabel2->setText(tr("GEOM_AXIS"));
+ GroupPoints->TextLabel3->setText(tr("GEOM_ANGLE"));
+ GroupPoints->CheckButton1->setText(tr("GEOM_REVERSE"));
+ GroupPoints->PushButton1->setPixmap(image1);
+ GroupPoints->PushButton2->setPixmap(image1);
+
+ Layout1->addWidget(GroupPoints, 1, 0);
+ /***************************************************************/
+
+ /* Initialisations */
+ myTransformationGUI = theTransformationGUI;
+ Init();
}
+
//=================================================================================
// function : ~TransformationGUI_RotationDlg()
// purpose : Destroys the object and frees any allocated resources
//=================================================================================
TransformationGUI_RotationDlg::~TransformationGUI_RotationDlg()
{
- // no need to delete child widgets, Qt does it all for us
+ // no need to delete child widgets, Qt does it all for us
}
+
//=================================================================================
// function : Init()
// purpose :
//=================================================================================
-void TransformationGUI_RotationDlg::Init( SALOME_Selection* Sel )
+void TransformationGUI_RotationDlg::Init()
{
+ /* init variables */
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+
+ myAngle = 45.0;
+ myOkBase = myOkAxis = false;
+
+ myEdgeFilter = new GEOM_ShapeTypeFilter(TopAbs_EDGE, myGeom);
/* Get setting of step value from file configuration */
- double step ;
- QString St = QAD_CONFIG->getSetting( "Geometry:SettingsGeomStep" ) ;
- step = St.toDouble() ;
-
- /* min, max, step and decimals for spin boxes */
- SpinBox_C1A3->RangeStepAndValidator( -999.999, 999.999, step, 3 ) ;
- SpinBox_C1A3->SetValue( 45.0 ) ; /* = myAngle */
- myAngle = 45.0 ;
-
- GroupC1->show();
- myConstructorId = 0 ;
- Constructor1->setChecked( TRUE );
- myEditCurrentArgument = LineEditC1A1 ;
- mySelection = Sel;
- myGeomGUI = GEOMBase_Context::GetGeomGUI() ;
- myOkBase = myOkAxis = false ;
- mySimulationTopoDs.Nullify() ;
- myBase.Nullify() ;
- myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
- // TODO : set previous selection into argument ?
-
- /* Filter definitions */
- Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
- myGeom = GEOM::GEOM_Gen::_narrow(comp);
- myEdgeFilter = new GEOM_EdgeFilter( StdSelect_Line, myGeom );
+ QString St = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
+ step = St.toDouble();
+
+ /* min, max, step and decimals for spin boxes & initial values */
+ GroupPoints->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
+ GroupPoints->SpinBox_DX->SetValue(myAngle);
/* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
- connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
- connect( SelectButtonC1A1, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
- connect( SelectButtonC1A2, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
-
- connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
- connect( LineEditC1A2, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-
- connect( SpinBox_C1A3, SIGNAL ( valueChanged( double) ), this, SLOT( ValueChangedInSpinBox( double) ) ) ;
- connect( CheckBoxReverse, SIGNAL (stateChanged(int) ), this, SLOT( ReverseAngle(int) ) ) ;
-
- connect( myGeomGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
- connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- /* to close dialog if study change */
- connect( myGeomGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
- /* Move widget on the botton right corner of main widget */
- int x, y ;
- myGeomGUI->DefineDlgPosition( this, x, y ) ;
- this->move( x, y ) ;
- this->show() ; /* displays Dialog */
-
- return ;
-}
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-//=================================================================================
-// function : ReverseAngle()
-// purpose : 'state' not used here
-//=================================================================================
-void TransformationGUI_RotationDlg::ReverseAngle(int state)
-{
- myAngle = -myAngle ;
- SpinBox_C1A3->SetValue( myAngle ) ;
- if( myOkBase && myOkAxis ) {
- MakeRotationSimulationAndDisplay( myBase ) ;
- }
- else {
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- }
- return ;
-}
+ connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+ connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose : Radio button management
-//=================================================================================
-void TransformationGUI_RotationDlg::ConstructorsClicked(int constructorId)
-{
- /* only a constructor now */
- return ;
+ connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(GroupPoints->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ReverseVector(int)));
+
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+
+ /* displays Dialog */
+ GroupPoints->show();
+ this->show();
+
+ return;
}
+
//=================================================================================
// function : ClickOnOk()
// purpose :
//=================================================================================
void TransformationGUI_RotationDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
- return ;
+ this->ClickOnApply();
+ ClickOnCancel();
+ return;
}
+
//=================================================================================
// function : ClickOnApply()
// purpose :
//=================================================================================
void TransformationGUI_RotationDlg::ClickOnApply()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- myGeomGUI->GetDesktop()->putInfo( tr("") ) ;
-
- switch(myConstructorId)
- {
- case 0 :
- {
- if(myOkBase && myOkAxis) {
- myTransformationGUI->MakeRotationAndDisplay( myGeomShape, myLoc, myDir, myAngle*PI180) ;
- }
- break ;
- }
- }
- return ;
-}
-
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void TransformationGUI_RotationDlg::ClickOnCancel()
-{
- mySelection->ClearFilters() ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->ResetState() ;
- reject() ;
- return ;
+ myGeomGUI->GetDesktop()->putInfo(tr(""));
+ if (mySimulationTopoDs.IsNull())
+ return;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ if(myOkBase && myOkAxis)
+ myTransformationGUI->MakeRotationAndDisplay(myGeomShape, myLoc, myDir, myAngle*PI180);
+ return;
}
//=================================================================================
void TransformationGUI_RotationDlg::SelectionIntoArgument()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
- QString aString = ""; /* name of future selection */
-
- int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString) ;
- if ( nbSel != 1 ) {
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- LineEditC1A1->setText("") ;
- myOkBase = false ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 ) {
- LineEditC1A2->setText("") ;
- myOkAxis = false ;
- }
- return ;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+ myEditCurrentArgument->setText("");
+ QString aString = ""; /* name of selection */
+
+ int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
+ if(nbSel != 1) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1)
+ myOkBase = false;
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2)
+ myOkAxis = false;
+ return;
}
-
- /* nbSel == 1 ! */
- TopoDS_Shape S;
- Standard_Boolean testResult ;
- Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
- if( !myGeomGUI->GetTopoFromSelection(mySelection, S) )
- return ;
-
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
- return ;
- LineEditC1A1->setText(aString) ;
- myBase = S ;
- myOkBase = true ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 /*&& myGeomGUI->LinearLocationAndDirection(S, myLoc, myDir) */) {
+ // nbSel == 1
+ TopoDS_Shape S;
+ Standard_Boolean testResult;
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
+ return;
+
+ if(myEditCurrentArgument == GroupPoints->LineEdit1) {
+ myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
+ return;
+ myEditCurrentArgument->setText(aString);
+ myOkBase = true;
+ myBase = S;
+ }
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2) {
BRepAdaptor_Curve curv(TopoDS::Edge(S));
myDir = curv.Line().Direction();
myLoc = curv.Line().Location();
- LineEditC1A2->setText(aString) ;
- myOkAxis = true ;
+ myEditCurrentArgument->setText(aString);
+ myOkAxis = true;
}
- if( myOkBase && myOkAxis ) {
- MakeRotationSimulationAndDisplay( myBase) ;
- }
- return ;
+ if(myOkBase && myOkAxis)
+ this->MakeRotationSimulationAndDisplay();
+ return;
}
void TransformationGUI_RotationDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
- switch (myConstructorId)
- {
- case 0: /* default constructor */
- {
- if(send == SelectButtonC1A1) {
- LineEditC1A1->setFocus() ;
- myEditCurrentArgument = LineEditC1A1;
- mySelection->ClearFilters() ;
- }
- else if(send == SelectButtonC1A2) {
- LineEditC1A2->setFocus() ;
- myEditCurrentArgument = LineEditC1A2;
- mySelection->AddFilter(myEdgeFilter) ;
- }
- SelectionIntoArgument() ;
- break;
- }
- }
- return ;
+ mySelection->ClearFilters();
+
+ if(send == GroupPoints->PushButton1) {
+ GroupPoints->LineEdit1->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ }
+ else if(send == GroupPoints->PushButton2) {
+ GroupPoints->LineEdit2->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit2;
+ mySelection->AddFilter(myEdgeFilter);
+ }
+ this->SelectionIntoArgument();
+
+ return;
}
//=================================================================================
void TransformationGUI_RotationDlg::LineEditReturnPressed()
{
- QLineEdit* send = (QLineEdit*)sender();
- if( send == LineEditC1A1 )
- myEditCurrentArgument = LineEditC1A1 ;
- else if ( send == LineEditC1A2 )
- myEditCurrentArgument = LineEditC1A2 ;
+ QLineEdit* send = (QLineEdit*)sender();
+ if(send == GroupPoints->LineEdit1)
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ else if (send == GroupPoints->LineEdit2)
+ myEditCurrentArgument = GroupPoints->LineEdit2;
else
- return ;
-
- /* User name of object input management */
- /* If successfull the selection is changed and signal emitted... */
- /* so SelectionIntoArgument() is automatically called. */
- const QString objectUserName = myEditCurrentArgument->text() ;
- QWidget* thisWidget = (QWidget*)this ;
- if( myGeomGUI->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
- myEditCurrentArgument->setText( objectUserName ) ;
- }
- return ;
-}
+ return;
-
-//=================================================================================
-// function : ValueChangedInSpinBox()
-// purpose :
-//=================================================================================
-void TransformationGUI_RotationDlg::ValueChangedInSpinBox( double newValue )
-{
- myAngle = newValue ;
- if (myOkBase && myOkAxis) {
- MakeRotationSimulationAndDisplay(myBase) ;
- }
- else {
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- }
- return ;
-}
-
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose :
-//=================================================================================
-void TransformationGUI_RotationDlg::DeactivateActiveDialog()
-{
- if ( GroupConstructors->isEnabled() ) {
- GroupConstructors->setEnabled(false) ;
- GroupC1->setEnabled(false) ;
- GroupButtons->setEnabled(false) ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->EraseSimulationShape() ;
- mySelection->ClearFilters() ;
- }
- return ;
+ GEOMBase_Skeleton::LineEditReturnPressed();
+ return;
}
//=================================================================================
void TransformationGUI_RotationDlg::ActivateThisDialog()
{
- /* Emit a signal to deactivate the active dialog */
- myGeomGUI->EmitSignalDeactivateDialog() ;
- GroupConstructors->setEnabled(true) ;
- GroupC1->setEnabled(true) ;
- GroupButtons->setEnabled(true) ;
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- if( !mySimulationTopoDs.IsNull() )
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
- return ;
+ GEOMBase_Skeleton::ActivateThisDialog();
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ if(!mySimulationTopoDs.IsNull())
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ return;
}
-
//=================================================================================
// function : enterEvent()
// purpose :
//=================================================================================
void TransformationGUI_RotationDlg::enterEvent(QEvent* e)
{
- if ( GroupConstructors->isEnabled() )
- return ;
- ActivateThisDialog() ;
+ if (GroupConstructors->isEnabled())
+ return;
+ this->ActivateThisDialog();
+ return;
}
-
//=================================================================================
-// function : closeEvent()
+// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void TransformationGUI_RotationDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_RotationDlg::ValueChangedInSpinBox(double newValue)
{
- this->ClickOnCancel() ; /* same than click on cancel button */
+ myAngle = newValue;
+ if(myOkBase && myOkAxis)
+ MakeRotationSimulationAndDisplay();
+ return;
}
// function : MakeRotationSimulationAndDisplay()
// purpose :
//=================================================================================
-void TransformationGUI_RotationDlg::MakeRotationSimulationAndDisplay( const TopoDS_Shape& S)
+void TransformationGUI_RotationDlg::MakeRotationSimulationAndDisplay()
{
- myGeomGUI->EraseSimulationShape() ;
-
- if( S.IsNull() )
- return ;
-
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
try {
- gp_Ax1 AX( this->myLoc, this->myDir ) ;
- gp_Trsf theTransformation ;
- theTransformation.SetRotation(AX, this->myAngle*PI180 ) ;
- BRepBuilderAPI_Transform myBRepTransformation(S, theTransformation, Standard_False) ;
- this->mySimulationTopoDs = myBRepTransformation.Shape() ;
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
+ gp_Ax1 AX(myLoc, myDir);
+ gp_Trsf theTransformation;
+ theTransformation.SetRotation(AX, myAngle*PI180);
+ BRepBuilderAPI_Transform myBRepTransformation(myBase, theTransformation, Standard_False);
+ this->mySimulationTopoDs = myBRepTransformation.Shape();
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
catch(Standard_Failure) {
- MESSAGE( "Exception catched in MakeRotationSimulationAndDisplay" ) ;
- return ;
+ MESSAGE("Exception catched in MakeRotationSimulationAndDisplay");
+ return;
}
- return ;
+ return;
+}
+
+
+//=================================================================================
+// function : ReverseAngle()
+// purpose : 'state' not used here
+//=================================================================================
+void TransformationGUI_RotationDlg::ReverseAngle(int state)
+{
+ myAngle = -myAngle;
+ GroupPoints->SpinBox_DX->SetValue(myAngle);
+ if(myOkBase && myOkAxis)
+ MakeRotationSimulationAndDisplay();
+ return;
}
#ifndef DIALOGBOX_ROTATION_H
#define DIALOGBOX_ROTATION_H
-#include "TransformationGUI.h"
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_2Sel1Spin1Check.h"
-#include "GEOM_EdgeFilter.hxx"
-#include "DlgRef_SpinBox.h"
+#include "TransformationGUI.h"
-#include <TopLoc_Location.hxx>
-#include <BRepBuilderAPI_Transform.hxx>
#include <gp_Dir.hxx>
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QButtonGroup;
-class QCheckBox;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
//=================================================================================
// class : TransformationGUI_RotationDlg
// purpose :
//=================================================================================
-class TransformationGUI_RotationDlg : public QDialog
+class TransformationGUI_RotationDlg : public GEOMBase_Skeleton
{
Q_OBJECT
public:
- TransformationGUI_RotationDlg( QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
+ TransformationGUI_RotationDlg(QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0);
~TransformationGUI_RotationDlg();
private :
+ void Init();
+ void enterEvent(QEvent* e);
+ void MakeRotationSimulationAndDisplay();
+
TransformationGUI* myTransformationGUI;
- GEOM::GEOM_Gen_var myGeom ; /* Current Geom object */
- GEOMBase_Context* myGeomGUI ; /* Current GeomGUI object */
- SALOME_Selection* mySelection ; /* User shape selection */
- TopoDS_Shape mySimulationTopoDs; /* Shape used for simulation display */
- TopoDS_Shape myBase ;
- GEOM::GEOM_Shape_var myGeomShape ; /* is myBase */
- gp_Pnt myLoc ;
- gp_Dir myDir ;
- Standard_Real myAngle ;
-
- bool myOkBase ;
- bool myOkAxis ;
- QLineEdit* myEditCurrentArgument; /* Current LineEdit */
- int myConstructorId ; /* Current constructor id = radio button id */
- Handle(GEOM_EdgeFilter) myEdgeFilter; /* Filter selection */
+ double step;
+ Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* Filters selection */
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent( QEvent* e);
- void Init( SALOME_Selection* Sel ) ;
- void MakeRotationSimulationAndDisplay( const TopoDS_Shape& S) ;
+ TopoDS_Shape myBase;
+ GEOM::GEOM_Shape_var myGeomShape; /* is myBase */
+ gp_Pnt myLoc;
+ gp_Dir myDir;
+ Standard_Real myAngle;
+ bool myOkBase;
+ bool myOkAxis;
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
- QGroupBox* GroupC1;
- QPushButton* SelectButtonC1A2;
- QLineEdit* LineEditC1A1;
- QLineEdit* LineEditC1A2;
- QPushButton* SelectButtonC1A1;
- QLabel* TextLabelC1A1;
- QLabel* TextLabelC1A2;
- DlgRef_SpinBox* SpinBox_C1A3 ; /* for angle */
- QLabel* TextLabelC1A3;
- QCheckBox* CheckBoxReverse;
+ DlgRef_2Sel1Spin1Check* GroupPoints;
private slots:
-
- void ConstructorsClicked(int constructorId);
void ClickOnOk();
- void ClickOnCancel();
void ClickOnApply();
- void SetEditCurrentArgument() ;
- void SelectionIntoArgument() ;
- void LineEditReturnPressed() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
- void ReverseAngle(int state) ;
- void ValueChangedInSpinBox( double newValue ) ;
+ void ActivateThisDialog();
+ void LineEditReturnPressed();
+ void SelectionIntoArgument();
+ void SetEditCurrentArgument();
+ void ReverseAngle(int state);
+ void ValueChangedInSpinBox(double newValue);
-protected:
- QGridLayout* TransformationGUI_RotationDlgLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupButtonsLayout;
- QGridLayout* GroupC1Layout;
};
#endif // DIALOGBOX_ROTATION_H
#include <BRepBuilderAPI_Transform.hxx>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
-
//=================================================================================
// class : TransformationGUI_ScaleDlg()
// purpose : Constructs a TransformationGUI_ScaleDlg which is a child of 'parent', with the
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
-TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg( QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl )
- : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg(QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl)
+ :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
- QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_SCALE")));
- QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-
- if ( !name )
- setName( "TransformationGUI_ScaleDlg" );
- resize( 303, 253 );
- setCaption( tr( "GEOM_SCALE_TITLE" ) );
- setSizeGripEnabled( TRUE );
- TransformationGUI_ScaleDlgLayout = new QGridLayout( this );
- TransformationGUI_ScaleDlgLayout->setSpacing( 6 );
- TransformationGUI_ScaleDlgLayout->setMargin( 11 );
-
- /***************************************************************/
- GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
- GroupConstructors->setTitle( tr( "GEOM_SCALE" ) );
- GroupConstructors->setExclusive( TRUE );
- GroupConstructors->setColumnLayout(0, Qt::Vertical );
- GroupConstructors->layout()->setSpacing( 0 );
- GroupConstructors->layout()->setMargin( 0 );
- GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
- GroupConstructorsLayout->setAlignment( Qt::AlignTop );
- GroupConstructorsLayout->setSpacing( 6 );
- GroupConstructorsLayout->setMargin( 11 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupConstructorsLayout->addItem( spacer, 0, 1 );
- Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
- Constructor1->setText( tr( "" ) );
- Constructor1->setPixmap( image0 );
- Constructor1->setChecked( TRUE );
- Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
- Constructor1->setMinimumSize( QSize( 50, 0 ) );
- GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
- TransformationGUI_ScaleDlgLayout->addWidget( GroupConstructors, 0, 0 );
-
- /***************************************************************/
- GroupC1 = new QGroupBox( this, "GroupC1" );
- GroupC1->setTitle( tr( "GEOM_ARGUMENTS" ) );
- GroupC1->setColumnLayout(0, Qt::Vertical );
- GroupC1->layout()->setSpacing( 0 );
- GroupC1->layout()->setMargin( 0 );
- GroupC1Layout = new QGridLayout( GroupC1->layout() );
- GroupC1Layout->setAlignment( Qt::AlignTop );
- GroupC1Layout->setSpacing( 6 );
- GroupC1Layout->setMargin( 11 );
- TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
- TextLabelC1A1->setText( tr( "GEOM_OBJECT" ) );
- TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A1->setFrameShape( QLabel::NoFrame );
- TextLabelC1A1->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A1, 0, 0 );
- TextLabelC1A2 = new QLabel( GroupC1, "TextLabelC1A2" );
- TextLabelC1A2->setText( tr( "GEOM_CENTRAL_POINT" ) );
- TextLabelC1A2->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A2->setFrameShape( QLabel::NoFrame );
- TextLabelC1A2->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A2, 1, 0 );
- SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
- SelectButtonC1A1->setText( tr( "" ) );
- SelectButtonC1A1->setPixmap( image1 );
- GroupC1Layout->addWidget( SelectButtonC1A1, 0, 1 );
- SelectButtonC1A2 = new QPushButton( GroupC1, "SelectButtonC1A2" );
- SelectButtonC1A2->setText( tr( "" ) );
- SelectButtonC1A2->setPixmap( image1 );
- GroupC1Layout->addWidget( SelectButtonC1A2, 1, 1 );
- LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
- LineEditC1A1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, LineEditC1A1->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( LineEditC1A1, 0, 2 );
- LineEditC1A2 = new QLineEdit( GroupC1, "LineEditC1A2" );
- GroupC1Layout->addWidget( LineEditC1A2, 1, 2 );
- LineEditC1A3 = new QLineEdit( GroupC1, "LineEditC1A3" );
- GroupC1Layout->addWidget( LineEditC1A3, 2, 2 );
- TextLabelC1A3 = new QLabel( GroupC1, "TextLabelC1A3" );
- TextLabelC1A3->setText( tr( "GEOM_SCALE_FACTOR" ) );
- TextLabelC1A3->setMinimumSize( QSize( 50, 0 ) );
- GroupC1Layout->addWidget( TextLabelC1A3, 2, 0 );
- TransformationGUI_ScaleDlgLayout->addWidget( GroupC1, 1, 0 );
-
- /***************************************************************/
- GroupButtons = new QGroupBox( this, "GroupButtons" );
- GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
- GroupButtons->setTitle( tr( "" ) );
- GroupButtons->setColumnLayout(0, Qt::Vertical );
- GroupButtons->layout()->setSpacing( 0 );
- GroupButtons->layout()->setMargin( 0 );
- GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
- GroupButtonsLayout->setAlignment( Qt::AlignTop );
- GroupButtonsLayout->setSpacing( 6 );
- GroupButtonsLayout->setMargin( 11 );
- buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
- buttonCancel->setText( tr( "GEOM_BUT_CLOSE" ) );
- buttonCancel->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
- buttonApply = new QPushButton( GroupButtons, "buttonApply" );
- buttonApply->setText( tr( "GEOM_BUT_APPLY" ) );
- buttonApply->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
- QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupButtonsLayout->addItem( spacer_9, 0, 2 );
- buttonOk = new QPushButton( GroupButtons, "buttonOk" );
- buttonOk->setText( tr( "GEOM_BUT_OK" ) );
- buttonOk->setAutoDefault( TRUE );
- buttonOk->setDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
- TransformationGUI_ScaleDlgLayout->addWidget( GroupButtons, 2, 0 );
- myTransformationGUI = theTransformationGUI;
- /* Initialisation */
- Init( Sel ) ;
+ QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_SCALE")));
+ QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
+
+ setCaption(tr("GEOM_SCALE_TITLE"));
+
+ /***************************************************************/
+ GroupConstructors->setTitle(tr("GEOM_SCALE"));
+ RadioButton1->setPixmap(image0);
+ RadioButton2->close(TRUE);
+ RadioButton3->close(TRUE);
+
+ GroupPoints = new DlgRef_2Sel1Spin(this, "GroupPoints");
+ GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
+ GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT"));
+ GroupPoints->TextLabel2->setText(tr("GEOM_CENTRAL_POINT"));
+ GroupPoints->TextLabel3->setText(tr("GEOM_SCALE_FACTOR"));
+ GroupPoints->PushButton1->setPixmap(image1);
+ GroupPoints->PushButton2->setPixmap(image1);
+
+ Layout1->addWidget(GroupPoints, 1, 0);
+ /***************************************************************/
+
+ /* Initialisations */
+ myTransformationGUI = theTransformationGUI;
+ Init();
}
+
//=================================================================================
// function : ~TransformationGUI_ScaleDlg()
// purpose : Destroys the object and frees any allocated resources
// function : Init()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::Init( SALOME_Selection* Sel )
+void TransformationGUI_ScaleDlg::Init()
{
+ /* init variables */
+ myEditCurrentArgument = GroupPoints->LineEdit1;
- LineEditC1A3->setMaxLength( 10 );
- QDoubleValidator *Va = new QDoubleValidator( -999999, +999999, 3, LineEditC1A3 ) ;
- LineEditC1A3->setValidator( Va ) ;
-
- GroupC1->show();
- myConstructorId = 0 ;
- Constructor1->setChecked( TRUE );
- myEditCurrentArgument = LineEditC1A1 ;
- mySelection = Sel;
- myGeomGUI = GEOMBase_Context::GetGeomGUI() ;
- myPoint1.SetCoord( 0.0, 0.0, 0.0 );
- myOkPoint1 = myOkBaseTopo = false ;
- myFactor = 2.0 ;
- LineEditC1A3->setText("2.0") ;
- mySimulationTopoDs.Nullify() ;
- myBaseTopo.Nullify() ;
- myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
- // TODO : previous selection into argument ?
-
- /* Filters definition */
- Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
- myGeom = GEOM::GEOM_Gen::_narrow(comp);
- myVertexFilter = new GEOM_ShapeTypeFilter( TopAbs_VERTEX, myGeom );
- mySelection->AddFilter(myVertexFilter) ; /* first filter used */
+ myPoint1.SetCoord(0.0, 0.0, 0.0);
+ myOkPoint1 = myOkBaseTopo = false;
+ myFactor = 2.0;
- /* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
- connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
- connect( SelectButtonC1A1, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
- connect( SelectButtonC1A2, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
-
- connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
- connect( LineEditC1A2, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-
- connect( LineEditC1A3, SIGNAL (textChanged(const QString&) ), this, SLOT( TextChangedInLineEdit(const QString&) ) ) ;
- connect( myGeomGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
- connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- /* to close dialog if study change */
- connect( myGeomGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
- /* Move widget on the botton right corner of main widget */
- int x, y ;
- myGeomGUI->DefineDlgPosition( this, x, y ) ;
- this->move( x, y ) ;
- this->show() ; /* displays Dialog */
+ myVertexFilter = new GEOM_ShapeTypeFilter(TopAbs_VERTEX, myGeom);
- return ;
-}
+ /* Get setting of step value from file configuration */
+ QString St = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
+ step = St.toDouble();
+ /* min, max, step and decimals for spin boxes & initial values */
+ GroupPoints->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
+ GroupPoints->SpinBox_DX->SetValue(myFactor);
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose : Radio button management
-//=================================================================================
-void TransformationGUI_ScaleDlg::ConstructorsClicked(int constructorId)
-{
- myGeomGUI->EraseSimulationShape() ;
-
- switch (constructorId)
- {
- case 0:
- {
- GroupC1->show();
- myConstructorId = constructorId ;
- myEditCurrentArgument = LineEditC1A1 ;
- Constructor1->setChecked( TRUE );
- LineEditC1A1->setText(tr("")) ;
- LineEditC1A2->setText(tr("")) ;
- myOkPoint1 = myOkBaseTopo = false ;
- myFactor = 2.0 ;
- /* filter for next selections */
- mySelection->ClearFilters() ;
- mySelection->AddFilter( myVertexFilter );
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- break;
- }
- }
- return ;
-}
+ /* signals and slots connections */
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-//=================================================================================
-// function : ClickOnOk()
-// purpose :
-//=================================================================================
-void TransformationGUI_ScaleDlg::ClickOnOk()
-{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
+ connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
- return ;
-}
+ connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+ connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
-//=================================================================================
-// function : ClickOnApply()
-// purpose :
-//=================================================================================
-void TransformationGUI_ScaleDlg::ClickOnApply()
-{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- myGeomGUI->GetDesktop()->putInfo( tr("") ) ;
-
- switch(myConstructorId)
- {
- case 0 :
- {
- if( myOkBaseTopo && myOkPoint1 )
- myTransformationGUI->MakeScaleAndDisplay(myGeomShape, myPoint1, myFactor ) ;
- break ;
- }
- }
- // accept();
- return ;
-}
+ connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double)));
+
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+ /* displays Dialog */
+ GroupPoints->show();
+ this->show();
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void TransformationGUI_ScaleDlg::ClickOnCancel()
-{
- mySelection->ClearFilters() ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->ResetState() ;
- reject() ;
- return ;
+ return;
}
+
//=================================================================================
-// function : LineEditReturnPressed()
+// function : ClickOnOk()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::LineEditReturnPressed()
+void TransformationGUI_ScaleDlg::ClickOnOk()
{
- QLineEdit* send = (QLineEdit*)sender();
- if( send == LineEditC1A1 )
- myEditCurrentArgument = LineEditC1A1 ;
- else if ( send == LineEditC1A2 )
- myEditCurrentArgument = LineEditC1A2 ;
- else
- return ;
-
- /* User name of object input management */
- /* If successfull the selection is changed and signal emitted... */
- /* so SelectionIntoArgument() is automatically called. */
- const QString objectUserName = myEditCurrentArgument->text() ;
- QWidget* thisWidget = (QWidget*)this ;
- if( myGeomGUI->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
- myEditCurrentArgument->setText( objectUserName ) ;
- }
- return ;
+ this->ClickOnApply();
+ ClickOnCancel();
+ return;
}
//=================================================================================
-// function : TextChangedInLineEdit()
+// function : ClickOnApply()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::TextChangedInLineEdit(const QString& newText)
+void TransformationGUI_ScaleDlg::ClickOnApply()
{
- QLineEdit* send = (QLineEdit*)sender();
- if(send == LineEditC1A3) {
- myGeomGUI->EraseSimulationShape() ;
- myFactor = newText.toFloat();
- if( fabs(myFactor) > 0.00001 && myOkBaseTopo && myOkPoint1 )
- MakeScaleSimulationAndDisplay(myBaseTopo) ;
- }
- return ;
+ myGeomGUI->GetDesktop()->putInfo(tr(""));
+ if (mySimulationTopoDs.IsNull())
+ return;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ if(myOkBaseTopo && myOkPoint1)
+ myTransformationGUI->MakeScaleAndDisplay(myGeomShape, myPoint1, myFactor);
+ return;
}
-
//=================================================================================
// function : SelectionIntoArgument()
// purpose : Called when selection as changed or other case
//=================================================================================
void TransformationGUI_ScaleDlg::SelectionIntoArgument()
-{
- myEditCurrentArgument->setText("") ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
+{
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+ myEditCurrentArgument->setText("");
QString aString = ""; /* name of selection */
-
- int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString) ;
- if ( nbSel != 1 ) {
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myEditCurrentArgument->setText("") ;
- myOkBaseTopo = false ;
- }
- else if ( myEditCurrentArgument == LineEditC1A2 ) {
- myEditCurrentArgument->setText("") ;
- myOkPoint1 = false ;
- }
- return ;
+
+ int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
+ if (nbSel != 1) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1)
+ myOkBaseTopo = false;
+ else if (myEditCurrentArgument == GroupPoints->LineEdit2)
+ myOkPoint1 = false;
+ return;
}
- // nbSel == 1
+ /* nbSel == 1 */
TopoDS_Shape S;
- Standard_Boolean testResult ;
- Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
- if( !myGeomGUI->GetTopoFromSelection(mySelection, S) )
- return ;
-
- /* Constructor */
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
+ Standard_Boolean testResult;
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
+ return;
+
+ /* gp_Pnt : not used */
+ if(myEditCurrentArgument == GroupPoints->LineEdit1) {
+ myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
return ;
- myEditCurrentArgument->setText(aString) ;
- myBaseTopo = S ;
- myOkBaseTopo = true ;
+ GroupPoints->LineEdit1->setText(aString);
+ myBaseTopo = S;
+ myOkBaseTopo = true;
+ }
+ else if(myEditCurrentArgument == GroupPoints->LineEdit2 && myGeomGUI->VertexToPoint(S, myPoint1)) {
+ GroupPoints->LineEdit2->setText(aString);
+ myOkPoint1 = true;
}
- else if ( myEditCurrentArgument == LineEditC1A2 && myGeomGUI->VertexToPoint(S, myPoint1) ) {
- myEditCurrentArgument->setText(aString) ;
- myOkPoint1 = true ;
- }
-
- if( myOkBaseTopo && myOkPoint1 ) {
- MakeScaleSimulationAndDisplay( myBaseTopo ) ;
- }
- return ;
+
+ if(myOkPoint1 && myOkBaseTopo)
+ this->MakeScaleSimulationAndDisplay();
+ return;
}
//=================================================================================
-// function : SetEditCurrentArgument()
+// function : LineEditReturnPressed()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::SetEditCurrentArgument()
+void TransformationGUI_ScaleDlg::LineEditReturnPressed()
{
- QPushButton* send = (QPushButton*)sender();
- switch (myConstructorId)
- {
- case 0: /* default constructor */
- {
- if(send == SelectButtonC1A1) {
- LineEditC1A1->setFocus() ;
- myEditCurrentArgument = LineEditC1A1;
- mySelection->ClearFilters() ;
- SelectionIntoArgument() ;
- }
- else if(send == SelectButtonC1A2) {
- LineEditC1A2->setFocus() ;
- myEditCurrentArgument = LineEditC1A2;
- mySelection->AddFilter(myVertexFilter) ;
- SelectionIntoArgument() ;
- }
- break;
- }
- }
- return ;
+ QLineEdit* send = (QLineEdit*)sender();
+ if(send == GroupPoints->LineEdit1)
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ else if (send == GroupPoints->LineEdit2)
+ myEditCurrentArgument = GroupPoints->LineEdit2;
+ else
+ return;
+
+ GEOMBase_Skeleton::LineEditReturnPressed();
+ return;
}
//=================================================================================
-// function : DeactivateActiveDialog()
+// function : SetEditCurrentArgument()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::DeactivateActiveDialog()
+void TransformationGUI_ScaleDlg::SetEditCurrentArgument()
{
- if ( GroupConstructors->isEnabled() ) {
- GroupConstructors->setEnabled(false) ;
- GroupC1->setEnabled(false) ;
- GroupButtons->setEnabled(false) ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->EraseSimulationShape() ;
- mySelection->ClearFilters() ;
+ QPushButton* send = (QPushButton*)sender();
+ mySelection->ClearFilters();
+
+ if(send == GroupPoints->PushButton1) {
+ GroupPoints->LineEdit1->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit1;
}
- return ;
-}
+ else if(send == GroupPoints->PushButton2) {
+ GroupPoints->LineEdit2->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit2;
+ mySelection->AddFilter(myVertexFilter);
+ }
+ this->SelectionIntoArgument();
+ return;
+}
//=================================================================================
//=================================================================================
void TransformationGUI_ScaleDlg::ActivateThisDialog()
{
- /* Emit a signal to deactivate the active dialog */
- myGeomGUI->EmitSignalDeactivateDialog() ;
- GroupConstructors->setEnabled(true) ;
- GroupC1->setEnabled(true) ;
- GroupButtons->setEnabled(true) ;
-
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- if( !mySimulationTopoDs.IsNull() )
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
-
- return ;
+ GEOMBase_Skeleton::ActivateThisDialog();
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ if(!mySimulationTopoDs.IsNull())
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ return;
}
//=================================================================================
void TransformationGUI_ScaleDlg::enterEvent(QEvent* e)
{
- if ( GroupConstructors->isEnabled() )
- return ;
- ActivateThisDialog() ;
+ if(GroupConstructors->isEnabled())
+ return;
+ this->ActivateThisDialog();
+ return;
}
//=================================================================================
-// function : closeEvent()
+// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_ScaleDlg::ValueChangedInSpinBox(double newValue)
{
- this->ClickOnCancel() ; /* same than click on cancel button */
+ myFactor = newValue;
+ if(fabs(myFactor) > 0.00001 && myOkPoint1 && myOkBaseTopo)
+ MakeScaleSimulationAndDisplay();
+ return;
}
// function : MakeScaleSimulationAndDisplay()
// purpose :
//=================================================================================
-void TransformationGUI_ScaleDlg::MakeScaleSimulationAndDisplay( const TopoDS_Shape& S )
+void TransformationGUI_ScaleDlg::MakeScaleSimulationAndDisplay()
{
- this->mySimulationTopoDs.Nullify() ;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
try {
- gp_Trsf theTransformation ;
- theTransformation.SetScale( myPoint1, myFactor) ;
- BRepBuilderAPI_Transform myBRepTransformation( S, theTransformation, Standard_False) ;
- mySimulationTopoDs = myBRepTransformation.Shape() ;
- if( mySimulationTopoDs.IsNull() )
- return ;
+ gp_Trsf theTransformation;
+ theTransformation.SetScale(myPoint1, myFactor);
+ BRepBuilderAPI_Transform myBRepTransformation(myBaseTopo, theTransformation, Standard_False);
+ mySimulationTopoDs = myBRepTransformation.Shape();
+ if(mySimulationTopoDs.IsNull())
+ return;
else
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
}
catch(Standard_Failure) {
- MESSAGE( "Exception catched in MakeScaleSimulationAndDisplay" ) ;
- return ;
+ MESSAGE("Exception catched in MakeScaleSimulationAndDisplay");
+ return;
}
- return ;
+ return;
}
#ifndef DIALOGBOX_SCALE_H
#define DIALOGBOX_SCALE_H
-#include "TransformationGUI.h"
-
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_2Sel1Spin.h"
+#include "TransformationGUI.h"
//=================================================================================
// class : TransformationGUI_ScaleDlg
// purpose :
//=================================================================================
-class TransformationGUI_ScaleDlg : public QDialog
+class TransformationGUI_ScaleDlg : public GEOMBase_Skeleton
{
Q_OBJECT
public:
- TransformationGUI_ScaleDlg( QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
+ TransformationGUI_ScaleDlg(QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0);
~TransformationGUI_ScaleDlg();
private :
- TransformationGUI* myTransformationGUI;
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent( QEvent* e );
- void Init(SALOME_Selection* Sel) ;
- void MakeScaleSimulationAndDisplay( const TopoDS_Shape& S ) ;
+ void Init();
+ void enterEvent(QEvent* e);
+ void MakeScaleSimulationAndDisplay();
+
+ TransformationGUI* myTransformationGUI;
+
+ double step;
+ Handle(GEOM_ShapeTypeFilter) myVertexFilter;
- GEOM::GEOM_Gen_var myGeom ; /* Current GeomI object */
- GEOMBase_Context* myGeomGUI ; /* Current GeomGUI object */
- TopoDS_Shape mySimulationTopoDs ; /* Shape used for simulation display */
- SALOME_Selection* mySelection ; /* User shape selection */
- gp_Pnt myPoint1 ; /* Points containing the vector */
- TopoDS_Shape myBaseTopo ;
- GEOM::GEOM_Shape_var myGeomShape ; /* is myBaseTopo */
- Standard_Real myFactor ;
- bool myOkPoint1 ; /* true when myPoint1 is defined */
- bool myOkBaseTopo ; /* true when myBaseTopo is defined */
- int myConstructorId ; /* Current constructor id = radio button id */
- QLineEdit* myEditCurrentArgument; /* Current LineEdit */
- Handle(GEOM_ShapeTypeFilter) myVertexFilter; /* filter for selection */
+ gp_Pnt myPoint1; /* Points containing the vector */
+ bool myOkPoint1; /* true when myPoint1 is defined */
+ TopoDS_Shape myBaseTopo;
+ bool myOkBaseTopo; /* true when myBaseTopo is defined */
+ GEOM::GEOM_Shape_var myGeomShape; /* is myBaseTopo */
+ Standard_Real myFactor;
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
- QGroupBox* GroupC1;
- QLabel* TextLabelC1A1;
- QLabel* TextLabelC1A2;
- QPushButton* SelectButtonC1A1;
- QPushButton* SelectButtonC1A2;
- QLineEdit* LineEditC1A1;
- QLineEdit* LineEditC1A2;
- QLineEdit* LineEditC1A3;
- QLabel* TextLabelC1A3;
- QGroupBox* GroupButtons;
- QPushButton* buttonApply;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
+ DlgRef_2Sel1Spin* GroupPoints;
private slots :
-
- void ConstructorsClicked(int constructorId);
void ClickOnOk();
- void ClickOnCancel();
void ClickOnApply();
- void SetEditCurrentArgument() ;
- void SelectionIntoArgument() ;
- void LineEditReturnPressed() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
- void TextChangedInLineEdit(const QString& newText) ;
+ void ActivateThisDialog();
+ void LineEditReturnPressed();
+ void SelectionIntoArgument();
+ void SetEditCurrentArgument();
+ void ValueChangedInSpinBox(double newValue);
-protected:
- QGridLayout* TransformationGUI_ScaleDlgLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupC1Layout;
- QGridLayout* GroupButtonsLayout;
};
#endif // DIALOGBOX_SCALE_H
using namespace std;
#include "TransformationGUI_TranslationDlg.h"
-
-#include "QAD_Config.h"
-
-
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-#include <qevent.h>
-
-
+#include <BRepBuilderAPI_Transform.hxx>
//=================================================================================
// class : TransformationGUI_TranslationDlg()
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
-TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg( QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl )
- : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg(QWidget* parent, const char* name, TransformationGUI* theTransformationGUI, SALOME_Selection* Sel, bool modal, WFlags fl)
+ :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{
- QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_TRANSLATION")));
- QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-
- if ( !name )
- setName( "TransformationGUI_TranslationDlg" );
- resize( 303, 219 );
- setCaption( tr( "GEOM_TRANSLATION_TITLE" ) );
- setSizeGripEnabled( TRUE );
- TransformationGUI_TranslationDlgLayout = new QGridLayout( this );
- TransformationGUI_TranslationDlgLayout->setSpacing( 6 );
- TransformationGUI_TranslationDlgLayout->setMargin( 11 );
-
- /***************************************************************/
- GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
- GroupConstructors->setTitle( tr( "GEOM_TRANSLATION" ) );
- GroupConstructors->setExclusive( TRUE );
- GroupConstructors->setColumnLayout(0, Qt::Vertical );
- GroupConstructors->layout()->setSpacing( 0 );
- GroupConstructors->layout()->setMargin( 0 );
- GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
- GroupConstructorsLayout->setAlignment( Qt::AlignTop );
- GroupConstructorsLayout->setSpacing( 6 );
- GroupConstructorsLayout->setMargin( 11 );
- Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
- Constructor1->setText( tr( "" ) );
- Constructor1->setPixmap( image0 );
- Constructor1->setChecked( TRUE );
- Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
- Constructor1->setMinimumSize( QSize( 50, 0 ) );
- GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupConstructorsLayout->addItem( spacer, 0, 1 );
- TransformationGUI_TranslationDlgLayout->addWidget( GroupConstructors, 0, 0 );
-
- GroupC1 = new QGroupBox( this, "GroupC1" );
- GroupC1->setTitle( tr( "GEOM_TRANSLATION" ) ) ;
- GroupC1->setMinimumSize( QSize( 0, 0 ) );
- GroupC1->setFrameShape( QGroupBox::Box );
- GroupC1->setFrameShadow( QGroupBox::Sunken );
- GroupC1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)5, GroupC1->sizePolicy().hasHeightForWidth() ) );
- GroupC1->setColumnLayout(0, Qt::Vertical );
- GroupC1->layout()->setSpacing( 0 );
- GroupC1->layout()->setMargin( 0 );
- GroupC1Layout = new QGridLayout( GroupC1->layout() );
- GroupC1Layout->setAlignment( Qt::AlignTop );
- GroupC1Layout->setSpacing( 6 );
- GroupC1Layout->setMargin( 11 );
-
- TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
- TextLabelC1A1->setText( tr( "GEOM_OBJECT" ) );
- TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
- TextLabelC1A1->setFrameShape( QLabel::NoFrame );
- TextLabelC1A1->setFrameShadow( QLabel::Plain );
- GroupC1Layout->addWidget( TextLabelC1A1, 0, 0 );
-
- SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
- SelectButtonC1A1->setText( tr( "" ) );
- SelectButtonC1A1->setPixmap( image1 );
- SelectButtonC1A1->setToggleButton( FALSE );
- SelectButtonC1A1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, SelectButtonC1A1->sizePolicy().hasHeightForWidth() ) );
- GroupC1Layout->addWidget( SelectButtonC1A1, 0, 1 );
-
- LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
- GroupC1Layout->addWidget( LineEditC1A1, 0, 2 );
-
- Layout1 = new QHBoxLayout;
- Layout1->setSpacing( 6 );
- Layout1->setMargin( 0 );
-
- TextLabel_DX = new QLabel( GroupC1, "TextLabel_DX" );
- TextLabel_DX->setText( tr( "GEOM_DX" ) );
- Layout1->addWidget( TextLabel_DX );
-
- SpinBox_DX = new DlgRef_SpinBox( GroupC1, "SpinBox_DX" );
- SpinBox_DX->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, SpinBox_DX->sizePolicy().hasHeightForWidth() ) );
- Layout1->addWidget( SpinBox_DX );
-
- TextLabel_DY = new QLabel( GroupC1, "TextLabel_DY" );
- TextLabel_DY->setText( tr( "GEOM_DY" ) );
- Layout1->addWidget( TextLabel_DY );
-
- SpinBox_DY = new DlgRef_SpinBox( GroupC1, "SpinBox_DY" );
- SpinBox_DY->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, SpinBox_DY->sizePolicy().hasHeightForWidth() ) );
- Layout1->addWidget( SpinBox_DY );
-
- TextLabel_DZ = new QLabel( GroupC1, "TextLabel_DZ" );
- TextLabel_DZ->setText( tr( "GEOM_DZ" ) );
- Layout1->addWidget( TextLabel_DZ );
-
- SpinBox_DZ = new DlgRef_SpinBox( GroupC1, "SpinBox_DZ" );
- SpinBox_DZ->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, SpinBox_DZ->sizePolicy().hasHeightForWidth() ) );
- Layout1->addWidget( SpinBox_DZ );
-
- GroupC1Layout->addMultiCellLayout( Layout1, 1, 1, 0, 2 );
-
- TransformationGUI_TranslationDlgLayout->addWidget( GroupC1, 1, 0 );
-
-
- /***************************************************************/
- GroupButtons = new QGroupBox( this, "GroupButtons" );
- GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
- GroupButtons->setTitle( tr( "" ) );
- GroupButtons->setColumnLayout(0, Qt::Vertical );
- GroupButtons->layout()->setSpacing( 0 );
- GroupButtons->layout()->setMargin( 0 );
- GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
- GroupButtonsLayout->setAlignment( Qt::AlignTop );
- GroupButtonsLayout->setSpacing( 6 );
- GroupButtonsLayout->setMargin( 11 );
- buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
- buttonCancel->setText( tr( "GEOM_BUT_CLOSE" ) );
- buttonCancel->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
- buttonApply = new QPushButton( GroupButtons, "buttonApply" );
- buttonApply->setText( tr( "GEOM_BUT_APPLY" ) );
- buttonApply->setAutoDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
- QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
- GroupButtonsLayout->addItem( spacer_9, 0, 2 );
- buttonOk = new QPushButton( GroupButtons, "buttonOk" );
- buttonOk->setText( tr( "GEOM_BUT_OK" ) );
- buttonOk->setAutoDefault( TRUE );
- buttonOk->setDefault( TRUE );
- GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
- TransformationGUI_TranslationDlgLayout->addWidget( GroupButtons, 2, 0 );
- /***************************************************************/
- myTransformationGUI = theTransformationGUI;
- Init(Sel) ; /* Initialisations */
+ QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_TRANSLATION")));
+ QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
+
+ setCaption(tr("GEOM_TRANSLATION_TITLE"));
+
+ /***************************************************************/
+ GroupConstructors->setTitle(tr("GEOM_TRANSLATION"));
+ RadioButton1->setPixmap(image0);
+ RadioButton2->close(TRUE);
+ RadioButton3->close(TRUE);
+
+ GroupPoints = new DlgRef_1Sel3Spin(this, "GroupPoints");
+ GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
+ GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT"));
+ GroupPoints->TextLabel2->setText(tr("GEOM_DX"));
+ GroupPoints->TextLabel3->setText(tr("GEOM_DY"));
+ GroupPoints->TextLabel4->setText(tr("GEOM_DZ"));
+ GroupPoints->PushButton1->setPixmap(image1);
+
+ Layout1->addWidget(GroupPoints, 1, 0);
+ /***************************************************************/
+
+ /* Initialisations */
+ myTransformationGUI = theTransformationGUI;
+ Init();
}
-
//=================================================================================
// function : ~TransformationGUI_TranslationDlg()
// purpose : Destroys the object and frees any allocated resources
//=================================================================================
TransformationGUI_TranslationDlg::~TransformationGUI_TranslationDlg()
{
- // no need to delete child widgets, Qt does it all for us
+ // no need to delete child widgets, Qt does it all for us
}
// function : Init()
// purpose :
//=================================================================================
-void TransformationGUI_TranslationDlg::Init( SALOME_Selection* Sel )
+void TransformationGUI_TranslationDlg::Init()
{
- double step ;
- QString St = QAD_CONFIG->getSetting( "Geometry:SettingsGeomStep" ) ;
- step = St.toDouble() ;
-
- /* min, max, step and decimals for spin boxes */
- SpinBox_DX->RangeStepAndValidator( -999.999, 999.999, step, 3 ) ;
- SpinBox_DX->SetValue( 100.0 ) ;
- SpinBox_DY->RangeStepAndValidator( -999.999, 999.999, step, 3 ) ;
- SpinBox_DY->SetValue( 100.0 ) ;
- SpinBox_DZ->RangeStepAndValidator( -999.999, 999.999, step, 3 ) ;
- SpinBox_DZ->SetValue( 100.0 ) ;
-
- GroupC1->show();
- myConstructorId = 0 ;
- Constructor1->setChecked( TRUE );
- myEditCurrentArgument = LineEditC1A1 ;
- mySelection = Sel;
- myGeomGUI = GEOMBase_Context::GetGeomGUI() ;
- myOkBase = false ;
-
- this->myVec.SetCoord( 100.0, 100.0, 100.0 ) ;
- mySimulationTopoDs.Nullify() ;
- myBase.Nullify() ;
- myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
- // TODO : previous selection into argument ?
-
- /* Filter definitions */
- Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
- myGeom = GEOM::GEOM_Gen::_narrow(comp);
- // myEdgeFilter = new GEOM_ShapeTypeFilter( TopAbs_EDGE, myGeom );
+ /* init variables */
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+
+ myVec.SetCoord(100.0, 100.0, 100.0);
+ myOkBase = false;
+
+ /* Get setting of step value from file configuration */
+ QString St = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
+ step = St.toDouble();
+
+ /* min, max, step and decimals for spin boxes & initial values */
+ GroupPoints->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
+ GroupPoints->SpinBox_DY->RangeStepAndValidator(-999.999, 999.999, step, 3);
+ GroupPoints->SpinBox_DZ->RangeStepAndValidator(-999.999, 999.999, step, 3);
+
+ GroupPoints->SpinBox_DX->SetValue(100.0);
+ GroupPoints->SpinBox_DY->SetValue(100.0);
+ GroupPoints->SpinBox_DZ->SetValue(100.0);
/* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
- connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
- connect( SelectButtonC1A1, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) ) ;
-
- connect( SpinBox_DX, SIGNAL ( valueChanged( double) ), this, SLOT( ValueChangedInSpinBox( double) ) ) ;
- connect( SpinBox_DY, SIGNAL ( valueChanged( double) ), this, SLOT( ValueChangedInSpinBox( double) ) ) ;
- connect( SpinBox_DZ, SIGNAL ( valueChanged( double) ), this, SLOT( ValueChangedInSpinBox( double) ) ) ;
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
- connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
+ connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+ connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
- connect( myGeomGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
- connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- /* to close dialog if study change */
- connect( myGeomGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
- /* Move widget on the botton right corner of main widget */
- int x, y ;
- myGeomGUI->DefineDlgPosition( this, x, y ) ;
- this->move( x, y ) ;
- this->show() ; /* displays Dialog */
+ connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
+ connect(GroupPoints->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
- return ;
-}
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double)));
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double)));
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DZ, SLOT(SetStep(double)));
+
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+ /* displays Dialog */
+ GroupPoints->show();
+ this->show();
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose : Radio button management
-//=================================================================================
-void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId)
-{
- // myGeomGUI->EraseSimulationShape() ;
- switch (constructorId)
- {
- case 0:
- {
- break;
- }
- case 1:
- {
- break;
- }
- }
- return ;
+ return;
}
+
//=================================================================================
// function : ClickOnOk()
// purpose :
//=================================================================================
void TransformationGUI_TranslationDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
-
- return ;
+ this->ClickOnApply();
+ ClickOnCancel();
+ return;
}
+
//=================================================================================
// function : ClickOnApply()
// purpose :
//=================================================================================
void TransformationGUI_TranslationDlg::ClickOnApply()
{
- myGeomGUI->EraseSimulationShape() ;
- myGeomGUI->GetDesktop()->putInfo( tr("") ) ;
- mySimulationTopoDs.Nullify() ;
- switch(myConstructorId)
- {
- case 0 :
- {
- if(myOkBase) {
- myTransformationGUI->MakeTranslationAndDisplay( myGeomShape, myVec ) ;
- }
- break ;
- }
- case 1 :
- {
- break ;
- }
- }
-
- // accept();
- return ;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void TransformationGUI_TranslationDlg::ClickOnCancel()
-{
- mySelection->ClearFilters() ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->ResetState() ;
- reject() ;
- return ;
+ myGeomGUI->GetDesktop()->putInfo(tr(""));
+ if (mySimulationTopoDs.IsNull())
+ return;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ if(myOkBase)
+ myTransformationGUI->MakeTranslationAndDisplay(myGeomShape, myVec);
+ return;
}
//=================================================================================
void TransformationGUI_TranslationDlg::SelectionIntoArgument()
{
- myEditCurrentArgument->setText("") ;
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
- /* Future name of selection */
- QString aString = "";
-
- int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString) ;
- if ( nbSel != 1 ) {
- if ( myEditCurrentArgument == LineEditC1A1 ) {
- LineEditC1A1->setText("") ;
- myOkBase = false ;
- }
- return ;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+ myEditCurrentArgument->setText("");
+ QString aString = ""; /* name of selection */
+
+ int nbSel = myGeomGUI->GetNameOfSelectedIObjects(mySelection, aString);
+ if (nbSel != 1) {
+ if(myEditCurrentArgument == GroupPoints->LineEdit1)
+ myOkBase = false;
+ return;
}
- /* nbSel == 1 ! */
- TopoDS_Shape S;
- Standard_Boolean testResult ;
- Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
-
- if( !myGeomGUI->GetTopoFromSelection(mySelection, S) )
- return ;
-
- if ( myConstructorId == 0 && myEditCurrentArgument == LineEditC1A1 ) {
- myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult) ;
- if( !testResult )
+ /* nbSel == 1 */
+ TopoDS_Shape S;
+ Standard_Boolean testResult;
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ if(!myGeomGUI->GetTopoFromSelection(mySelection, S))
+ return;
+
+ /* gp_Pnt : not used */
+ if(myEditCurrentArgument == GroupPoints->LineEdit1) {
+ myGeomShape = myGeomGUI->ConvertIOinGEOMShape(IO, testResult);
+ if(!testResult)
return ;
- LineEditC1A1->setText(aString) ;
- myBase = S ;
- myOkBase = true ;
+ GroupPoints->LineEdit1->setText(aString);
+ myBase = S;
+ myOkBase = true;
}
-
- if( myOkBase ) {
- MakeTranslationSimulationAndDisplay() ;
- }
- return ;
+
+ if(myOkBase)
+ this->MakeTranslationSimulationAndDisplay();
+ return;
}
// function : SetEditCurrentArgument()
// purpose :
//=================================================================================
-void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
-{
- QPushButton* send = (QPushButton*)sender();
- switch (myConstructorId)
- {
- case 0: /* default constructor */
- {
- if(send == SelectButtonC1A1) {
- LineEditC1A1->setFocus() ;
- myEditCurrentArgument = LineEditC1A1 ;
- SelectionIntoArgument() ;
- }
- break;
- }
- case 1:
- {
- break;
- }
- }
- return ;
-}
-
-//=================================================================================
-// function : LineEditReturnPressed()
-// purpose :
-//=================================================================================
void TransformationGUI_TranslationDlg::LineEditReturnPressed()
-{
- QLineEdit* send = (QLineEdit*)sender();
- if( send == LineEditC1A1 )
- myEditCurrentArgument = LineEditC1A1 ;
+{
+ QLineEdit* send = (QLineEdit*)sender();
+ if(send == GroupPoints->LineEdit1)
+ myEditCurrentArgument = GroupPoints->LineEdit1;
else
- return ;
-
- /* User name of object input management */
- /* If successfull the selection is changed and signal emitted... */
- /* so SelectionIntoArgument() is automatically called. */
- const QString objectUserName = myEditCurrentArgument->text() ;
- QWidget* thisWidget = (QWidget*)this ;
- if( myGeomGUI->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
- myEditCurrentArgument->setText( objectUserName ) ;
- }
- return ;
-}
+ return;
+ GEOMBase_Skeleton::LineEditReturnPressed();
+ return;
+}
//=================================================================================
-// function : ValueChangedInSpinBox()
+// function : LineEditReturnPressed()
// purpose :
//=================================================================================
-void TransformationGUI_TranslationDlg::ValueChangedInSpinBox( double newValue )
-{
-
- QObject* send = (QObject*)sender() ;
- Standard_Real Dx, Dy, Dz ;
-
- if( send == SpinBox_DX ) {
- Dx = newValue ;
- Dy = SpinBox_DY->GetValue() ;
- Dz = SpinBox_DZ->GetValue() ;
- } else if( send == SpinBox_DY ) {
- Dx = SpinBox_DX->GetValue() ;
- Dy = newValue ;
- Dz = SpinBox_DZ->GetValue() ;
- } else if( send == SpinBox_DZ ) {
- Dx = SpinBox_DX->GetValue() ;
- Dy = SpinBox_DY->GetValue() ;
- Dz = newValue ;
- }
+void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
+{
+ QPushButton* send = (QPushButton*)sender();
- this->myVec.SetCoord(Dx, Dy, Dz) ;
- if ( myOkBase ) {
- MakeTranslationSimulationAndDisplay() ;
+ if(send == GroupPoints->PushButton1) {
+ GroupPoints->LineEdit1->setFocus();
+ myEditCurrentArgument = GroupPoints->LineEdit1;
+ this->SelectionIntoArgument();
}
- else {
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
- }
- return ;
-}
-
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose :
-//=================================================================================
-void TransformationGUI_TranslationDlg::DeactivateActiveDialog()
-{
- if ( GroupConstructors->isEnabled() ) {
- GroupConstructors->setEnabled(false) ;
- GroupC1->setEnabled(false) ;
- GroupButtons->setEnabled(false) ;
- disconnect( mySelection, 0, this, 0 );
- myGeomGUI->EraseSimulationShape() ;
- mySelection->ClearFilters() ;
- }
- return ;
+ return;
}
//=================================================================================
void TransformationGUI_TranslationDlg::ActivateThisDialog()
{
- /* Emit a signal to deactivate the active dialog */
- myGeomGUI->EmitSignalDeactivateDialog() ;
- GroupConstructors->setEnabled(true) ;
- GroupC1->setEnabled(true) ;
- GroupButtons->setEnabled(true) ;
-
- connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
- if( !mySimulationTopoDs.IsNull() )
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
-
- return ;
+ GEOMBase_Skeleton::ActivateThisDialog();
+ connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ if(!mySimulationTopoDs.IsNull())
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ return;
}
//=================================================================================
void TransformationGUI_TranslationDlg::enterEvent(QEvent* e)
{
- if ( GroupConstructors->isEnabled() )
- return ;
- ActivateThisDialog() ;
+ if(GroupConstructors->isEnabled())
+ return;
+ this->ActivateThisDialog();
+ return;
}
-
//=================================================================================
-// function : closeEvent()
+// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
-void TransformationGUI_TranslationDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_TranslationDlg::ValueChangedInSpinBox(double newValue)
{
- /* same than click on cancel button */
- this->ClickOnCancel() ;
- return ;
+ QObject* send = (QObject*)sender();
+ Standard_Real Dx, Dy, Dz;
+
+ if(send == GroupPoints->SpinBox_DX) {
+ Dx = newValue;
+ Dy = GroupPoints->SpinBox_DY->GetValue();
+ Dz = GroupPoints->SpinBox_DZ->GetValue();
+ }
+ else if(send == GroupPoints->SpinBox_DY) {
+ Dx = GroupPoints->SpinBox_DX->GetValue();
+ Dy = newValue;
+ Dz = GroupPoints->SpinBox_DZ->GetValue();
+ }
+ else if(send == GroupPoints->SpinBox_DZ) {
+ Dx = GroupPoints->SpinBox_DX->GetValue();
+ Dy = GroupPoints->SpinBox_DY->GetValue();
+ Dz = newValue;
+ }
+
+ myVec.SetCoord(Dx, Dy, Dz);
+ if(myOkBase)
+ MakeTranslationSimulationAndDisplay();
+ return;
}
//=================================================================================
void TransformationGUI_TranslationDlg::MakeTranslationSimulationAndDisplay()
{
- myGeomGUI->EraseSimulationShape() ;
- mySimulationTopoDs.Nullify() ;
-
- gp_Trsf theTransformation ;
- theTransformation.SetTranslation(this->myVec) ;
-
- BRepBuilderAPI_Transform myBRepTransformation(this->myBase, theTransformation, Standard_False) ;
- mySimulationTopoDs = myBRepTransformation.Shape() ;
- myGeomGUI->DisplaySimulationShape( mySimulationTopoDs ) ;
- return ;
+ myGeomGUI->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ try {
+ gp_Trsf theTransformation;
+ theTransformation.SetTranslation(myVec);
+ BRepBuilderAPI_Transform myBRepTransformation(myBase, theTransformation, Standard_False);
+ mySimulationTopoDs = myBRepTransformation.Shape();
+ if(mySimulationTopoDs.IsNull())
+ return;
+ else
+ myGeomGUI->DisplaySimulationShape(mySimulationTopoDs);
+ }
+ catch(Standard_Failure) {
+ MESSAGE("Exception catched in MakeTranslationSimulationAndDisplay");
+ return;
+ }
+ return;
}
#ifndef DIALOGBOX_TRANSLATION_H
#define DIALOGBOX_TRANSLATION_H
-#include "TransformationGUI.h"
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_1Sel3Spin.h"
-#include "DlgRef_SpinBox.h"
+#include "TransformationGUI.h"
#include <gp_Vec.hxx>
-#include <TopoDS_Shape.hxx>
-#include <BRepBuilderAPI_Transform.hxx>
-
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
//=================================================================================
// class : TransformationGUI_TranslationDlg
// purpose :
//=================================================================================
-class TransformationGUI_TranslationDlg : public QDialog
+class TransformationGUI_TranslationDlg : public GEOMBase_Skeleton
{
Q_OBJECT
public:
- TransformationGUI_TranslationDlg( QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
+ TransformationGUI_TranslationDlg(QWidget* parent = 0, const char* name = 0, TransformationGUI* theTransformationGUI = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0);
~TransformationGUI_TranslationDlg();
private :
- TransformationGUI* myTransformationGUI;
- GEOM::GEOM_Gen_var myGeom ; /* Current Geom object */
- GEOMBase_Context* myGeomGUI ; /* Current GeomGUI object */
- TopoDS_Shape mySimulationTopoDs; /* Shape used for simulation display */
- SALOME_Selection* mySelection ; /* User shape selection */
- TopoDS_Shape myBase ;
- GEOM::GEOM_Shape_var myGeomShape ; /* is myBase */
- bool myOkBase ;
- gp_Vec myVec ;
- QLineEdit* myEditCurrentArgument; /* Current LineEdit */
- int myConstructorId ; /* Current constructor id = radio button id */
- Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* Filter selection */
-
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent( QEvent* e);
- void Init( SALOME_Selection* Sel ) ;
- void MakeTranslationSimulationAndDisplay() ;
-
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
- QGroupBox* GroupC1;
- QLabel* TextLabel_DX;
- QLabel* TextLabel_DY;
- QLabel* TextLabel_DZ;
+ void Init();
+ void enterEvent(QEvent* e);
+ void MakeTranslationSimulationAndDisplay();
- DlgRef_SpinBox* SpinBox_DX ;
- DlgRef_SpinBox* SpinBox_DY ;
- DlgRef_SpinBox* SpinBox_DZ ;
+ TransformationGUI* myTransformationGUI;
+ double step;
- QLabel* TextLabelC1A1;
- QPushButton* SelectButtonC1A1;
- QLineEdit* LineEditC1A1;
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
+ TopoDS_Shape myBase; /* is myBase */
+ GEOM::GEOM_Shape_var myGeomShape;
+ bool myOkBase;
+ gp_Vec myVec;
-private slots:
+ DlgRef_1Sel3Spin* GroupPoints;
- void ConstructorsClicked(int constructorId);
+private slots :
void ClickOnOk();
- void ClickOnCancel();
void ClickOnApply();
- void SetEditCurrentArgument() ;
- void SelectionIntoArgument() ;
- void LineEditReturnPressed() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
- void ValueChangedInSpinBox( double newValue ) ;
-
-protected:
- QGridLayout* TransformationGUI_TranslationDlgLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupC1Layout;
- QGridLayout* GroupButtonsLayout;
+ void ActivateThisDialog();
+ void LineEditReturnPressed();
+ void SelectionIntoArgument();
+ void SetEditCurrentArgument();
+ void ValueChangedInSpinBox(double newValue);
- QHBoxLayout* Layout1 ;
};
#endif // DIALOGBOX_TRANSLATION_H