]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
DCQ : Debug Kinematic
authordcq <dcq@opencascade.com>
Tue, 16 Mar 2004 15:19:16 +0000 (15:19 +0000)
committerdcq <dcq@opencascade.com>
Tue, 16 Mar 2004 15:19:16 +0000 (15:19 +0000)
44 files changed:
Makefile.in
idl/GEOM_Gen.idl
idl/GEOM_Kinematic.idl
resources/anim_first.png [new file with mode: 0644]
resources/anim_last.png [new file with mode: 0644]
resources/anim_next.png [new file with mode: 0644]
resources/anim_play.png [new file with mode: 0644]
resources/anim_prev.png [new file with mode: 0644]
resources/anim_stop.png [new file with mode: 0644]
resources/animation.png
src/GEOM/GEOM_Animation_i.cc
src/GEOM/GEOM_Animation_i.hh
src/GEOM/GEOM_Gen_i.cc
src/GEOM/GEOM_Gen_i.hh
src/GEOMContext/GEOM_icons.po
src/GEOMContext/GEOM_msg_en.po
src/GEOMDS/GEOMDS_Commands.cxx
src/GEOMGUI/GeometryGUI_Swig.cxx
src/GEOM_SWIG/geompy.py
src/KINEMATIC/Kinematic_Animation.cxx
src/KINEMATIC/Kinematic_Animation.hxx
src/KINEMATIC/Makefile.in
src/KinematicGUI/KinematicGUI.cxx
src/KinematicGUI/KinematicGUI.h
src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.cxx [deleted file]
src/KinematicGUI/KinematicGUI_2Sel2Spin1Check.h [deleted file]
src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.cxx [deleted file]
src/KinematicGUI/KinematicGUI_2Sel2Spin1Check_QTD.h [deleted file]
src/KinematicGUI/KinematicGUI_AnimDlg.cxx [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_AnimDlg.h [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_Anim_QTD.cxx [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_Anim_QTD.h [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_AnimationDlg.cxx
src/KinematicGUI/KinematicGUI_AnimationDlg.h
src/KinematicGUI/KinematicGUI_PositionDlg.cxx
src/KinematicGUI/KinematicGUI_RotationDlg.cxx
src/KinematicGUI/KinematicGUI_Skeleton_QTD.cxx [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_Skeleton_QTD.h [new file with mode: 0644]
src/KinematicGUI/KinematicGUI_TranslationDlg.cxx
src/KinematicGUI/Makefile.in
src/KinematicGUI/UIFiles/KinematicGUI_2Sel2Spin1Check_QTD.ui [deleted file]
src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui [new file with mode: 0644]
src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui [new file with mode: 0644]
src/KinematicGUI/UIFiles/ui_to_cxx

index 734adeef87dced1c5a254964111253f489d62cbd..b86bc7216c501e0961b973b4c94b7d47319030af 100644 (file)
@@ -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 \
index 54fab87b0ebdc257b24b5ef3eaabcdec3c2a9e7b..8efec829416bd67659ed0a37dea74aef1b8a72b7 100644 (file)
@@ -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) ;
 
index 671597ac175a9c0c331f60086a9bbf97f15dd989..00c62574a19e30c4307bfe8ae1997be61807e304 100644 (file)
@@ -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 (file)
index 0000000..7f823ee
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 (file)
index 0000000..005637e
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 (file)
index 0000000..2b7c58b
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 (file)
index 0000000..9e5cf2b
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 (file)
index 0000000..684dc9c
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 (file)
index 0000000..482e271
Binary files /dev/null and b/resources/anim_stop.png differ
index 545ac6c700742f473ac61d33d688c8e896b942ca..1c8fb05d786aee12a9ef48816fa5fdd6057a69aa 100644 (file)
Binary files a/resources/animation.png and b/resources/animation.png differ
index 2710a7fb446569252920cf2ce4e0ab72acdba4a3..7c441e024443d9c34069ebd84e53ab2b5cea23ed 100644 (file)
@@ -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'.
index 24f6a11132b8dc847eee26eef97cc78603333024..481d51406dcd231aaf5914d5ebea9837ca7e1fa6 100644 (file)
@@ -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);
 
index a29a34d95ab081953d6525f5fb1fdfe43cf12d35..33c7c90d9c00f81e53fa7f64fcbd53f188c6957e 100644 (file)
@@ -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);
index f97fa004c50b4b74c4f26e9afee8539a0007cd60..d2e7ca226e4d28fae86678d732419fcab2be72c1 100644 (file)
@@ -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) ;
index 8a4f80f42ee8ff7e474cb86af29cdef92aad095a..08e173903dc7b7592cca2b86166a3a658672d91b 100644 (file)
@@ -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"
index 035c8e8bd4dd28c56f8f4d22c9ca42e6ffca1bf5..fb7511d24a8dbf82701f1bd923192d71a037d644 100644 (file)
@@ -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"
index 8d618428a08a5af277964b30a69f503d2f79d43b..aad0042005fc83af52fc54954d45f8c220421db4 100644 (file)
@@ -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;
 }
