From: dcq Date: Tue, 16 Mar 2004 15:19:16 +0000 (+0000) Subject: DCQ : Debug Kinematic X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=70b5836bffbd30ba06b76f2846b4f61d099adcaa;p=modules%2Fgeom.git DCQ : Debug Kinematic --- diff --git a/Makefile.in b/Makefile.in index 734adeef8..b86bc7216 100644 --- a/Makefile.in +++ b/Makefile.in @@ -22,6 +22,12 @@ GEOM_fr.xml \ GEOMCatalog.xml \ GEOMDS_Resources \ animation.png \ +anim_first.png \ +anim_last.png \ +anim_next.png \ +anim_play.png \ +anim_prev.png \ +anim_stop.png \ arc.png \ archimede.png \ assembly.png \ diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 54fab87b0..8efec8294 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -341,8 +341,7 @@ module GEOM GEOM_Animation AddAnimation(in GEOM_Assembly Ass, in GEOM_Shape Shape1, in double Duration, - in short NbSeq, - in boolean IsInLoop) raises (SALOME::SALOME_Exception) ; + in short NbSeq) raises (SALOME::SALOME_Exception) ; void SetPosition(in GEOM_Contact Contact) raises (SALOME::SALOME_Exception) ; diff --git a/idl/GEOM_Kinematic.idl b/idl/GEOM_Kinematic.idl index 671597ac1..00c62574a 100644 --- a/idl/GEOM_Kinematic.idl +++ b/idl/GEOM_Kinematic.idl @@ -180,9 +180,6 @@ module GEOM long GetNbSeq() raises (SALOME::SALOME_Exception); - boolean GetIsInLoop() - raises (SALOME::SALOME_Exception); - attribute string Name; attribute string ShapeId; attribute string StudyShapeId; diff --git a/resources/anim_first.png b/resources/anim_first.png new file mode 100644 index 000000000..7f823eeb5 Binary files /dev/null and b/resources/anim_first.png differ diff --git a/resources/anim_last.png b/resources/anim_last.png new file mode 100644 index 000000000..005637ee2 Binary files /dev/null and b/resources/anim_last.png differ diff --git a/resources/anim_next.png b/resources/anim_next.png new file mode 100644 index 000000000..2b7c58bf7 Binary files /dev/null and b/resources/anim_next.png differ diff --git a/resources/anim_play.png b/resources/anim_play.png new file mode 100644 index 000000000..9e5cf2b8f Binary files /dev/null and b/resources/anim_play.png differ diff --git a/resources/anim_prev.png b/resources/anim_prev.png new file mode 100644 index 000000000..684dc9c18 Binary files /dev/null and b/resources/anim_prev.png differ diff --git a/resources/anim_stop.png b/resources/anim_stop.png new file mode 100644 index 000000000..482e27113 Binary files /dev/null and b/resources/anim_stop.png differ diff --git a/resources/animation.png b/resources/animation.png index 545ac6c70..1c8fb05d7 100644 Binary files a/resources/animation.png and b/resources/animation.png differ diff --git a/src/GEOM/GEOM_Animation_i.cc b/src/GEOM/GEOM_Animation_i.cc index 2710a7fb4..7c441e024 100644 --- a/src/GEOM/GEOM_Animation_i.cc +++ b/src/GEOM/GEOM_Animation_i.cc @@ -100,7 +100,7 @@ CORBA::Double GEOM_Animation_i::GetDuration() throw(SALOME::SALOME_Exception) //================================================================================= -// function : GetDuration() +// function : GetNbSeq() // purpose : //================================================================================= CORBA::Long GEOM_Animation_i::GetNbSeq() throw(SALOME::SALOME_Exception) @@ -109,16 +109,6 @@ CORBA::Long GEOM_Animation_i::GetNbSeq() throw(SALOME::SALOME_Exception) } -//================================================================================= -// function : GetDuration() -// purpose : -//================================================================================= -CORBA::Boolean GEOM_Animation_i::GetIsInLoop() throw(SALOME::SALOME_Exception) -{ - return _Animation->IsInLoop(); -} - - //================================================================================= // function : Name (set method) // purpose : to set the attribute 'name'. diff --git a/src/GEOM/GEOM_Animation_i.hh b/src/GEOM/GEOM_Animation_i.hh index 24f6a1113..481d51406 100644 --- a/src/GEOM/GEOM_Animation_i.hh +++ b/src/GEOM/GEOM_Animation_i.hh @@ -78,9 +78,6 @@ public: CORBA::Long GetNbSeq() throw (SALOME::SALOME_Exception); - CORBA::Boolean GetIsInLoop() - throw (SALOME::SALOME_Exception); - char* Name(); void Name(const char* name); diff --git a/src/GEOM/GEOM_Gen_i.cc b/src/GEOM/GEOM_Gen_i.cc index a29a34d95..33c7c90d9 100644 --- a/src/GEOM/GEOM_Gen_i.cc +++ b/src/GEOM/GEOM_Gen_i.cc @@ -5353,6 +5353,7 @@ GEOM::GEOM_Contact_ptr GEOM_Gen_i::AddContact(GEOM::GEOM_Assembly_ptr Ass, TDF_Tool::Entry(LabContact, entry); Contact->ShapeId(entry.ToCString()); + Ass->AddContact(Contact); return Contact; } @@ -5364,8 +5365,7 @@ GEOM::GEOM_Contact_ptr GEOM_Gen_i::AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Animation_ptr GEOM_Gen_i::AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1, CORBA::Double Duration, - const short NbSeq, - CORBA::Boolean IsInLoop) + const short NbSeq) throw (SALOME::SALOME_Exception) { Kinematic_Animation* tds; @@ -5377,7 +5377,7 @@ GEOM::GEOM_Animation_ptr GEOM_Gen_i::AddAnimation(GEOM::GEOM_Assembly_ptr Ass, Kinematic_Assembly* aAss = new Kinematic_Assembly(); Standard_Boolean test = GC.GetAssembly(mainRefLab, *aAss); TopoDS_Shape aShape1 = GetTopoShape(Shape1); - tds = new Kinematic_Animation(aAss, aShape1, Duration, NbSeq, IsInLoop); + tds = new Kinematic_Animation(aAss, aShape1, Duration, NbSeq); } catch(Standard_Failure) THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::AddAnimation", SALOME::BAD_PARAM); diff --git a/src/GEOM/GEOM_Gen_i.hh b/src/GEOM/GEOM_Gen_i.hh index f97fa004c..d2e7ca226 100644 --- a/src/GEOM/GEOM_Gen_i.hh +++ b/src/GEOM/GEOM_Gen_i.hh @@ -626,8 +626,7 @@ class GEOM_Gen_i: public POA_GEOM::GEOM_Gen, GEOM::GEOM_Animation_ptr AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1, CORBA::Double Duration, - const short NbSeq, - CORBA::Boolean IsInLoop) + const short NbSeq) throw (SALOME::SALOME_Exception) ; void SetPosition(GEOM::GEOM_Contact_ptr Contact) throw (SALOME::SALOME_Exception) ; diff --git a/src/GEOMContext/GEOM_icons.po b/src/GEOMContext/GEOM_icons.po index 8a4f80f42..08e173903 100644 --- a/src/GEOMContext/GEOM_icons.po +++ b/src/GEOMContext/GEOM_icons.po @@ -18,18 +18,6 @@ msgstr "select1.png" msgid "ICON_OBJBROWSER_Geometry" msgstr "geometry.png" -#: -msgid "ICON_ANIMATION" -msgstr "animation.png" - -#: -msgid "ICON_ASSEMBLY" -msgstr "assembly.png" - -#: -msgid "ICON_CONTACT" -msgstr "contact.png" - #: msgid "ICON_OBJBROWSER_ANIMATION" msgstr "tree_animation.png" @@ -397,3 +385,39 @@ msgstr "positionvect.png" #PositionDlg msgid "ICON_DLG_POS_FACE" msgstr "positionface.png" + +#: +msgid "ICON_ANIMATION" +msgstr "animation.png" + +#: +msgid "ICON_ASSEMBLY" +msgstr "assembly.png" + +#: +msgid "ICON_CONTACT" +msgstr "contact.png" + +#: +msgid "ICON_ANIM_FIRST" +msgstr "anim_first.png" + +#: +msgid "ICON_ANIM_PREV" +msgstr "anim_prev.png" + +#: +msgid "ICON_ANIM_PLAY" +msgstr "anim_play.png" + +#: +msgid "ICON_ANIM_STOP" +msgstr "anim_stop.png" + +#: +msgid "ICON_ANIM_NEXT" +msgstr "anim_next.png" + +#: +msgid "ICON_ANIM_LAST" +msgstr "anim_last.png" diff --git a/src/GEOMContext/GEOM_msg_en.po b/src/GEOMContext/GEOM_msg_en.po index 035c8e8bd..fb7511d24 100644 --- a/src/GEOMContext/GEOM_msg_en.po +++ b/src/GEOMContext/GEOM_msg_en.po @@ -1369,7 +1369,19 @@ msgstr "Duration" msgid "GEOM_NBSEQ" msgstr "Nb. Sequences" -msgid "GEOM_IS_IN_LOOP" +msgid "GEOM_ANIM_EXPORT" +msgstr "Export Animation" + +msgid "GEOM_ANIM_SHADING" +msgstr "In Shading" + +msgid "GEOM_ANIM_TITLE" +msgstr "Animate an Assembly" + +msgid "GEOM_ANIM" +msgstr "Animation" + +msgid "GEOM_ANIM_INLOOP" msgstr "In Loop" msgid "GEOM_POSITION" diff --git a/src/GEOMDS/GEOMDS_Commands.cxx b/src/GEOMDS/GEOMDS_Commands.cxx index 8d618428a..aad004200 100644 --- a/src/GEOMDS/GEOMDS_Commands.cxx +++ b/src/GEOMDS/GEOMDS_Commands.cxx @@ -428,9 +428,6 @@ TDF_Label GEOMDS_Commands::AddAnimation(Kinematic_Animation& KAnimation, TDF_Label LabNbSeq = LabAnimation.NewChild(); TDataStd_Integer::Set(LabNbSeq, KAnimation.NbSeq()); - TDF_Label LabIsInLoop = LabAnimation.NewChild(); - TDataStd_Integer::Set(LabIsInLoop, KAnimation.IsInLoop()); - return LabAnimation; } @@ -555,7 +552,6 @@ Standard_Boolean GEOMDS_Commands::GetAnimation(const TDF_Label& aLabel, Handle(TDataStd_Real) anAttReal; Handle(TDataStd_Integer) anAttInteger; Handle(TDataStd_Integer) anAttInteger1; - Handle(TDataStd_Integer) anAttInteger2; if(i == 1 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger)) { if(anAttInteger->Get() != 3) { @@ -564,8 +560,8 @@ Standard_Boolean GEOMDS_Commands::GetAnimation(const TDF_Label& aLabel, } } if(i == 2) { - Kinematic_Assembly aAss; - Standard_Boolean test = GetAssembly(L, aAss); + Kinematic_Assembly* aAss = new Kinematic_Assembly(); + Standard_Boolean test = GetAssembly(L, *aAss); Anim->Assembly(aAss); } if(i == 3 && L.FindAttribute(TNaming_NamedShape::GetID(), anAttTopo)) { @@ -577,11 +573,9 @@ Standard_Boolean GEOMDS_Commands::GetAnimation(const TDF_Label& aLabel, if(i == 5 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger1)) { Anim->NbSeq(anAttInteger1->Get()); } - if(i == 6 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger2)) { - Anim->IsInLoop(anAttInteger2->Get()); - } i++; } + Anim->SetMap(); returnAnim = *Anim; return true; } diff --git a/src/GEOMGUI/GeometryGUI_Swig.cxx b/src/GEOMGUI/GeometryGUI_Swig.cxx index 55727f909..81e1f1b45 100644 --- a/src/GEOMGUI/GeometryGUI_Swig.cxx +++ b/src/GEOMGUI/GeometryGUI_Swig.cxx @@ -40,6 +40,8 @@ using namespace std; #include "OCCViewer_Viewer3d.h" #include #include +#include +#include #include #include #include @@ -47,6 +49,7 @@ using namespace std; #include #include #include +#include #include "VTKViewer_RenderWindowInteractor.h" #include "VTKViewer_ViewFrame.h" @@ -164,17 +167,36 @@ int GEOM_Swig::getIndexTopology(const char* SubIOR, const char* IOR) GEOM::GEOM_Shape_var aSubShape = Geom->GetIORFromString(SubIOR); TopoDS_Shape subshape = ShapeReader.GetShape(Geom, aSubShape); - TopExp_Explorer Exp ( shape, subshape.ShapeType() ); int index = 1; - TopTools_MapOfShape M; - while ( Exp.More() ) { - if ( M.Add(Exp.Current()) ) { - if ( Exp.Current().IsSame(subshape) ) - return index; - index++; - } - Exp.Next(); - } + if(subshape.ShapeType() == TopAbs_COMPOUND) { + TopoDS_Iterator it; + TopTools_ListOfShape CL; + CL.Append(shape); + TopTools_ListIteratorOfListOfShape itC; + for(itC.Initialize(CL); itC.More(); itC.Next()) { + for(it.Initialize(itC.Value()); it.More(); it.Next()) { + if (it.Value().ShapeType() == TopAbs_COMPOUND) { + if (it.Value().IsSame(subshape)) + return index; + else + index++; + CL.Append(it.Value()); + } + } + } + } + else { + TopExp_Explorer Exp(shape, subshape.ShapeType()); + TopTools_MapOfShape M; + while(Exp.More()) { + if(M.Add(Exp.Current())) { + if(Exp.Current().IsSame(subshape)) + return index; + index++; + } + Exp.Next(); + } + } return -1; } diff --git a/src/GEOM_SWIG/geompy.py b/src/GEOM_SWIG/geompy.py index 4cfc0184f..94626d174 100644 --- a/src/GEOM_SWIG/geompy.py +++ b/src/GEOM_SWIG/geompy.py @@ -474,3 +474,167 @@ def Archimede(aShape,weight,WaterDensity,MeshingDeflection): def CheckShape(aShape): Status = geom.CheckShape(aShape) return Status + +# ----------------------------------------------------------------------------- +# Kinematic objects +# ----------------------------------------------------------------------------- + +def InitAssembly(): + anObj = geom.InitAssembly() + ior = salome.orb.object_to_string(anObj) + anObj._set_Name(ior) + return anObj + +def AddContact(Ass,Shape1,Shape2,Type,Step): + anObj = geom.AddContact(Ass,Shape1,Shape2,Type,Step) + ior = salome.orb.object_to_string(anObj) + anObj._set_Name(ior) + return anObj + +def AddAnimation(Ass,Frame,Duration,NbSeq): + anObj = geom.AddAnimation(Ass,Frame,Duration,NbSeq) + ior = salome.orb.object_to_string(anObj) + anObj._set_Name(ior) + return anObj + +def SetPosition(aContact): + geom.SetPosition(aContact) + +def SetRotation(aContact): + geom.SetRotation(aContact) + +def SetTranslation(aContact): + geom.SetTranslation(aContact) + +def addAssemblyToStudy(anAss, aName): + myBuilder.NewCommand() + newObj = myBuilder.NewObject(father) + ior = salome.orb.object_to_string(anAss) + A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR"); + ObjIOR = A1._narrow(SALOMEDS.AttributeIOR) + ObjIOR.SetValue(ior) + A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName"); + ObjName = A2._narrow(SALOMEDS.AttributeName) + ObjName.SetValue(aName) + A3 = myBuilder.FindOrCreateAttribute(newObj, "AttributeComment"); + ObjType = A3._narrow(SALOMEDS.AttributeComment) + ObjType.SetValue("Kinematic_Assembly") + A4 = myBuilder.FindOrCreateAttribute(newObj, "AttributePixMap"); + ObjPixmap = A4._narrow(SALOMEDS.AttributePixMap) + ObjPixmap.SetPixMap("ICON_OBJBROWSER_ASSEMBLY") + + id = newObj.GetID() + anAss._set_StudyShapeId(id) + myBuilder.CommitCommand() + return id + +def addContactToStudy(anAss, aContact, aName): + myBuilder.NewCommand() + newObj = myBuilder.NewObject(salome.IDToSObject(anAss._get_StudyShapeId())) + ior = salome.orb.object_to_string(aContact) + A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR"); + ObjIOR = A1._narrow(SALOMEDS.AttributeIOR) + ObjIOR.SetValue(ior) + A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName"); + ObjName = A2._narrow(SALOMEDS.AttributeName) + ObjName.SetValue(aName) + A3 = myBuilder.FindOrCreateAttribute(newObj, "AttributeComment"); + ObjType = A3._narrow(SALOMEDS.AttributeComment) + ObjType.SetValue("Kinematic_Contact") + A4 = myBuilder.FindOrCreateAttribute(newObj, "AttributePixMap"); + ObjPixmap = A4._narrow(SALOMEDS.AttributePixMap) + ObjPixmap.SetPixMap("ICON_OBJBROWSER_CONTACT") + + aTypeName = GetContactName(aContact.GetType()) + ObjRef = myBuilder.NewObject(newObj) + A5 = myBuilder.FindOrCreateAttribute(ObjRef, "AttributeName"); + ObjRefName = A5._narrow(SALOMEDS.AttributeName) + ObjRefName.SetValue(aTypeName) + A6 = myBuilder.FindOrCreateAttribute(ObjRef, "AttributeSelectable"); + ObjRefSel = A6._narrow(SALOMEDS.AttributeSelectable) + ObjRefSel.SetSelectable(0) + + aShape = aContact.GetShape1() + if aShape is not None: + if aShape._get_StudyShapeId()!="": + Obj = salome.IDToSObject(aShape._get_StudyShapeId()) + if Obj is not None: + Obj1 = myBuilder.NewObject(newObj) + myBuilder.Addreference(Obj1, Obj) + + aShape = aContact.GetShape2() + if aShape is not None: + if aShape._get_StudyShapeId()!="": + Obj = salome.IDToSObject(aShape._get_StudyShapeId()) + if Obj is not None: + Obj1 = myBuilder.NewObject(newObj) + myBuilder.Addreference(Obj1, Obj) + + id = newObj.GetID() + aContact._set_StudyShapeId(id) + myBuilder.CommitCommand() + return id + +def addAnimationToStudy(anAnim, aName): + myBuilder.NewCommand() + newObj = myBuilder.NewObject(father) + ior = salome.orb.object_to_string(anAnim) + A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR"); + ObjIOR = A1._narrow(SALOMEDS.AttributeIOR) + ObjIOR.SetValue(ior) + A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName"); + ObjName = A2._narrow(SALOMEDS.AttributeName) + ObjName.SetValue(aName) + A3 = myBuilder.FindOrCreateAttribute(newObj, "AttributeComment"); + ObjType = A3._narrow(SALOMEDS.AttributeComment) + ObjType.SetValue("Kinematic_Animation") + A4 = myBuilder.FindOrCreateAttribute(newObj, "AttributePixMap"); + ObjPixmap = A4._narrow(SALOMEDS.AttributePixMap) + ObjPixmap.SetPixMap("ICON_OBJBROWSER_ANIMATION") + + anAss = anAnim.GetAssembly() + if anAss is not None: + if anAss._get_StudyShapeId()!="": + Obj = salome.IDToSObject(anAss._get_StudyShapeId()) + if Obj is not None: + Obj1 = myBuilder.NewObject(newObj) + myBuilder.Addreference(Obj1, Obj) + + aFrame = anAnim.GetFrame() + if aFrame is not None: + if aFrame._get_StudyShapeId()!="": + Obj = salome.IDToSObject(aFrame._get_StudyShapeId()) + if Obj is not None: + Obj1 = myBuilder.NewObject(newObj) + myBuilder.Addreference(Obj1, Obj) + + id = newObj.GetID() + anAnim._set_StudyShapeId(id) + myBuilder.CommitCommand() + return id + +def GetContactName(aType): + if aType == 0: + aName = "Embedding" + elif aType == 1: + aName = "Pivot" + elif aType == 2: + aName = "Slide" + elif aType == 3: + aName = "Sliding Pivot" + elif aType == 4: + aName = "Spherical" + elif aType == 5: + aName = "Plane" + elif aType == 6: + aName = "Annular" + elif aType == 7: + aName = "Rectilinear" + elif aType == 8: + aName = "Ponctual" + elif aType == 9: + aName = "Helicoidal" + else: + aName = "Contact" + return aName + diff --git a/src/KINEMATIC/Kinematic_Animation.cxx b/src/KINEMATIC/Kinematic_Animation.cxx index 4b397f5f1..935443e91 100644 --- a/src/KINEMATIC/Kinematic_Animation.cxx +++ b/src/KINEMATIC/Kinematic_Animation.cxx @@ -37,7 +37,13 @@ using namespace std; // profile // command to build a profile //======================================================================= -Kinematic_Animation::Kinematic_Animation(){} +Kinematic_Animation::Kinematic_Animation() +{ + myIsShading = false; + IsCreated = false; + myNbAIS = 0; + return; +} //======================================================================= @@ -45,17 +51,16 @@ Kinematic_Animation::Kinematic_Animation(){} // command to build a profile //======================================================================= Kinematic_Animation::Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame, - double duration, int nbseq, bool isinloop) + double duration, int nbseq) { myAss = Ass; myFrame = frame; myDuration = duration; myNbSeq = nbseq; - myIsInLoop = isinloop; + myIsShading = false; IsCreated = false; - myNbAIS = 1; + myNbAIS = 0; this->SetMap(); - return; } @@ -105,67 +110,6 @@ void Kinematic_Animation::SetMap() } -//================================================================================= -// function : Animate() -// purpose : -//================================================================================= -void Kinematic_Animation::Animate(const Handle(AIS_InteractiveContext)& ic) -{ - bool IsOk = false; - for(int cpt = 1; cpt <= myIndexToShape.Extent(); cpt++) { - TopoDS_Shape myShape = myIndexToShape.FindKey(cpt); - if(myShape == myFrame) - IsOk = true; - } - if(!IsOk) - return; - - myMovedShape.Clear(); - myMovedShape.Add(myFrame); - - IsCreated = false; - gp_Trsf aLoc; - GetNextShape(ic, aLoc, myFrame, 1); - IsCreated = true; - - Handle(AIS_Shape) mySimulationShape; - mySimulationShape = new AIS_Shape(TopoDS_Shape()); - mySimulationShape->Set(myFrame); - mySimulationShape->SetColor(Quantity_NOC_RED); - ic->Deactivate(mySimulationShape); - ic->Display(mySimulationShape, Standard_False); - ic->UpdateCurrentViewer(); - - double Step, Val; - Step = 1.0 / myNbSeq; - for(int i = 0; i <= myNbSeq; i++) { - Val = i * Step; - - myMovedShape.Clear(); - myMovedShape.Add(myFrame); - - myNbAIS = 1; - GetNextShape(ic, aLoc, myFrame, Val); - - ic->UpdateCurrentViewer(); - usleep(myDuration / myNbSeq * 1e6); - } - - ic->Erase(mySimulationShape, Standard_True, Standard_False); - ic->ClearPrs(mySimulationShape); - - for(int i = 1; i <= myNbAIS; i++) { - Handle(AIS_Shape) myShape = Handle(AIS_Shape)::DownCast(ListOfAIS.Value(i)); - ic->Erase(myShape, Standard_True, Standard_False); - ic->ClearPrs(myShape); - } - - ic->UpdateCurrentViewer(); - - return; -} - - //================================================================================= // function : GetNextShape() // purpose : @@ -198,8 +142,6 @@ void Kinematic_Animation::GetNextShape(const Handle(AIS_InteractiveContext)& ic, Handle(AIS_Shape) mySimulationShape; mySimulationShape = new AIS_Shape(TopoDS_Shape()); mySimulationShape->Set(myShape2); - mySimulationShape->SetColor(Quantity_NOC_GREEN); - ic->Deactivate(mySimulationShape); ListOfAIS.Append(mySimulationShape); } else @@ -228,13 +170,20 @@ void Kinematic_Animation::MoveShape(const Handle(AIS_InteractiveContext)& ic, gp_Trsf aTrans = aContact->GetTransformation(Step); aLoc = aLoc * aTrans; + myNbAIS++; Handle(AIS_Shape) mySimulationShape = Handle(AIS_Shape)::DownCast(ListOfAIS.Value(myNbAIS)); Handle(Geom_Transformation) aGTrans = new Geom_Transformation(); aGTrans->SetTrsf(aLoc); mySimulationShape->SetTransformation(aGTrans, false, false); + if(myIsShading) { + mySimulationShape->SetColor(Quantity_NOC_GOLDENROD); + ic->SetDisplayMode(mySimulationShape, 1, Standard_False); + } + else { + mySimulationShape->SetColor(Quantity_NOC_GREEN); + ic->SetDisplayMode(mySimulationShape, 0, Standard_False); + } ic->Display(mySimulationShape, Standard_False); - - myNbAIS++; return; } diff --git a/src/KINEMATIC/Kinematic_Animation.hxx b/src/KINEMATIC/Kinematic_Animation.hxx index 07feb2772..258665a54 100644 --- a/src/KINEMATIC/Kinematic_Animation.hxx +++ b/src/KINEMATIC/Kinematic_Animation.hxx @@ -45,42 +45,40 @@ class Kinematic_Animation public: Kinematic_Animation(); Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame, - double duration, int nbseq, bool isinloop); + double duration, int nbseq); ~Kinematic_Animation(); private: - AIS_SequenceOfInteractive ListOfAIS; - TopTools_IndexedMapOfShape myIndexToShape; - TopTools_IndexedMapOfShape myMovedShape; map > myStlMapofShapeListOfContact; Kinematic_Assembly* myAss; TopoDS_Shape myFrame; double myDuration; int myNbSeq; - int myNbAIS; - bool myIsInLoop; - bool IsCreated; public: + AIS_SequenceOfInteractive ListOfAIS; + TopTools_IndexedMapOfShape myIndexToShape; + TopTools_IndexedMapOfShape myMovedShape; + bool IsCreated; + int myNbAIS; + bool myIsShading; + void SetMap(); - void Animate(const Handle(AIS_InteractiveContext)& ic); void GetNextShape(const Handle (AIS_InteractiveContext)& ic, gp_Trsf& aLoc, TopoDS_Shape Shape1, double Step); void MoveShape(const Handle(AIS_InteractiveContext)& ic, gp_Trsf& aLoc, Kinematic_Contact* aContact, double Step); - void Assembly(Kinematic_Assembly& Assembly){myAss = &Assembly;}; + void Assembly(Kinematic_Assembly* Assembly){myAss = Assembly;}; void Frame(TopoDS_Shape Frame){myFrame = Frame;}; void Duration(double Duration){myDuration = Duration;}; void NbSeq(int NbSeq){myNbSeq = NbSeq;}; - void IsInLoop(bool IsInLoop){myIsInLoop = IsInLoop;}; Kinematic_Assembly* Assembly(){return myAss;}; TopoDS_Shape& Frame(){return myFrame;}; double& Duration(){return myDuration;}; int& NbSeq(){return myNbSeq;}; - bool& IsInLoop(){return myIsInLoop;}; }; diff --git a/src/KINEMATIC/Makefile.in b/src/KINEMATIC/Makefile.in index 7a7c360ff..70843201e 100644 --- a/src/KINEMATIC/Makefile.in +++ b/src/KINEMATIC/Makefile.in @@ -42,6 +42,7 @@ LIB_SRC = Kinematic_Position.cxx \ Kinematic_Contact.cxx \ Kinematic_Assembly.cxx \ Kinematic_Animation.cxx + LIB_CLIENT_IDL = # header files diff --git a/src/KinematicGUI/KinematicGUI.cxx b/src/KinematicGUI/KinematicGUI.cxx index e68b34303..bff69c5cd 100644 --- a/src/KinematicGUI/KinematicGUI.cxx +++ b/src/KinematicGUI/KinematicGUI.cxx @@ -42,7 +42,8 @@ using namespace std; #include "KinematicGUI_PositionDlg.h" // Method POSITION #include "KinematicGUI_RotationDlg.h" // Method ROTATION #include "KinematicGUI_TranslationDlg.h" // Method TRANSLATION -#include "KinematicGUI_AnimationDlg.h" // Method ANIMATION +#include "KinematicGUI_AnimationDlg.h" // Method Create ANIMATION +#include "KinematicGUI_AnimDlg.h" // Method Play ANIMATION //======================================================================= // function : KinematicGUI() @@ -155,9 +156,12 @@ bool KinematicGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent) } case 6141: // RUN ANIMATION { - if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() != VIEW_OCC) - break; - myKinematicGUI->RunAnimation(Sel); + if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) { + Handle(AIS_InteractiveContext) ic; + OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer(); + ic = v3d->getAISContext(); + KinematicGUI_AnimDlg *aDlg = new KinematicGUI_AnimDlg(parent, "", myKinematicGUI, Sel, ic, true); + } break; } default: @@ -207,7 +211,6 @@ void KinematicGUI::AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr return; } - Ass->AddContact(result); if(this->AddContactInStudy(Ass, result)) QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE")); } @@ -223,10 +226,10 @@ void KinematicGUI::AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr // purpose : //======================================================================= void KinematicGUI::AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1, - double Duration, int NbSeq, bool IsInLoop) + double Duration, int NbSeq) { try { - GEOM::GEOM_Animation_ptr result = myGeom->AddAnimation(Ass, Shape1, Duration, NbSeq, IsInLoop); + GEOM::GEOM_Animation_ptr result = myGeom->AddAnimation(Ass, Shape1, Duration, NbSeq); if(result->_is_nil()) { QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE")); return; @@ -590,32 +593,6 @@ TCollection_AsciiString KinematicGUI::GetNameFromType(int type) } -//======================================================================= -// function : RunAnimation() -// purpose : -//======================================================================= -void KinematicGUI::RunAnimation(SALOME_Selection* Sel) -{ - QApplication::setOverrideCursor(Qt::waitCursor); - Standard_Boolean testResult; - Handle(SALOME_InteractiveObject) IO = Sel->firstIObject(); - - GEOM::GEOM_Animation_var myGeomAnimation = myGeomBase->ConvertIOinAnimation(IO, testResult); - if(!testResult) - return; - - Handle(AIS_InteractiveContext) ic; - OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer(); - ic = v3d->getAISContext(); - - Kinematic_Animation* KAnimation = CreateAnimation(myGeomAnimation); - KAnimation->Animate(ic); - QApplication::restoreOverrideCursor(); - - return; -} - - //======================================================================= // function : CreateContact() // purpose : @@ -668,7 +645,6 @@ Kinematic_Assembly* KinematicGUI::CreateAssembly(GEOM::GEOM_Assembly_ptr aAssemb { int NbContact = aAssembly->NbContacts(); GEOM::ListOfContact_var aContactList = aAssembly->GetContactList(); - Kinematic_Assembly* KAssembly = new Kinematic_Assembly(); for(int i = 0; i < NbContact; i++) { @@ -676,7 +652,6 @@ Kinematic_Assembly* KinematicGUI::CreateAssembly(GEOM::GEOM_Assembly_ptr aAssemb Kinematic_Contact* KContact = CreateContact(myContact); KAssembly->AddContact(KContact); } - return KAssembly; } @@ -690,14 +665,12 @@ Kinematic_Animation* KinematicGUI::CreateAnimation(GEOM::GEOM_Animation_ptr aAni GEOM::GEOM_Shape_var aFrame = aAnimation->GetFrame(); double Duration = aAnimation->GetDuration(); int NbSeq = aAnimation->GetNbSeq(); - bool IsInLoop = aAnimation->GetIsInLoop(); GEOM::GEOM_Assembly_var myAssembly = aAnimation->GetAssembly(); Kinematic_Assembly* KAssembly = CreateAssembly(myAssembly); - TopoDS_Shape myFrame = myGeomGUI->GetShapeReader().GetShape(myGeom, aFrame); - Kinematic_Animation* KAnimation = new Kinematic_Animation(KAssembly, myFrame, Duration, NbSeq, IsInLoop); + Kinematic_Animation* KAnimation = new Kinematic_Animation(KAssembly, myFrame, Duration, NbSeq); return KAnimation; } diff --git a/src/KinematicGUI/KinematicGUI.h b/src/KinematicGUI/KinematicGUI.h index 8ff220514..56808ae6e 100644 --- a/src/KinematicGUI/KinematicGUI.h +++ b/src/KinematicGUI/KinematicGUI.h @@ -58,7 +58,7 @@ public : void AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1, GEOM::GEOM_Shape_ptr Shape2, int type, double step = 0); void AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1, - double Duration, int NbSeq, bool IsInLoop); + double Duration, int NbSeq); bool AddContactInStudy(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Contact_ptr aContact); @@ -74,8 +74,6 @@ public : void SetTranslation(GEOM::GEOM_Contact_ptr aContact, double Val1, double Val2, double Val3); - void RunAnimation(SALOME_Selection* Sel); - Kinematic_Contact* CreateContact(GEOM::GEOM_Contact_ptr aContact); Kinematic_Assembly* CreateAssembly(GEOM::GEOM_Assembly_ptr aAssembly); Kinematic_Animation* CreateAnimation(GEOM::GEOM_Animation_ptr aAnimation); diff --git a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.cxx b/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.cxx deleted file mode 100644 index 62db3cad7..000000000 --- a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.cxx +++ /dev/null @@ -1,57 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : KinematicGUI_2Sel2Spin1Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "KinematicGUI_2Sel2Spin1Check.h" - -#include -#include -#include - -/* - * Constructs a KinematicGUI_2Sel2Spin1Check which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -KinematicGUI_2Sel2Spin1Check::KinematicGUI_2Sel2Spin1Check(QWidget* parent, const char* name, WFlags fl) - :KinematicGUI_2Sel2Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DX, 0, 1); - Layout2->addWidget(SpinBox_DY, 1, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -KinematicGUI_2Sel2Spin1Check::~KinematicGUI_2Sel2Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.h b/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.h deleted file mode 100644 index a078dc060..000000000 --- a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.h +++ /dev/null @@ -1,48 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : KinematicGUI_2Sel2Spin1Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef KINEMATICGUI_2SEL2SPIN1CHECK_H -#define KINEMATICGUI_2SEL2SPIN1CHECK_H - -#include "KinematicGUI_2Sel2Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class KinematicGUI_2Sel2Spin1Check : public KinematicGUI_2Sel2Spin1Check_QTD -{ - Q_OBJECT - -public: - KinematicGUI_2Sel2Spin1Check( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~KinematicGUI_2Sel2Spin1Check(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // KINEMATICGUI_2SEL2SPIN1CHECK_H diff --git a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.cxx b/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.cxx deleted file mode 100644 index 0591edc94..000000000 --- a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.cxx +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'KinematicGUI_2Sel2Spin1Check_QTD.ui' -** -** Created: ven fév 6 18:56:14 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "KinematicGUI_2Sel2Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a KinematicGUI_2Sel2Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -KinematicGUI_2Sel2Spin1Check_QTD::KinematicGUI_2Sel2Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "KinematicGUI_2Sel2Spin1Check_QTD" ); - resize( 129, 164 ); - setCaption( trUtf8( "KinematicGUI_2Sel2Spin1Check_QTD" ) ); - KinematicGUI_2Sel2Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "KinematicGUI_2Sel2Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - CheckButton1 = new QRadioButton( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton1, 3, 3, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 120, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 4, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - KinematicGUI_2Sel2Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -KinematicGUI_2Sel2Spin1Check_QTD::~KinematicGUI_2Sel2Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.h b/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.h deleted file mode 100644 index c16fec81b..000000000 --- a/src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.h +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'KinematicGUI_2Sel2Spin1Check_QTD.ui' -** -** Created: ven fév 6 18:56:14 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef KINEMATICGUI_2SEL2SPIN1CHECK_QTD_H -#define KINEMATICGUI_2SEL2SPIN1CHECK_QTD_H - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QRadioButton; -class QSpinBox; - -class KinematicGUI_2Sel2Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - KinematicGUI_2Sel2Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~KinematicGUI_2Sel2Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QRadioButton* CheckButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel1; - QPushButton* PushButton2; - QSpinBox* SpinBox2; - QSpinBox* SpinBox1; - QLabel* TextLabel4; - QLabel* TextLabel3; - QPushButton* PushButton1; - QLabel* TextLabel2; - QLineEdit* LineEdit2; - - -protected: - QGridLayout* KinematicGUI_2Sel2Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // KINEMATICGUI_2SEL2SPIN1CHECK_QTD_H diff --git a/src/KinematicGUI/KinematicGUI_AnimDlg.cxx b/src/KinematicGUI/KinematicGUI_AnimDlg.cxx new file mode 100644 index 000000000..15fe8e6a3 --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_AnimDlg.cxx @@ -0,0 +1,596 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : KinematicGUI_AnimDlg.cxx +// Author : Damien COQUERET +// Module : GEOM +// $Header: + +using namespace std; +#include "KinematicGUI_AnimDlg.h" + +#include "QAD_RightFrame.h" +#include "OCCViewer_ViewFrame.h" +#include "QAD_FileDlg.h" +#include "QAD_Tools.h" + +//================================================================================= +// class : MyThread() +// purpose : +//================================================================================= +MyThread::MyThread(Kinematic_Animation* KAnimation, Handle(AIS_InteractiveContext) ic) +{ + myIC = ic; + myKAnimation = KAnimation; + myIsActive = false; +} + +//================================================================================= +// function : ~MyThread() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +MyThread::~MyThread() {} + +//================================================================================= +// class : run() +// purpose : +//================================================================================= +void MyThread::run() +{ + qApp->lock(); + while(myIsActive) { + emit frameChanged(); + + qApp->syncX(); + + double Step, Val; + Step = 1.0 / myKAnimation->NbSeq(); + Val = myValue * Step; + + myKAnimation->myMovedShape.Clear(); + myKAnimation->myMovedShape.Add(myKAnimation->Frame()); + + myKAnimation->myNbAIS = 0; + myKAnimation->GetNextShape(myIC, myLoc, myKAnimation->Frame(), Val); + + myIC->UpdateCurrentViewer(); + + qApp->unlock(); + usleep((int)(myKAnimation->Duration() / myKAnimation->NbSeq() * 1e6)); + qApp->lock(); + + if (!myIsActive) break; + } + + qApp->unlock(); + emit stopped(); + QThread::exit(); + return; +} + +//================================================================================= +// class : InitAnim() +// purpose : +//================================================================================= +void MyThread::InitAnim() +{ + myKAnimation->myMovedShape.Clear(); + myKAnimation->myMovedShape.Add(myKAnimation->Frame()); + + gp_Trsf aLoc; + myLoc = aLoc; + if(!myKAnimation->IsCreated) + myKAnimation->GetNextShape(myIC, myLoc, myKAnimation->Frame(), 1); + myKAnimation->IsCreated = true; + + myAISFrame = new AIS_Shape(TopoDS_Shape()); + myAISFrame->Set(myKAnimation->Frame()); + if(myKAnimation->myIsShading) { + myAISFrame->SetColor(Quantity_NOC_GOLDENROD); + myIC->Display(myAISFrame, 1, 1, Standard_False); + } + else { + myAISFrame->SetColor(Quantity_NOC_RED); + myIC->Display(myAISFrame, 0, 1, Standard_False); + } + return; +} + +//================================================================================= +// class : ClearAnim() +// purpose : +//================================================================================= +void MyThread::ClearAnim(int ClearPrs) +{ + myIC->Erase(myAISFrame, Standard_False, Standard_False); + myIC->ClearPrs(myAISFrame); + + if(!myKAnimation->ListOfAIS.IsEmpty()) { + for(int i = 1; i <= myKAnimation->myNbAIS; i++) { + Handle(AIS_Shape) myShape = Handle(AIS_Shape)::DownCast(myKAnimation->ListOfAIS.Value(i)); + myIC->Erase(myShape, Standard_False, Standard_False); + if(ClearPrs) + myIC->ClearPrs(myShape); + } + } + myIC->UpdateCurrentViewer(); + return; +} + +//================================================================================= +// class : NextFrame() +// purpose : +//================================================================================= +void MyThread::NextFrame() { + double Step, Val; + Step = 1.0 / myKAnimation->NbSeq(); + Val = myValue * Step; + + myKAnimation->myMovedShape.Clear(); + myKAnimation->myMovedShape.Add(myKAnimation->Frame()); + + myKAnimation->myNbAIS = 0; + myKAnimation->GetNextShape(myIC, myLoc, myKAnimation->Frame(), Val); + + myIC->UpdateCurrentViewer(); + return; +} + +//================================================================================= +// class : startAnimation() +// purpose : +//================================================================================= +void MyThread::startAnimation() { + //DCQ : QThread doesn't work... +// if(!myIsActive) { +// myIsActive = true; +// QThread::start(); +// } + + QApplication::setOverrideCursor(Qt::waitCursor); + myIsActive = true; + qApp->lock(); + while(myIsActive) { + emit frameChanged(); + + qApp->syncX(); + + double Step, Val; + Step = 1.0 / myKAnimation->NbSeq(); + Val = myValue * Step; + + myKAnimation->myMovedShape.Clear(); + myKAnimation->myMovedShape.Add(myKAnimation->Frame()); + + myKAnimation->myNbAIS = 0; + myKAnimation->GetNextShape(myIC, myLoc, myKAnimation->Frame(), Val); + + myIC->UpdateCurrentViewer(); + + qApp->unlock(); + usleep((int)(myKAnimation->Duration() / myKAnimation->NbSeq() * 1e6)); + qApp->lock(); + + if (!myIsActive) break; + } + + QApplication::restoreOverrideCursor(); + qApp->unlock(); + emit stopped(); + return; +} + +//================================================================================= +// class : stopAnimation() +// purpose : +//================================================================================= +void MyThread::stopAnimation() { + myIsActive = false; + return; +} + + +//================================================================================= +// class : KinematicGUI_AnimDlg() +// purpose : Constructs a KinematicGUI_AnimDlg which is a child of 'parent', with the +// name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +KinematicGUI_AnimDlg::KinematicGUI_AnimDlg(QWidget* parent, const char* name, KinematicGUI* theKinematicGUI, SALOME_Selection* Sel, Handle(AIS_InteractiveContext) ic, bool modal, WFlags fl) + :KinematicGUI_Skeleton_QTD(parent, name, modal, fl) +{ + if (!name) + setName("KinematicGUI_AnimDlg"); + + buttonClose->setText(tr("GEOM_BUT_CLOSE")); + GroupMedium->close(TRUE); + resize(0, 0); + + setCaption(tr("GEOM_ANIM_TITLE")); + + QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIMATION"))); + QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_FIRST"))); + QPixmap image2(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_PREV"))); + QPixmap image3(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_STOP"))); + QPixmap image4(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_PLAY"))); + QPixmap image5(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_NEXT"))); + QPixmap image6(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_ANIM_LAST"))); + + /***************************************************************/ + GroupConstructors->setTitle(tr("GEOM_ANIM")); + RadioButton1->setPixmap(image0); + + Group1 = new KinematicGUI_Anim_QTD(this, "Group1"); + Group1->PushButton1->setPixmap(image1); + Group1->PushButton2->setPixmap(image2); + Group1->PushButton3->setPixmap(image3); + Group1->PushButton4->setPixmap(image4); + Group1->PushButton5->setPixmap(image5); + Group1->PushButton6->setPixmap(image6); + Group1->PushButton7->setText(tr("GEOM_ANIM_EXPORT")); + Group1->CheckButton1->setText(tr("GEOM_ANIM_SHADING")); + Group1->CheckButton2->setText(tr("GEOM_ANIM_INLOOP")); + + Layout1->addWidget(Group1, 1, 0); + /***************************************************************/ + + /* Initialisation */ + myKinematicGUI = theKinematicGUI; + QApplication::setOverrideCursor(Qt::waitCursor); + Init(Sel, ic); + QApplication::restoreOverrideCursor(); +} + + +//================================================================================= +// function : ~KinematicGUI_AnimDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +KinematicGUI_AnimDlg::~KinematicGUI_AnimDlg() +{ + // no need to delete child widgets, Qt does it all for us + this->destroy(TRUE, TRUE); +} + + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::Init(SALOME_Selection* Sel, Handle(AIS_InteractiveContext) ic) +{ + /* init variables */ + mySelection = Sel; + + myGeomBase = new GEOMBase(); + myGeomGUI = GEOMContext::GetGeomGUI(); + myGeomGUI->SetActiveDialogBox((QDialog*)this); + myGeom = myGeomGUI->myComponentGeom; + + + Standard_Boolean testResult; + Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject(); + GEOM::GEOM_Animation_var myGeomAnim = myGeomBase->ConvertIOinAnimation(IO, testResult); + if(!testResult) + ClickOnCancel(); + + Kinematic_Animation* KAnimation = myKinematicGUI->CreateAnimation(myGeomAnim); + + bool IsOk = false; + for(int cpt = 1; cpt <= KAnimation->myIndexToShape.Extent(); cpt++) { + TopoDS_Shape myShape = KAnimation->myIndexToShape.FindKey(cpt); + if(myShape == KAnimation->Frame()) + IsOk = true; + } + if(!IsOk) + ClickOnCancel(); + + Group1->CheckButton2->setEnabled(false); + + Group1->Slider1->setMaxValue(KAnimation->NbSeq()); + Group1->Slider1->setPageStep(1); + Group1->Slider1->setValue(0); + + /* signals and slots connections */ + connect(buttonClose, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); + connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); + connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + + connect(Group1->Slider1, SIGNAL(valueChanged(int)), this, SLOT(ClickOnSlider(int))); + connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(ClickOnFirst())); + connect(Group1->PushButton2, SIGNAL(clicked()), this, SLOT(ClickOnPrevious())); + connect(Group1->PushButton3, SIGNAL(clicked()), this, SLOT(ClickOnStop())); + connect(Group1->PushButton4, SIGNAL(clicked()), this, SLOT(ClickOnPlay())); + connect(Group1->PushButton5, SIGNAL(clicked()), this, SLOT(ClickOnNext())); + connect(Group1->PushButton6, SIGNAL(clicked()), this, SLOT(ClickOnLast())); + connect(Group1->PushButton7, SIGNAL(clicked()), this, SLOT(ClickOnExport())); + connect(Group1->CheckButton1, SIGNAL(clicked()), this, SLOT(ClickOnShading())); + + myAnimator = new MyThread(KAnimation, ic); + connect(myAnimator, SIGNAL(frameChanged()), this, SLOT(OnNext())); + connect(myAnimator, SIGNAL(stopped()), this, SLOT(ClickOnStop())); + myAnimator->InitAnim(); + myAnimator->myValue = 0; + myAnimator->NextFrame(); + + /* Move widget on the botton right corner of main widget */ +// int x, y; +// myGeomBase->DefineDlgPosition(this, x, y); +// this->move(x, y); + + /* displays Dialog */ + RadioButton1->setChecked(TRUE); + Group1->show(); + this->show(); + + return; +} + + +//================================================================================= +// function : ClickOnCancel() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnCancel() +{ + this->ClickOnStop(); + myAnimator->ClearAnim(true); + disconnect(mySelection, 0, this, 0); + reject(); + QApplication::restoreOverrideCursor(); + return; +} + + +//================================================================================= +// function : DeactivateActiveDialog() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::DeactivateActiveDialog() +{ + this->setEnabled(false); + disconnect(mySelection, 0, this, 0); + myGeomGUI->SetActiveDialogBox(0); + return; +} + + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ActivateThisDialog() +{ + /* Emit a signal to deactivate the active dialog */ + myGeomGUI->EmitSignalDeactivateDialog(); + this->setEnabled(true); + myGeomGUI->SetActiveDialogBox((QDialog*)this); + connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + return; +} + + +//================================================================================= +// function : closeEvent() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::closeEvent(QCloseEvent* e) +{ + /* same than click on cancel button */ + this->ClickOnCancel(); + return; +} + + +//================================================================================= +// function : enterEvent() +// purpose : when mouse enter onto the QWidget +//================================================================================= +void KinematicGUI_AnimDlg::enterEvent(QEvent * e) +{ + if(GroupConstructors->isEnabled()) + return; + this->ActivateThisDialog(); + return; +} + + +//================================================================================= +// function : ClickOnSlider() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnSlider(int newValue) +{ + myAnimator->myValue = newValue; + if(!myAnimator->running()) + myAnimator->NextFrame(); + return; +} + + +//================================================================================= +// function : ClickOnFirst() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnFirst() +{ + this->ClickOnStop(); + int aVal = Group1->Slider1->value(); + if(aVal == 0) { + myAnimator->myValue = 0; + myAnimator->NextFrame(); + } + else + Group1->Slider1->setValue(0); + return; +} + + +//================================================================================= +// function : ClickOnPrevious() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnPrevious() +{ + this->ClickOnStop(); + int aVal = Group1->Slider1->value(); + if(aVal != 0) + Group1->Slider1->setValue(aVal - 1); + return; +} + + +//================================================================================= +// function : ClickOnStop() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnStop() +{ + myAnimator->stopAnimation(); + return; +} + + +//================================================================================= +// function : ClickOnPlay() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnPlay() +{ + if(!myAnimator->running()) + myAnimator->startAnimation(); + return; +} + + +//================================================================================= +// function : OnNext() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::OnNext() +{ + int aVal = Group1->Slider1->value(); + if(aVal != myAnimator->myKAnimation->NbSeq()) + Group1->Slider1->setValue(aVal + 1); + else { + if(Group1->CheckButton2->isChecked()) + Group1->Slider1->setValue(0); + else + this->ClickOnStop(); + } + return; +} + + +//================================================================================= +// function : ClickOnNext() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnNext() +{ + this->ClickOnStop(); + this->OnNext(); + return; +} + + +//================================================================================= +// function : ClickOnLast() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnLast() +{ + this->ClickOnStop(); + int aVal = Group1->Slider1->value(); + if(aVal == myAnimator->myKAnimation->NbSeq()) { + myAnimator->myValue = myAnimator->myKAnimation->NbSeq(); + myAnimator->NextFrame(); + } + else + Group1->Slider1->setValue(myAnimator->myKAnimation->NbSeq()); + + return; +} + + +//================================================================================= +// function : ClickOnShading() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnShading() +{ + QApplication::setOverrideCursor(Qt::waitCursor); + this->ClickOnStop(); + myAnimator->ClearAnim(false); + myAnimator->myKAnimation->myIsShading = Group1->CheckButton1->isChecked(); + myAnimator->InitAnim(); + this->ClickOnFirst(); + QApplication::restoreOverrideCursor(); + return; +} + + +//================================================================================= +// function : ClickOnExport() +// purpose : +//================================================================================= +void KinematicGUI_AnimDlg::ClickOnExport() +{ + this->ClickOnFirst(); + + QString fName = QAD_FileDlg::getFileName(QAD_Application::getDesktop(), QString::null, tr("OCC_IMAGE_FILES"), tr("INF_APP_DUMP_VIEW"), false); + + QString TestFile = QAD_Tools::getFileNameFromPath(fName, false); + if(TestFile.isEmpty()) + return; + + QApplication::setOverrideCursor(Qt::waitCursor); + qApp->processEvents(); + + for(int i = 0; i <= myAnimator->myKAnimation->NbSeq(); i++) { + qApp->processEvents(); + QWidget* qw = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewWidget(); + QPixmap px = QPixmap::grabWindow(qw->winId()); + + QString fileName = QAD_Tools::getDirFromPath(fName, false); + fileName = QAD_Tools::addSlash(fileName); + fileName.append(TestFile); + fileName.append(QString("_%1.").arg(i)); + QString fmt = QAD_Tools::getFileExtensionFromPath(fName); + fileName.append(fmt); + + fmt = fmt.upper(); + if(fmt.isEmpty()) + fmt = QString("BMP"); // default format + if(fmt == "JPG") + fmt = "JPEG"; + + bool bOk = px.save(fileName, fmt.latin1()); + + this->OnNext(); + } + + QApplication::restoreOverrideCursor(); + return; +} diff --git a/src/KinematicGUI/KinematicGUI_AnimDlg.h b/src/KinematicGUI/KinematicGUI_AnimDlg.h new file mode 100644 index 000000000..2634513fe --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_AnimDlg.h @@ -0,0 +1,119 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : KinematicGUI_AnimDlg.h +// Author : Damine COQUERET +// Module : GEOM +// $Header: + +#ifndef KINEMATICGUI_ANIMDLG_H +#define KINEMATICGUI_ANIMDLG_H + +#include "KinematicGUI_Skeleton_QTD.h" +#include "KinematicGUI_Anim_QTD.h" + +#include "KinematicGUI.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +class MyThread : public QObject, public QThread +{ + Q_OBJECT + +public: + MyThread(Kinematic_Animation* KAnimation = 0, Handle(AIS_InteractiveContext) ic = 0); + ~MyThread(); + +private: + bool myIsActive; + Handle(AIS_Shape) myAISFrame; + Handle(AIS_InteractiveContext) myIC; /* Interactive context */ + gp_Trsf myLoc; + +public: + Kinematic_Animation* myKAnimation; + + int myValue; + virtual void run(); + void startAnimation(); + void stopAnimation(); + void InitAnim(); + void ClearAnim(int ClearPrs); + void NextFrame(); + +signals: + void frameChanged(); + void stopped(); + +}; + + +class KinematicGUI_AnimDlg : public KinematicGUI_Skeleton_QTD +{ + Q_OBJECT + +public: + KinematicGUI_AnimDlg(QWidget* parent = 0, const char* name = 0, KinematicGUI* theKinematicGUI = 0, SALOME_Selection* Sel = 0, Handle(AIS_InteractiveContext) ic = 0, bool modal = FALSE, WFlags fl = 0); + ~KinematicGUI_AnimDlg(); + +private : + void Init(SALOME_Selection* Sel, Handle(AIS_InteractiveContext) ic); + void enterEvent(QEvent * e); + void closeEvent(QCloseEvent* e); + + KinematicGUI* myKinematicGUI; + + MyThread* myAnimator; + + SALOME_Selection* mySelection; /* User shape selection */ + GEOM::GEOM_Gen_var myGeom; /* Current GeomI object */ + GEOMBase* myGeomBase; + GEOMContext* myGeomGUI; /* Current GeomGUI object */ + + KinematicGUI_Anim_QTD* Group1; + +private slots: + void ClickOnCancel(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void ClickOnSlider(int newValue); + void ClickOnFirst(); + void ClickOnPrevious(); + void ClickOnStop(); + void ClickOnPlay(); + void OnNext(); + void ClickOnNext(); + void ClickOnLast(); + void ClickOnShading(); + void ClickOnExport(); + +}; + +#endif // KINEMATICGUI_ANIMDLG_H diff --git a/src/KinematicGUI/KinematicGUI_Anim_QTD.cxx b/src/KinematicGUI/KinematicGUI_Anim_QTD.cxx new file mode 100644 index 000000000..55841517f --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_Anim_QTD.cxx @@ -0,0 +1,122 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'KinematicGUI_Anim_QTD.ui' +** +** Created: jeu mar 4 16:48:10 2004 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "KinematicGUI_Anim_QTD.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a KinematicGUI_Anim_QTD which is a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +KinematicGUI_Anim_QTD::KinematicGUI_Anim_QTD( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) +{ + if ( !name ) + setName( "KinematicGUI_Anim_QTD" ); + resize( 334, 121 ); + setCaption( trUtf8( "KinematicGUI_Anim_QTD" ) ); + KinematicGUI_Anim_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "KinematicGUI_Anim_QTDLayout"); + + GroupBox1 = new QGroupBox( this, "GroupBox1" ); + GroupBox1->setTitle( trUtf8( "" ) ); + GroupBox1->setColumnLayout(0, Qt::Vertical ); + GroupBox1->layout()->setSpacing( 6 ); + GroupBox1->layout()->setMargin( 11 ); + GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); + GroupBox1Layout->setAlignment( Qt::AlignTop ); + + Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); + QSpacerItem* spacer = new QSpacerItem( 0, 156, QSizePolicy::Minimum, QSizePolicy::Expanding ); + Layout1->addItem( spacer, 3, 0 ); + + Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); + + PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); + PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); + PushButton3->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton3, 0, 2 ); + + PushButton5 = new QPushButton( GroupBox1, "PushButton5" ); + PushButton5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton5->sizePolicy().hasHeightForWidth() ) ); + PushButton5->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton5, 0, 4 ); + + PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); + PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); + PushButton2->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton2, 0, 1 ); + + PushButton4 = new QPushButton( GroupBox1, "PushButton4" ); + PushButton4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton4->sizePolicy().hasHeightForWidth() ) ); + PushButton4->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton4, 0, 3 ); + + PushButton6 = new QPushButton( GroupBox1, "PushButton6" ); + PushButton6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton6->sizePolicy().hasHeightForWidth() ) ); + PushButton6->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton6, 0, 5 ); + + PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); + PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); + PushButton1->setText( trUtf8( "" ) ); + + Layout2->addWidget( PushButton1, 0, 0 ); + + Layout1->addLayout( Layout2, 1, 0 ); + + Slider1 = new QSlider( GroupBox1, "Slider1" ); + Slider1->setOrientation( QSlider::Horizontal ); + + Layout1->addWidget( Slider1, 0, 0 ); + + Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); + + CheckButton1 = new QRadioButton( GroupBox1, "CheckButton1" ); + CheckButton1->setText( trUtf8( "" ) ); + + Layout3->addWidget( CheckButton1, 0, 0 ); + + PushButton7 = new QPushButton( GroupBox1, "PushButton7" ); + PushButton7->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton7->sizePolicy().hasHeightForWidth() ) ); + PushButton7->setText( trUtf8( "" ) ); + + Layout3->addWidget( PushButton7, 0, 2 ); + + CheckButton2 = new QRadioButton( GroupBox1, "CheckButton2" ); + CheckButton2->setText( trUtf8( "" ) ); + + Layout3->addWidget( CheckButton2, 0, 1 ); + + Layout1->addLayout( Layout3, 2, 0 ); + + GroupBox1Layout->addLayout( Layout1, 0, 0 ); + + KinematicGUI_Anim_QTDLayout->addWidget( GroupBox1, 0, 0 ); +} + +/* + * Destroys the object and frees any allocated resources + */ +KinematicGUI_Anim_QTD::~KinematicGUI_Anim_QTD() +{ + // no need to delete child widgets, Qt does it all for us +} + diff --git a/src/KinematicGUI/KinematicGUI_Anim_QTD.h b/src/KinematicGUI/KinematicGUI_Anim_QTD.h new file mode 100644 index 000000000..2630f6c32 --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_Anim_QTD.h @@ -0,0 +1,51 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'KinematicGUI_Anim_QTD.ui' +** +** Created: jeu mar 4 16:48:10 2004 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef KINEMATICGUI_ANIM_QTD_H +#define KINEMATICGUI_ANIM_QTD_H + +#include +#include +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QGroupBox; +class QPushButton; +class QRadioButton; +class QSlider; + +class KinematicGUI_Anim_QTD : public QWidget +{ + Q_OBJECT + +public: + KinematicGUI_Anim_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~KinematicGUI_Anim_QTD(); + + QGroupBox* GroupBox1; + QPushButton* PushButton3; + QPushButton* PushButton5; + QPushButton* PushButton2; + QPushButton* PushButton4; + QPushButton* PushButton6; + QPushButton* PushButton1; + QSlider* Slider1; + QRadioButton* CheckButton1; + QPushButton* PushButton7; + QRadioButton* CheckButton2; + + +protected: + QGridLayout* KinematicGUI_Anim_QTDLayout; + QGridLayout* GroupBox1Layout; + QGridLayout* Layout1; + QGridLayout* Layout2; + QGridLayout* Layout3; +}; + +#endif // KINEMATICGUI_ANIM_QTD_H diff --git a/src/KinematicGUI/KinematicGUI_AnimationDlg.cxx b/src/KinematicGUI/KinematicGUI_AnimationDlg.cxx index 8e7d8c983..a852339e7 100644 --- a/src/KinematicGUI/KinematicGUI_AnimationDlg.cxx +++ b/src/KinematicGUI/KinematicGUI_AnimationDlg.cxx @@ -50,13 +50,12 @@ KinematicGUI_AnimationDlg::KinematicGUI_AnimationDlg(QWidget* parent, const char RadioButton2->close(TRUE); RadioButton3->close(TRUE); - Group1 = new KinematicGUI_2Sel2Spin1Check(this, "Group1"); + Group1 = new DlgRef_2Sel2Spin(this, "Group1"); Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); Group1->TextLabel1->setText(tr("GEOM_ASSEMBLY")); Group1->TextLabel2->setText(tr("GEOM_FRAME")); Group1->TextLabel3->setText(tr("GEOM_DURATION")); Group1->TextLabel4->setText(tr("GEOM_NBSEQ")); - Group1->CheckButton1->setText(tr("GEOM_IS_IN_LOOP")); Group1->PushButton1->setPixmap(image1); Group1->PushButton2->setPixmap(image1); @@ -99,8 +98,6 @@ void KinematicGUI_AnimationDlg::Init() Group1->SpinBox_DX->SetValue(myDuration); Group1->SpinBox_DY->SetValue(myNbSeq); - Group1->CheckButton1->setEnabled(false); - /* signals and slots connections */ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); @@ -146,9 +143,8 @@ void KinematicGUI_AnimationDlg::ClickOnApply() { QAD_Application::getDesktop()->putInfo(tr("")); - bool IsInLoop = Group1->CheckButton1->isChecked(); if(myOkAssembly && myOkShape1) - myKinematicGUI->AddAnimation(myGeomAssembly, myGeomShape1, myDuration, myNbSeq, IsInLoop); + myKinematicGUI->AddAnimation(myGeomAssembly, myGeomShape1, myDuration, myNbSeq); return; } diff --git a/src/KinematicGUI/KinematicGUI_AnimationDlg.h b/src/KinematicGUI/KinematicGUI_AnimationDlg.h index bd1b30d3d..a8b058e39 100644 --- a/src/KinematicGUI/KinematicGUI_AnimationDlg.h +++ b/src/KinematicGUI/KinematicGUI_AnimationDlg.h @@ -30,7 +30,7 @@ #define DIALOGBOX_ANIMATION_H #include "GEOMBase_Skeleton.h" -#include "KinematicGUI_2Sel2Spin1Check.h" +#include "DlgRef_2Sel2Spin.h" #include "KinematicGUI.h" @@ -59,7 +59,7 @@ private: double myDuration; int myNbSeq; - KinematicGUI_2Sel2Spin1Check* Group1; + DlgRef_2Sel2Spin* Group1; private slots: void ClickOnOk(); diff --git a/src/KinematicGUI/KinematicGUI_PositionDlg.cxx b/src/KinematicGUI/KinematicGUI_PositionDlg.cxx index 3660007d2..a0b2f2cd0 100644 --- a/src/KinematicGUI/KinematicGUI_PositionDlg.cxx +++ b/src/KinematicGUI/KinematicGUI_PositionDlg.cxx @@ -39,14 +39,13 @@ using namespace std; KinematicGUI_PositionDlg::KinematicGUI_PositionDlg(QWidget* parent, const char* name, KinematicGUI* theKinematicGUI, 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_COMMON"))); - //QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT"))); setCaption(tr("GEOM_KPOSITION_TITLE")); /***************************************************************/ GroupConstructors->setTitle(tr("GEOM_KPOSITION")); - //RadioButton1->setPixmap(image0); + RadioButton1->setPixmap(image0); RadioButton2->close(TRUE); RadioButton3->close(TRUE); diff --git a/src/KinematicGUI/KinematicGUI_RotationDlg.cxx b/src/KinematicGUI/KinematicGUI_RotationDlg.cxx index e522898dd..666913864 100644 --- a/src/KinematicGUI/KinematicGUI_RotationDlg.cxx +++ b/src/KinematicGUI/KinematicGUI_RotationDlg.cxx @@ -39,14 +39,13 @@ using namespace std; KinematicGUI_RotationDlg::KinematicGUI_RotationDlg(QWidget* parent, const char* name, KinematicGUI* theKinematicGUI, 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_COMMON"))); - //QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT"))); setCaption(tr("GEOM_KROTATION_TITLE")); /***************************************************************/ GroupConstructors->setTitle(tr("GEOM_KROTATION")); - //RadioButton1->setPixmap(image0); + RadioButton1->setPixmap(image0); RadioButton2->close(TRUE); RadioButton3->close(TRUE); diff --git a/src/KinematicGUI/KinematicGUI_Skeleton_QTD.cxx b/src/KinematicGUI/KinematicGUI_Skeleton_QTD.cxx new file mode 100644 index 000000000..c190f954d --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_Skeleton_QTD.cxx @@ -0,0 +1,99 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'KinematicGUI_Skeleton_QTD.ui' +** +** Created: mer mar 3 16:54:07 2004 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "KinematicGUI_Skeleton_QTD.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a KinematicGUI_Skeleton_QTD which is a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + * + * The dialog will by default be modeless, unless you set 'modal' to + * TRUE to construct a modal dialog. + */ +KinematicGUI_Skeleton_QTD::KinematicGUI_Skeleton_QTD( QWidget* parent, const char* name, bool modal, WFlags fl ) + : QDialog( parent, name, modal, fl ) +{ + if ( !name ) + setName( "KinematicGUI_Skeleton_QTD" ); + resize( 228, 266 ); + setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); + setCaption( trUtf8( "KinematicGUI_Skeleton_QTD" ) ); + setSizeGripEnabled( TRUE ); + KinematicGUI_Skeleton_QTDLayout = new QGridLayout( this, 1, 1, 11, 6, "KinematicGUI_Skeleton_QTDLayout"); + + Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); + + GroupButtons = new QGroupBox( this, "GroupButtons" ); + GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) ); + GroupButtons->setTitle( trUtf8( "" ) ); + GroupButtons->setColumnLayout(0, Qt::Vertical ); + GroupButtons->layout()->setSpacing( 6 ); + GroupButtons->layout()->setMargin( 11 ); + GroupButtonsLayout = new QGridLayout( GroupButtons->layout() ); + GroupButtonsLayout->setAlignment( Qt::AlignTop ); + + Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); + QSpacerItem* spacer = new QSpacerItem( 120, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout3->addItem( spacer, 0, 2 ); + QSpacerItem* spacer_2 = new QSpacerItem( 120, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout3->addItem( spacer_2, 0, 0 ); + + buttonClose = new QPushButton( GroupButtons, "buttonClose" ); + buttonClose->setText( trUtf8( "&Close" ) ); + + Layout3->addWidget( buttonClose, 0, 1 ); + + GroupButtonsLayout->addLayout( Layout3, 0, 0 ); + + Layout1->addWidget( GroupButtons, 2, 0 ); + + GroupConstructors = new QButtonGroup( this, "GroupConstructors" ); + GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) ); + GroupConstructors->setTitle( trUtf8( "" ) ); + GroupConstructors->setColumnLayout(0, Qt::Vertical ); + GroupConstructors->layout()->setSpacing( 6 ); + GroupConstructors->layout()->setMargin( 11 ); + GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() ); + GroupConstructorsLayout->setAlignment( Qt::AlignTop ); + + Layout2 = new QHBoxLayout( 0, 0, 6, "Layout2"); + + RadioButton1 = new QRadioButton( GroupConstructors, "RadioButton1" ); + RadioButton1->setText( trUtf8( "" ) ); + Layout2->addWidget( RadioButton1 ); + + GroupConstructorsLayout->addLayout( Layout2, 0, 0 ); + + Layout1->addWidget( GroupConstructors, 0, 0 ); + + GroupMedium = new QGroupBox( this, "GroupMedium" ); + GroupMedium->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupMedium->sizePolicy().hasHeightForWidth() ) ); + GroupMedium->setTitle( trUtf8( "" ) ); + + Layout1->addWidget( GroupMedium, 1, 0 ); + + KinematicGUI_Skeleton_QTDLayout->addLayout( Layout1, 0, 0 ); +} + +/* + * Destroys the object and frees any allocated resources + */ +KinematicGUI_Skeleton_QTD::~KinematicGUI_Skeleton_QTD() +{ + // no need to delete child widgets, Qt does it all for us +} + diff --git a/src/KinematicGUI/KinematicGUI_Skeleton_QTD.h b/src/KinematicGUI/KinematicGUI_Skeleton_QTD.h new file mode 100644 index 000000000..efc25e589 --- /dev/null +++ b/src/KinematicGUI/KinematicGUI_Skeleton_QTD.h @@ -0,0 +1,46 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'KinematicGUI_Skeleton_QTD.ui' +** +** Created: mer mar 3 16:54:07 2004 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef KINEMATICGUI_SKELETON_QTD_H +#define KINEMATICGUI_SKELETON_QTD_H + +#include +#include +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QButtonGroup; +class QGroupBox; +class QPushButton; +class QRadioButton; + +class KinematicGUI_Skeleton_QTD : public QDialog +{ + Q_OBJECT + +public: + KinematicGUI_Skeleton_QTD( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~KinematicGUI_Skeleton_QTD(); + + QGroupBox* GroupButtons; + QPushButton* buttonClose; + QButtonGroup* GroupConstructors; + QRadioButton* RadioButton1; + QGroupBox* GroupMedium; + + +protected: + QGridLayout* KinematicGUI_Skeleton_QTDLayout; + QGridLayout* Layout1; + QGridLayout* GroupButtonsLayout; + QGridLayout* Layout3; + QGridLayout* GroupConstructorsLayout; + QHBoxLayout* Layout2; +}; + +#endif // KINEMATICGUI_SKELETON_QTD_H diff --git a/src/KinematicGUI/KinematicGUI_TranslationDlg.cxx b/src/KinematicGUI/KinematicGUI_TranslationDlg.cxx index e36b5157a..2d4d42344 100644 --- a/src/KinematicGUI/KinematicGUI_TranslationDlg.cxx +++ b/src/KinematicGUI/KinematicGUI_TranslationDlg.cxx @@ -39,14 +39,13 @@ using namespace std; KinematicGUI_TranslationDlg::KinematicGUI_TranslationDlg(QWidget* parent, const char* name, KinematicGUI* theKinematicGUI, 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_COMMON"))); - //QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT"))); setCaption(tr("GEOM_KTRANSLATION_TITLE")); /***************************************************************/ GroupConstructors->setTitle(tr("GEOM_KTRANSLATION")); - //RadioButton1->setPixmap(image0); + RadioButton1->setPixmap(image0); RadioButton2->close(TRUE); RadioButton3->close(TRUE); diff --git a/src/KinematicGUI/Makefile.in b/src/KinematicGUI/Makefile.in index 9cf7dd044..fd4ac856f 100644 --- a/src/KinematicGUI/Makefile.in +++ b/src/KinematicGUI/Makefile.in @@ -45,16 +45,17 @@ LIB_SRC = KinematicGUI.cxx \ KinematicGUI_3Sel1Spin_QTD.cxx \ KinematicGUI_3List3Spin_QTD.cxx \ KinematicGUI_12Spin_QTD.cxx \ - KinematicGUI_2Sel2Spin1Check_QTD.cxx \ + KinematicGUI_Skeleton_QTD.cxx \ + KinematicGUI_Anim_QTD.cxx \ KinematicGUI_3Sel1Spin.cxx \ KinematicGUI_3List3Spin.cxx \ KinematicGUI_12Spin.cxx \ - KinematicGUI_2Sel2Spin1Check.cxx \ KinematicGUI_ContactDlg.cxx \ KinematicGUI_ContactHDlg.cxx \ KinematicGUI_PositionDlg.cxx \ KinematicGUI_RotationDlg.cxx \ KinematicGUI_TranslationDlg.cxx \ + KinematicGUI_AnimDlg.cxx \ KinematicGUI_AnimationDlg.cxx LIB_MOC = \ @@ -63,16 +64,17 @@ LIB_MOC = \ KinematicGUI_3Sel1Spin_QTD.h \ KinematicGUI_3List3Spin_QTD.h \ KinematicGUI_12Spin_QTD.h \ - KinematicGUI_2Sel2Spin1Check_QTD.h \ + KinematicGUI_Skeleton_QTD.h \ + KinematicGUI_Anim_QTD.h \ KinematicGUI_3Sel1Spin.h \ KinematicGUI_3List3Spin.h \ KinematicGUI_12Spin.h \ - KinematicGUI_2Sel2Spin1Check.h \ KinematicGUI_ContactDlg.h \ KinematicGUI_ContactHDlg.h \ KinematicGUI_PositionDlg.h \ KinematicGUI_RotationDlg.h \ KinematicGUI_TranslationDlg.h \ + KinematicGUI_AnimDlg.h \ KinematicGUI_AnimationDlg.h LIB_CLIENT_IDL = GEOM_Kinematic.idl diff --git a/src/KinematicGUI/UIFiles/KinematicGUI_2Sel2Spin1Check_QTD.ui b/src/KinematicGUI/UIFiles/KinematicGUI_2Sel2Spin1Check_QTD.ui deleted file mode 100644 index 0130f2906..000000000 --- a/src/KinematicGUI/UIFiles/KinematicGUI_2Sel2Spin1Check_QTD.ui +++ /dev/null @@ -1,239 +0,0 @@ - -KinematicGUI_2Sel2Spin1Check_QTD - - - KinematicGUI_2Sel2Spin1Check_QTD - - - - 0 - 0 - 129 - 164 - - - - KinematicGUI_2Sel2Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - CheckButton1 - - - - - - - - LineEdit1 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 120 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - LineEdit2 - - - - - - - - - - diff --git a/src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui b/src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui new file mode 100644 index 000000000..c66425a13 --- /dev/null +++ b/src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui @@ -0,0 +1,251 @@ + +KinematicGUI_Anim_QTD + + + KinematicGUI_Anim_QTD + + + + 0 + 0 + 334 + 121 + + + + KinematicGUI_Anim_QTD + + + + unnamed + + + 0 + + + 6 + + + + GroupBox1 + + + + + + + unnamed + + + 11 + + + 6 + + + + Layout1 + + + + unnamed + + + 0 + + + 6 + + + + Spacer5 + + + Vertical + + + Expanding + + + + 0 + 156 + + + + + + Layout2 + + + + unnamed + + + 0 + + + 6 + + + + PushButton3 + + + + 0 + 0 + 0 + 0 + + + + + + + + + PushButton5 + + + + 0 + 0 + 0 + 0 + + + + + + + + + PushButton2 + + + + 0 + 0 + 0 + 0 + + + + + + + + + PushButton4 + + + + 0 + 0 + 0 + 0 + + + + + + + + + PushButton6 + + + + 0 + 0 + 0 + 0 + + + + + + + + + PushButton1 + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + Slider1 + + + Horizontal + + + + + Layout3 + + + + unnamed + + + 0 + + + 6 + + + + CheckButton1 + + + + + + + + PushButton7 + + + + 0 + 0 + 0 + 0 + + + + + + + + + CheckButton2 + + + + + + + + + + + + + + + diff --git a/src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui b/src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui new file mode 100644 index 000000000..139d0aac0 --- /dev/null +++ b/src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui @@ -0,0 +1,210 @@ + +KinematicGUI_Skeleton_QTD + + + KinematicGUI_Skeleton_QTD + + + + 0 + 0 + 228 + 266 + + + + + 5 + 7 + 0 + 0 + + + + KinematicGUI_Skeleton_QTD + + + true + + + + unnamed + + + 11 + + + 6 + + + + Layout1 + + + + unnamed + + + 0 + + + 6 + + + + GroupButtons + + + + 7 + 0 + 0 + 0 + + + + + + + + unnamed + + + 11 + + + 6 + + + + Layout3 + + + + unnamed + + + 0 + + + 6 + + + + Spacer2 + + + Horizontal + + + Expanding + + + + 120 + 0 + + + + + + Spacer1 + + + Horizontal + + + Expanding + + + + 120 + 0 + + + + + + buttonClose + + + &Close + + + + + + + + + GroupConstructors + + + + 5 + 0 + 0 + 0 + + + + + + + + unnamed + + + 11 + + + 6 + + + + Layout2 + + + + unnamed + + + 0 + + + 6 + + + + RadioButton1 + + + + + + + + + + + + GroupMedium + + + + 7 + 7 + 0 + 0 + + + + + + + + + + + + diff --git a/src/KinematicGUI/UIFiles/ui_to_cxx b/src/KinematicGUI/UIFiles/ui_to_cxx index ea0047ec5..575739b16 100755 --- a/src/KinematicGUI/UIFiles/ui_to_cxx +++ b/src/KinematicGUI/UIFiles/ui_to_cxx @@ -12,5 +12,11 @@ #uic -o KinematicGUI_12Spin_QTD.h KinematicGUI_12Spin_QTD.ui #uic -o KinematicGUI_12Spin_QTD.cxx -impl KinematicGUI_12Spin_QTD.h KinematicGUI_12Spin_QTD.ui -uic -o KinematicGUI_2Sel2Spin1Check_QTD.h KinematicGUI_2Sel2Spin1Check_QTD.ui -uic -o KinematicGUI_2Sel2Spin1Check_QTD.cxx -impl KinematicGUI_2Sel2Spin1Check_QTD.h KinematicGUI_2Sel2Spin1Check_QTD.ui +#uic -o KinematicGUI_2Sel2Spin2Check_QTD.h KinematicGUI_2Sel2Spin2Check_QTD.ui +#uic -o KinematicGUI_2Sel2Spin2Check_QTD.cxx -impl KinematicGUI_2Sel2Spin2Check_QTD.h KinematicGUI_2Sel2Spin2Check_QTD.ui + +uic -o KinematicGUI_Anim_QTD.h KinematicGUI_Anim_QTD.ui +uic -o KinematicGUI_Anim_QTD.cxx -impl KinematicGUI_Anim_QTD.h KinematicGUI_Anim_QTD.ui + +#uic -o KinematicGUI_Skeleton_QTD.h KinematicGUI_Skeleton_QTD.ui +#uic -o KinematicGUI_Skeleton_QTD.cxx -impl KinematicGUI_Skeleton_QTD.h KinematicGUI_Skeleton_QTD.ui