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 \
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) ;
long GetNbSeq()
raises (SALOME::SALOME_Exception);
- boolean GetIsInLoop()
- raises (SALOME::SALOME_Exception);
-
attribute string Name;
attribute string ShapeId;
attribute string StudyShapeId;
//=================================================================================
-// function : GetDuration()
+// function : GetNbSeq()
// purpose :
//=================================================================================
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'.
CORBA::Long GetNbSeq()
throw (SALOME::SALOME_Exception);
- CORBA::Boolean GetIsInLoop()
- throw (SALOME::SALOME_Exception);
-
char* Name();
void Name(const char* name);
TDF_Tool::Entry(LabContact, entry);
Contact->ShapeId(entry.ToCString());
+ Ass->AddContact(Contact);
return Contact;
}
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;
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);
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) ;
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"
#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"
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"
TDF_Label LabNbSeq = LabAnimation.NewChild();
TDataStd_Integer::Set(LabNbSeq, KAnimation.NbSeq());
- TDF_Label LabIsInLoop = LabAnimation.NewChild();
- TDataStd_Integer::Set(LabIsInLoop, KAnimation.IsInLoop());
-
return LabAnimation;
}
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) {
}
}
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)) {
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;
}
#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>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
+#include <TopoDS_Iterator.hxx>
#include "VTKViewer_RenderWindowInteractor.h"
#include "VTKViewer_ViewFrame.h"
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;
}
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
+
// profile
// command to build a profile
//=======================================================================
-Kinematic_Animation::Kinematic_Animation(){}
+Kinematic_Animation::Kinematic_Animation()
+{
+ myIsShading = false;
+ IsCreated = false;
+ myNbAIS = 0;
+ return;
+}
//=======================================================================
// 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;
}
}
-//=================================================================================
-// 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 :
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
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;
}
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;};
};
Kinematic_Contact.cxx \
Kinematic_Assembly.cxx \
Kinematic_Animation.cxx
+
LIB_CLIENT_IDL =
# header files
#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()
}
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:
return;
}
- Ass->AddContact(result);
if(this->AddContactInStudy(Ass, result))
QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
}
// 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;
}
-//=======================================================================
-// 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 :
{
int NbContact = aAssembly->NbContacts();
GEOM::ListOfContact_var aContactList = aAssembly->GetContactList();
-
Kinematic_Assembly* KAssembly = new Kinematic_Assembly();
for(int i = 0; i < NbContact; i++) {
Kinematic_Contact* KContact = CreateContact(myContact);
KAssembly->AddContact(KContact);
}
-
return KAssembly;
}
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;
}
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);
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);
+++ /dev/null
-// 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
-}
+++ /dev/null
-// 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
+++ /dev/null
-/****************************************************************************
-** 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
-}
-
+++ /dev/null
-/****************************************************************************
-** 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
--- /dev/null
+// 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;
+}
--- /dev/null
+// 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
--- /dev/null
+/****************************************************************************
+** 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
+}
+
--- /dev/null
+/****************************************************************************
+** 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
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);
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()));
{
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;
}
#define DIALOGBOX_ANIMATION_H
#include "GEOMBase_Skeleton.h"
-#include "KinematicGUI_2Sel2Spin1Check.h"
+#include "DlgRef_2Sel2Spin.h"
#include "KinematicGUI.h"
double myDuration;
int myNbSeq;
- KinematicGUI_2Sel2Spin1Check* Group1;
+ DlgRef_2Sel2Spin* Group1;
private slots:
void ClickOnOk();
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);
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);
--- /dev/null
+/****************************************************************************
+** 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
+}
+
--- /dev/null
+/****************************************************************************
+** 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
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);
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 = \
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
+++ /dev/null
-<!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>
--- /dev/null
+<!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>
--- /dev/null
+<!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>&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>
#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