index 55727f9099936b9f827d6860f72fb4a8ff02be84..81e1f1b457a983fd4f9b3d381eb7ed7015031792 100644 (file)
@@ -40,6 +40,8 @@ using namespace std;
 #include "OCCViewer_Viewer3d.h"
 #include <TopExp_Explorer.hxx>
 #include <TopTools_MapOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <BRepAdaptor_Surface.hxx>
 #include <BRepAdaptor_Curve.hxx>
 #include <GeomAbs_CurveType.hxx>
@@ -47,6 +49,7 @@ using namespace std;
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Face.hxx>
+#include <TopoDS_Iterator.hxx>
 
 #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;
 }
 
index 4cfc0184f72b0d93033a525f43a944d1bab46dfa..94626d1747502cf783e7d6f36983dc8281be1935 100644 (file)
@@ -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
+
index 4b397f5f19e6b043cb7100c697f00b2c725a4ef6..935443e91e133ad2b3eaf38ac2a2af2e5b8e433d 100644 (file)
@@ -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;
 }
index 07feb277225f8b491394d8801850b206cd21f664..258665a540be50be55a3e6e919656839e2781598 100644 (file)
@@ -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 <int, list <Kinematic_Contact *> > 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;};
 
 };
 
index 7a7c360ff073e2562ab7ca48b756ec0521909559..70843201eb0241b6b26d8b5a5f80fc539502eaa0 100644 (file)
@@ -42,6 +42,7 @@ LIB_SRC =     Kinematic_Position.cxx \
                Kinematic_Contact.cxx \
                Kinematic_Assembly.cxx \
                Kinematic_Animation.cxx
+
 LIB_CLIENT_IDL = 
 
 # header files 
index e68b3430339e0982131995e298a5f4c65246502c..bff69c5cd9d7d6c32c2542a0c9ec16e78aab5d1b 100644 (file)
@@ -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;
 }
 
