DCQ : Debug Kinematic

This commit is contained in:
dcq 2004-03-16 15:19:16 +00:00
parent cdb76f7dc6
commit 70b5836bff
43 changed files with 1704 additions and 605 deletions

View 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 \

View 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) ;

View 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;

BIN
resources/anim_first.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

BIN
resources/anim_last.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

BIN
resources/anim_next.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

BIN
resources/anim_play.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

BIN
resources/anim_prev.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

BIN
resources/anim_stop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 330 B

View 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'.

View 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);

View 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);

View 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) ;

View 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"

View 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"

View 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;
}

View 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;
}

View 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

View 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;
}

View 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;};
};

View File

@ -42,6 +42,7 @@ LIB_SRC = Kinematic_Position.cxx \
Kinematic_Contact.cxx \
Kinematic_Assembly.cxx \
Kinematic_Animation.cxx
LIB_CLIENT_IDL =
# header files

View 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;
}

View 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);

View File

@ -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
}

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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
}

View File

@ -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

View 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;
}

View 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();

View 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);

View 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);

View File

@ -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
}

View File

@ -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

View 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);

View 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

View File

@ -1,19 +1,19 @@
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
<class>KinematicGUI_2Sel2Spin1Check_QTD</class>
<class>KinematicGUI_Anim_QTD</class>
<widget class="QWidget">
<property name="name">
<cstring>KinematicGUI_2Sel2Spin1Check_QTD</cstring>
<cstring>KinematicGUI_Anim_QTD</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>129</width>
<height>164</height>
<width>334</width>
<height>121</height>
</rect>
</property>
<property name="caption">
<string>KinematicGUI_2Sel2Spin1Check_QTD</string>
<string>KinematicGUI_Anim_QTD</string>
</property>
<grid>
<property name="name">
@ -56,52 +56,24 @@
<property name="spacing">
<number>6</number>
</property>
<widget class="QRadioButton" row="3" column="0" rowspan="1" colspan="3">
<spacer row="3" column="0">
<property name="name">
<cstring>CheckButton1</cstring>
<cstring>Spacer5</cstring>
</property>
<property name="text">
<string></string>
<property name="orientation">
<enum>Vertical</enum>
</property>
</widget>
<widget class="QLineEdit" row="0" column="2">
<property name="name">
<cstring>LineEdit1</cstring>
<property name="sizeType">
<enum>Expanding</enum>
</property>
</widget>
<widget class="QLabel" row="0" column="0">
<property name="name">
<cstring>TextLabel1</cstring>
<property name="sizeHint">
<size>
<width>0</width>
<height>156</height>
</size>
</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">
</spacer>
<widget class="QLayoutWidget" row="1" column="0">
<property name="name">
<cstring>Layout2</cstring>
</property>
@ -115,35 +87,9 @@
<property name="spacing">
<number>6</number>
</property>
<widget class="QSpinBox" row="1" column="1">
<widget class="QPushButton" row="0" column="2">
<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>
<cstring>PushButton3</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@ -154,12 +100,12 @@
</sizepolicy>
</property>
<property name="text">
<string>TL4</string>
<string></string>
</property>
</widget>
<widget class="QLabel" row="0" column="0">
<widget class="QPushButton" row="0" column="4">
<property name="name">
<cstring>TextLabel3</cstring>
<cstring>PushButton5</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@ -170,64 +116,130 @@
</sizepolicy>
</property>
<property name="text">
<string>TL3</string>
<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="QPushButton" row="0" column="1">
<widget class="QSlider" 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>
<spacer row="4" column="2">
<property name="name">
<cstring>Spacer5</cstring>
<cstring>Slider1</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>
<enum>Horizontal</enum>
</property>
</widget>
<widget class="QLineEdit" row="1" column="2">
<widget class="QLayoutWidget" row="2" column="0">
<property name="name">
<cstring>LineEdit2</cstring>
<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>

View File

@ -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>

View File

@ -12,5 +12,11 @@
#uic -o KinematicGUI_12Spin_QTD.h KinematicGUI_12Spin_QTD.ui
#uic -o KinematicGUI_12Spin_QTD.cxx -impl KinematicGUI_12Spin_QTD.h KinematicGUI_12Spin_QTD.ui
uic -o KinematicGUI_2Sel2Spin1Check_QTD.h KinematicGUI_2Sel2Spin1Check_QTD.ui
uic -o KinematicGUI_2Sel2Spin1Check_QTD.cxx -impl KinematicGUI_2Sel2Spin1Check_QTD.h KinematicGUI_2Sel2Spin1Check_QTD.ui
#uic -o KinematicGUI_2Sel2Spin2Check_QTD.h KinematicGUI_2Sel2Spin2Check_QTD.ui
#uic -o KinematicGUI_2Sel2Spin2Check_QTD.cxx -impl KinematicGUI_2Sel2Spin2Check_QTD.h KinematicGUI_2Sel2Spin2Check_QTD.ui
uic -o KinematicGUI_Anim_QTD.h KinematicGUI_Anim_QTD.ui
uic -o KinematicGUI_Anim_QTD.cxx -impl KinematicGUI_Anim_QTD.h KinematicGUI_Anim_QTD.ui
#uic -o KinematicGUI_Skeleton_QTD.h KinematicGUI_Skeleton_QTD.ui
#uic -o KinematicGUI_Skeleton_QTD.cxx -impl KinematicGUI_Skeleton_QTD.h KinematicGUI_Skeleton_QTD.ui