DCQ : Debug Kinematic
@ -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 \
|
||||
|
@ -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) ;
|
||||
|
||||
|
@ -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
After Width: | Height: | Size: 273 B |
BIN
resources/anim_last.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
resources/anim_next.png
Normal file
After Width: | Height: | Size: 256 B |
BIN
resources/anim_play.png
Normal file
After Width: | Height: | Size: 223 B |
BIN
resources/anim_prev.png
Normal file
After Width: | Height: | Size: 261 B |
BIN
resources/anim_stop.png
Normal file
After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 330 B |
@ -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'.
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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) ;
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;};
|
||||
|
||||
};
|
||||
|
||||
|
@ -42,6 +42,7 @@ LIB_SRC = Kinematic_Position.cxx \
|
||||
Kinematic_Contact.cxx \
|
||||
Kinematic_Assembly.cxx \
|
||||
Kinematic_Animation.cxx
|
||||
|
||||
LIB_CLIENT_IDL =
|
||||
|
||||
# header files
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
}
|
@ -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
|
@ -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
|
||||
}
|
||||
|
@ -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
|
596
src/KinematicGUI/KinematicGUI_AnimDlg.cxx
Normal 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;
|
||||
}
|
119
src/KinematicGUI/KinematicGUI_AnimDlg.h
Normal 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
|
122
src/KinematicGUI/KinematicGUI_Anim_QTD.cxx
Normal 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
|
||||
}
|
||||
|
51
src/KinematicGUI/KinematicGUI_Anim_QTD.h
Normal 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
|
@ -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;
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
99
src/KinematicGUI/KinematicGUI_Skeleton_QTD.cxx
Normal 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
|
||||
}
|
||||
|
46
src/KinematicGUI/KinematicGUI_Skeleton_QTD.h
Normal 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
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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>
|
210
src/KinematicGUI/UIFiles/KinematicGUI_Skeleton_QTD.ui
Normal 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>&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>
|
@ -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
|
||||
|