index 8ff22051439d1d8489faec8f93844392b7705ebd..56808ae6e601c42bdf9b3d70bacca3b058827d40 100644 (file)
@@ -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 (file)
index 62db3ca..0000000
+++ /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 <qlayout.h>
-#include <qspinbox.h>
-#include <qgroupbox.h>
-
-/* 
- *  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 (file)
index a078dc0..0000000
+++ /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 (file)
index 0591edc..0000000
+++ /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 <qvariant.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-
-/* 
- *  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 (file)
index c16fec8..0000000
+++ /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 <qvariant.h>
-#include <qwidget.h>
-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 (file)
index 0000000..15fe8e6
--- /dev/null
@@ -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 (file)
index 0000000..2634513
--- /dev/null
@@ -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 <qwidget.h>
+#include <qgroupbox.h>
+#include <qlineedit.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+#include <qslider.h>
+#include <qthread.h>
+
+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 (file)
index 0000000..5584151
--- /dev/null
@@ -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 <qvariant.h>
+#include <qgroupbox.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qslider.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/* 
+ *  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 (file)
index 0000000..2630f6c
--- /dev/null
@@ -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 <qvariant.h>
+#include <qwidget.h>
+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
index 8e7d8c9833f4eccb7345f4c79fc38ff30917103e..a852339e71be9717fa31bda920f533ffdc2ab9f3 100644 (file)
@@ -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;
 }
index bd1b30d3d8222c1c47402ade72d5087777e9196b..a8b058e391e9b5c1007683eaa9316663ef3b81b7 100644 (file)
@@ -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();
index 3660007d2ea518b6e4cb3a61028be754ac780bad..a0b2f2cd04a69fd91c780f633429af96dfee2c2d 100644 (file)
@@ -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);
 
index e522898dd126f50dedf27a2083fdd2a6e0f8e47e..66691386412b61e42c0f3382a80582f95c0502fd 100644 (file)
@@ -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 (file)
index 0000000..c190f95
--- /dev/null
@@ -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 <qvariant.h>
+#include <qbuttongroup.h>
+#include <qgroupbox.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/* 
+ *  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 (file)
index 0000000..efc25e5
--- /dev/null
@@ -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 <qvariant.h>
+#include <qdialog.h>
+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
index e36b5157ad1c0fad670c4bcdb0b08a1c7f7455b9..2d4d42344105c54a52cbf5ceb40e3608024215b4 100644 (file)
@@ -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);
 
index 9cf7dd04404d415d68ccd6398a47bc8eea2c7de5..fd4ac856fed12131eca2982716f5ee773feb9b85 100644 (file)
@@ -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 (file)
index 0130f29..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
-<class>KinematicGUI_2Sel2Spin1Check_QTD</class>
-<widget class="QWidget">
-    <property name="name">
-        <cstring>KinematicGUI_2Sel2Spin1Check_QTD</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>129</width>
-            <height>164</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>KinematicGUI_2Sel2Spin1Check_QTD</string>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <property name="spacing">
-            <number>6</number>
-        </property>
-        <widget class="QGroupBox" row="0" column="0">
-            <property name="name">
-                <cstring>GroupBox1</cstring>
-            </property>
-            <property name="title">
-                <string></string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <property name="margin">
-                    <number>11</number>
-                </property>
-                <property name="spacing">
-                    <number>6</number>
-                </property>
-                <widget class="QLayoutWidget" row="0" column="0">
-                    <property name="name">
-                        <cstring>Layout1</cstring>
-                    </property>
-                    <grid>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <property name="margin">
-                            <number>0</number>
-                        </property>
-                        <property name="spacing">
-                            <number>6</number>
-                        </property>
-                        <widget class="QRadioButton" row="3" column="0" rowspan="1" colspan="3">
-                            <property name="name">
-                                <cstring>CheckButton1</cstring>
-                            </property>
-                            <property name="text">
-                                <string></string>
-                            </property>
-                        </widget>
-                        <widget class="QLineEdit" row="0" column="2">
-                            <property name="name">
-                                <cstring>LineEdit1</cstring>
-                            </property>
-                        </widget>
-                        <widget class="QLabel" row="0" column="0">
-                            <property name="name">
-                                <cstring>TextLabel1</cstring>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>0</hsizetype>
-                                    <vsizetype>0</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                            <property name="text">
-                                <string>TL1</string>
-                            </property>
-                        </widget>
-                        <widget class="QPushButton" row="1" column="1">
-                            <property name="name">
-                                <cstring>PushButton2</cstring>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>0</hsizetype>
-                                    <vsizetype>0</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                            <property name="text">
-                                <string></string>
-                            </property>
-                        </widget>
-                        <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="3">
-                            <property name="name">
-                                <cstring>Layout2</cstring>
-                            </property>
-                            <grid>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <property name="margin">
-                                    <number>0</number>
-                                </property>
-                                <property name="spacing">
-                                    <number>6</number>
-                                </property>
-                                <widget class="QSpinBox" row="1" column="1">
-                                    <property name="name">
-                                        <cstring>SpinBox2</cstring>
-                                    </property>
-                                    <property name="sizePolicy">
-                                        <sizepolicy>
-                                            <hsizetype>7</hsizetype>
-                                            <vsizetype>0</vsizetype>
-                                            <horstretch>0</horstretch>
-                                            <verstretch>0</verstretch>
-                                        </sizepolicy>
-                                    </property>
-                                </widget>
-                                <widget class="QSpinBox" row="0" column="1">
-                                    <property name="name">
-                                        <cstring>SpinBox1</cstring>
-                                    </property>
-                                    <property name="sizePolicy">
-                                        <sizepolicy>
-                                            <hsizetype>7</hsizetype>
-                                            <vsizetype>0</vsizetype>
-                                            <horstretch>0</horstretch>
-                                            <verstretch>0</verstretch>
-                                        </sizepolicy>
-                                    </property>
-                                </widget>
-                                <widget class="QLabel" row="1" column="0">
-                                    <property name="name">
-                                        <cstring>TextLabel4</cstring>
-                                    </property>
-                                    <property name="sizePolicy">
-                                        <sizepolicy>
-                                            <hsizetype>0</hsizetype>
-                                            <vsizetype>0</vsizetype>
-                                            <horstretch>0</horstretch>
-                                            <verstretch>0</verstretch>
-                                        </sizepolicy>
-                                    </property>
-                                    <property name="text">
-                                        <string>TL4</string>
-                                    </property>
-                                </widget>
-                                <widget class="QLabel" row="0" column="0">
-                                    <property name="name">
-                                        <cstring>TextLabel3</cstring>
-                                    </property>
-                                    <property name="sizePolicy">
-                                        <sizepolicy>
-                                            <hsizetype>0</hsizetype>
-                                            <vsizetype>0</vsizetype>
-                                            <horstretch>0</horstretch>
-                                            <verstretch>0</verstretch>
-                                        </sizepolicy>
-                                    </property>
-                                    <property name="text">
-                                        <string>TL3</string>
-                                    </property>
-                                </widget>
-                            </grid>
-                        </widget>
-                        <widget class="QPushButton" row="0" column="1">
-                            <property name="name">
-                                <cstring>PushButton1</cstring>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>0</hsizetype>
-                                    <vsizetype>0</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                            <property name="text">
-                                <string></string>
-                            </property>
-                        </widget>
-                        <spacer row="4" column="2">
-                            <property name="name">
-                                <cstring>Spacer5</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Vertical</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="sizeHint">
-                                <size>
-                                    <width>0</width>
-                                    <height>120</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="QLabel" row="1" column="0">
-                            <property name="name">
-                                <cstring>TextLabel2</cstring>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>0</hsizetype>
-                                    <vsizetype>0</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                            <property name="text">
-                                <string>TL2</string>
-                            </property>
-                        </widget>
-                        <widget class="QLineEdit" row="1" column="2">
-                            <property name="name">
-                                <cstring>LineEdit2</cstring>
-                            </property>
-                        </widget>
-                    </grid>
-                </widget>
-            </grid>
-        </widget>
-    </grid>
-</widget>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui b/src/KinematicGUI/UIFiles/KinematicGUI_Anim_QTD.ui
new file mode 100644 (file)
index 0000000..c66425a
--- /dev/null
@@ -0,0 +1,251 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>KinematicGUI_Anim_QTD</class>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KinematicGUI_Anim_QTD</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>334</width>
+            <height>121</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KinematicGUI_Anim_QTD</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <property name="margin">
+            <number>0</number>
+        </property>
+        <property name="spacing">
+            <number>6</number>
+        </property>
+        <widget class="QGroupBox" row="0" column="0">
+            <property name="name">
+                <cstring>GroupBox1</cstring>
+            </property>
+            <property name="title">
+                <string></string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>11</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>Layout1</cstring>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <property name="spacing">
+                            <number>6</number>
+                        </property>
+                        <spacer row="3" column="0">
+                            <property name="name">
+                                <cstring>Spacer5</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Vertical</enum>
+                            </property>
+                            <property name="sizeType">
+                                <enum>Expanding</enum>
+                            </property>
+                            <property name="sizeHint">
+                                <size>
+                                    <width>0</width>
+                                    <height>156</height>
+                                </size>
+                            </property>
+                        </spacer>
+                        <widget class="QLayoutWidget" row="1" column="0">
+                            <property name="name">
+                                <cstring>Layout2</cstring>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <property name="margin">
+                                    <number>0</number>
+                                </property>
+                                <property name="spacing">
+                                    <number>6</number>
+                                </property>
+                                <widget class="QPushButton" row="0" column="2">
+                                    <property name="name">
+                                        <cstring>PushButton3</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="4">
+                                    <property name="name">
+                                        <cstring>PushButton5</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="1">
+                                    <property name="name">
+                                        <cstring>PushButton2</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="3">
+                                    <property name="name">
+                                        <cstring>PushButton4</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="5">
+                                    <property name="name">
+                                        <cstring>PushButton6</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="0">
+                                    <property name="name">
+                                        <cstring>PushButton1</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                            </grid>
+                        </widget>
+                        <widget class="QSlider" row="0" column="0">
+                            <property name="name">
+                                <cstring>Slider1</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Horizontal</enum>
+                            </property>
+                        </widget>
+                        <widget class="QLayoutWidget" row="2" column="0">
+                            <property name="name">
+                                <cstring>Layout3</cstring>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <property name="margin">
+                                    <number>0</number>
+                                </property>
+                                <property name="spacing">
+                                    <number>6</number>
+                                </property>
+                                <widget class="QRadioButton" row="0" column="0">
+                                    <property name="name">
+                                        <cstring>CheckButton1</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QPushButton" row="0" column="2">
+                                    <property name="name">
+                                        <cstring>PushButton7</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>0</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                                <widget class="QRadioButton" row="0" column="1">
+                                    <property name="name">
+                                        <cstring>CheckButton2</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                            </grid>
+                        </widget>
+                    </grid>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui b/src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui
new file mode 100644 (file)
index 0000000..139d0aa
--- /dev/null
@@ -0,0 +1,210 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>KinematicGUI_Skeleton_QTD</class>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KinematicGUI_Skeleton_QTD</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>228</width>
+            <height>266</height>
+        </rect>
+    </property>
+    <property name="sizePolicy">
+        <sizepolicy>
+            <hsizetype>5</hsizetype>
+            <vsizetype>7</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+        </sizepolicy>
+    </property>
+    <property name="caption">
+        <string>KinematicGUI_Skeleton_QTD</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <property name="margin">
+            <number>11</number>
+        </property>
+        <property name="spacing">
+            <number>6</number>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>Layout1</cstring>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <widget class="QGroupBox" row="2" column="0">
+                    <property name="name">
+                        <cstring>GroupButtons</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>0</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                    <property name="title">
+                        <string></string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>11</number>
+                        </property>
+                        <property name="spacing">
+                            <number>6</number>
+                        </property>
+                        <widget class="QLayoutWidget" row="0" column="0">
+                            <property name="name">
+                                <cstring>Layout3</cstring>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <property name="margin">
+                                    <number>0</number>
+                                </property>
+                                <property name="spacing">
+                                    <number>6</number>
+                                </property>
+                                <spacer row="0" column="2">
+                                    <property name="name">
+                                        <cstring>Spacer2</cstring>
+                                    </property>
+                                    <property name="orientation">
+                                        <enum>Horizontal</enum>
+                                    </property>
+                                    <property name="sizeType">
+                                        <enum>Expanding</enum>
+                                    </property>
+                                    <property name="sizeHint">
+                                        <size>
+                                            <width>120</width>
+                                            <height>0</height>
+                                        </size>
+                                    </property>
+                                </spacer>
+                                <spacer row="0" column="0">
+                                    <property name="name">
+                                        <cstring>Spacer1</cstring>
+                                    </property>
+                                    <property name="orientation">
+                                        <enum>Horizontal</enum>
+                                    </property>
+                                    <property name="sizeType">
+                                        <enum>Expanding</enum>
+                                    </property>
+                                    <property name="sizeHint">
+                                        <size>
+                                            <width>120</width>
+                                            <height>0</height>
+                                        </size>
+                                    </property>
+                                </spacer>
+                                <widget class="QPushButton" row="0" column="1">
+                                    <property name="name">
+                                        <cstring>buttonClose</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Close</string>
+                                    </property>
+                                </widget>
+                            </grid>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QButtonGroup" row="0" column="0">
+                    <property name="name">
+                        <cstring>GroupConstructors</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>5</hsizetype>
+                            <vsizetype>0</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                    <property name="title">
+                        <string></string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>11</number>
+                        </property>
+                        <property name="spacing">
+                            <number>6</number>
+                        </property>
+                        <widget class="QLayoutWidget" row="0" column="0">
+                            <property name="name">
+                                <cstring>Layout2</cstring>
+                            </property>
+                            <hbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <property name="margin">
+                                    <number>0</number>
+                                </property>
+                                <property name="spacing">
+                                    <number>6</number>
+                                </property>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>RadioButton1</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string></string>
+                                    </property>
+                                </widget>
+                            </hbox>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QGroupBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>GroupMedium</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>7</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                    <property name="title">
+                        <string></string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
index ea0047ec5ab0882137191c88e2103ff3ed2387d0..575739b16bc0f494288754abbbe048e83c026486 100755 (executable)
 #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