DCQ : Debug Kinematic
@ -22,6 +22,12 @@ GEOM_fr.xml \
|
|||||||
GEOMCatalog.xml \
|
GEOMCatalog.xml \
|
||||||
GEOMDS_Resources \
|
GEOMDS_Resources \
|
||||||
animation.png \
|
animation.png \
|
||||||
|
anim_first.png \
|
||||||
|
anim_last.png \
|
||||||
|
anim_next.png \
|
||||||
|
anim_play.png \
|
||||||
|
anim_prev.png \
|
||||||
|
anim_stop.png \
|
||||||
arc.png \
|
arc.png \
|
||||||
archimede.png \
|
archimede.png \
|
||||||
assembly.png \
|
assembly.png \
|
||||||
|
@ -341,8 +341,7 @@ module GEOM
|
|||||||
GEOM_Animation AddAnimation(in GEOM_Assembly Ass,
|
GEOM_Animation AddAnimation(in GEOM_Assembly Ass,
|
||||||
in GEOM_Shape Shape1,
|
in GEOM_Shape Shape1,
|
||||||
in double Duration,
|
in double Duration,
|
||||||
in short NbSeq,
|
in short NbSeq) raises (SALOME::SALOME_Exception) ;
|
||||||
in boolean IsInLoop) raises (SALOME::SALOME_Exception) ;
|
|
||||||
|
|
||||||
void SetPosition(in GEOM_Contact Contact) raises (SALOME::SALOME_Exception) ;
|
void SetPosition(in GEOM_Contact Contact) raises (SALOME::SALOME_Exception) ;
|
||||||
|
|
||||||
|
@ -180,9 +180,6 @@ module GEOM
|
|||||||
long GetNbSeq()
|
long GetNbSeq()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
boolean GetIsInLoop()
|
|
||||||
raises (SALOME::SALOME_Exception);
|
|
||||||
|
|
||||||
attribute string Name;
|
attribute string Name;
|
||||||
attribute string ShapeId;
|
attribute string ShapeId;
|
||||||
attribute string StudyShapeId;
|
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 :
|
// purpose :
|
||||||
//=================================================================================
|
//=================================================================================
|
||||||
CORBA::Long GEOM_Animation_i::GetNbSeq() throw(SALOME::SALOME_Exception)
|
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)
|
// function : Name (set method)
|
||||||
// purpose : to set the attribute 'name'.
|
// purpose : to set the attribute 'name'.
|
||||||
|
@ -78,9 +78,6 @@ public:
|
|||||||
CORBA::Long GetNbSeq()
|
CORBA::Long GetNbSeq()
|
||||||
throw (SALOME::SALOME_Exception);
|
throw (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
CORBA::Boolean GetIsInLoop()
|
|
||||||
throw (SALOME::SALOME_Exception);
|
|
||||||
|
|
||||||
char* Name();
|
char* Name();
|
||||||
void Name(const 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);
|
TDF_Tool::Entry(LabContact, entry);
|
||||||
Contact->ShapeId(entry.ToCString());
|
Contact->ShapeId(entry.ToCString());
|
||||||
|
|
||||||
|
Ass->AddContact(Contact);
|
||||||
return 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_Animation_ptr GEOM_Gen_i::AddAnimation(GEOM::GEOM_Assembly_ptr Ass,
|
||||||
GEOM::GEOM_Shape_ptr Shape1,
|
GEOM::GEOM_Shape_ptr Shape1,
|
||||||
CORBA::Double Duration,
|
CORBA::Double Duration,
|
||||||
const short NbSeq,
|
const short NbSeq)
|
||||||
CORBA::Boolean IsInLoop)
|
|
||||||
throw (SALOME::SALOME_Exception)
|
throw (SALOME::SALOME_Exception)
|
||||||
{
|
{
|
||||||
Kinematic_Animation* tds;
|
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();
|
Kinematic_Assembly* aAss = new Kinematic_Assembly();
|
||||||
Standard_Boolean test = GC.GetAssembly(mainRefLab, *aAss);
|
Standard_Boolean test = GC.GetAssembly(mainRefLab, *aAss);
|
||||||
TopoDS_Shape aShape1 = GetTopoShape(Shape1);
|
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)
|
catch(Standard_Failure)
|
||||||
THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::AddAnimation", SALOME::BAD_PARAM);
|
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_Animation_ptr AddAnimation(GEOM::GEOM_Assembly_ptr Ass,
|
||||||
GEOM::GEOM_Shape_ptr Shape1,
|
GEOM::GEOM_Shape_ptr Shape1,
|
||||||
CORBA::Double Duration,
|
CORBA::Double Duration,
|
||||||
const short NbSeq,
|
const short NbSeq)
|
||||||
CORBA::Boolean IsInLoop)
|
|
||||||
throw (SALOME::SALOME_Exception) ;
|
throw (SALOME::SALOME_Exception) ;
|
||||||
void SetPosition(GEOM::GEOM_Contact_ptr Contact)
|
void SetPosition(GEOM::GEOM_Contact_ptr Contact)
|
||||||
throw (SALOME::SALOME_Exception) ;
|
throw (SALOME::SALOME_Exception) ;
|
||||||
|
@ -18,18 +18,6 @@ msgstr "select1.png"
|
|||||||
msgid "ICON_OBJBROWSER_Geometry"
|
msgid "ICON_OBJBROWSER_Geometry"
|
||||||
msgstr "geometry.png"
|
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"
|
msgid "ICON_OBJBROWSER_ANIMATION"
|
||||||
msgstr "tree_animation.png"
|
msgstr "tree_animation.png"
|
||||||
@ -397,3 +385,39 @@ msgstr "positionvect.png"
|
|||||||
#PositionDlg
|
#PositionDlg
|
||||||
msgid "ICON_DLG_POS_FACE"
|
msgid "ICON_DLG_POS_FACE"
|
||||||
msgstr "positionface.png"
|
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"
|
msgid "GEOM_NBSEQ"
|
||||||
msgstr "Nb. Sequences"
|
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"
|
msgstr "In Loop"
|
||||||
|
|
||||||
msgid "GEOM_POSITION"
|
msgid "GEOM_POSITION"
|
||||||
|
@ -428,9 +428,6 @@ TDF_Label GEOMDS_Commands::AddAnimation(Kinematic_Animation& KAnimation,
|
|||||||
TDF_Label LabNbSeq = LabAnimation.NewChild();
|
TDF_Label LabNbSeq = LabAnimation.NewChild();
|
||||||
TDataStd_Integer::Set(LabNbSeq, KAnimation.NbSeq());
|
TDataStd_Integer::Set(LabNbSeq, KAnimation.NbSeq());
|
||||||
|
|
||||||
TDF_Label LabIsInLoop = LabAnimation.NewChild();
|
|
||||||
TDataStd_Integer::Set(LabIsInLoop, KAnimation.IsInLoop());
|
|
||||||
|
|
||||||
return LabAnimation;
|
return LabAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -555,7 +552,6 @@ Standard_Boolean GEOMDS_Commands::GetAnimation(const TDF_Label& aLabel,
|
|||||||
Handle(TDataStd_Real) anAttReal;
|
Handle(TDataStd_Real) anAttReal;
|
||||||
Handle(TDataStd_Integer) anAttInteger;
|
Handle(TDataStd_Integer) anAttInteger;
|
||||||
Handle(TDataStd_Integer) anAttInteger1;
|
Handle(TDataStd_Integer) anAttInteger1;
|
||||||
Handle(TDataStd_Integer) anAttInteger2;
|
|
||||||
|
|
||||||
if(i == 1 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger)) {
|
if(i == 1 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger)) {
|
||||||
if(anAttInteger->Get() != 3) {
|
if(anAttInteger->Get() != 3) {
|
||||||
@ -564,8 +560,8 @@ Standard_Boolean GEOMDS_Commands::GetAnimation(const TDF_Label& aLabel,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(i == 2) {
|
if(i == 2) {
|
||||||
Kinematic_Assembly aAss;
|
Kinematic_Assembly* aAss = new Kinematic_Assembly();
|
||||||
Standard_Boolean test = GetAssembly(L, aAss);
|
Standard_Boolean test = GetAssembly(L, *aAss);
|
||||||
Anim->Assembly(aAss);
|
Anim->Assembly(aAss);
|
||||||
}
|
}
|
||||||
if(i == 3 && L.FindAttribute(TNaming_NamedShape::GetID(), anAttTopo)) {
|
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)) {
|
if(i == 5 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger1)) {
|
||||||
Anim->NbSeq(anAttInteger1->Get());
|
Anim->NbSeq(anAttInteger1->Get());
|
||||||
}
|
}
|
||||||
if(i == 6 && L.FindAttribute(TDataStd_Integer::GetID(), anAttInteger2)) {
|
|
||||||
Anim->IsInLoop(anAttInteger2->Get());
|
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
Anim->SetMap();
|
||||||
returnAnim = *Anim;
|
returnAnim = *Anim;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,8 @@ using namespace std;
|
|||||||
#include "OCCViewer_Viewer3d.h"
|
#include "OCCViewer_Viewer3d.h"
|
||||||
#include <TopExp_Explorer.hxx>
|
#include <TopExp_Explorer.hxx>
|
||||||
#include <TopTools_MapOfShape.hxx>
|
#include <TopTools_MapOfShape.hxx>
|
||||||
|
#include <TopTools_ListOfShape.hxx>
|
||||||
|
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||||
#include <BRepAdaptor_Surface.hxx>
|
#include <BRepAdaptor_Surface.hxx>
|
||||||
#include <BRepAdaptor_Curve.hxx>
|
#include <BRepAdaptor_Curve.hxx>
|
||||||
#include <GeomAbs_CurveType.hxx>
|
#include <GeomAbs_CurveType.hxx>
|
||||||
@ -47,6 +49,7 @@ using namespace std;
|
|||||||
#include <TopoDS.hxx>
|
#include <TopoDS.hxx>
|
||||||
#include <TopoDS_Edge.hxx>
|
#include <TopoDS_Edge.hxx>
|
||||||
#include <TopoDS_Face.hxx>
|
#include <TopoDS_Face.hxx>
|
||||||
|
#include <TopoDS_Iterator.hxx>
|
||||||
|
|
||||||
#include "VTKViewer_RenderWindowInteractor.h"
|
#include "VTKViewer_RenderWindowInteractor.h"
|
||||||
#include "VTKViewer_ViewFrame.h"
|
#include "VTKViewer_ViewFrame.h"
|
||||||
@ -164,16 +167,35 @@ int GEOM_Swig::getIndexTopology(const char* SubIOR, const char* IOR)
|
|||||||
GEOM::GEOM_Shape_var aSubShape = Geom->GetIORFromString(SubIOR);
|
GEOM::GEOM_Shape_var aSubShape = Geom->GetIORFromString(SubIOR);
|
||||||
TopoDS_Shape subshape = ShapeReader.GetShape(Geom, aSubShape);
|
TopoDS_Shape subshape = ShapeReader.GetShape(Geom, aSubShape);
|
||||||
|
|
||||||
TopExp_Explorer Exp ( shape, subshape.ShapeType() );
|
|
||||||
int index = 1;
|
int index = 1;
|
||||||
TopTools_MapOfShape M;
|
if(subshape.ShapeType() == TopAbs_COMPOUND) {
|
||||||
while ( Exp.More() ) {
|
TopoDS_Iterator it;
|
||||||
if ( M.Add(Exp.Current()) ) {
|
TopTools_ListOfShape CL;
|
||||||
if ( Exp.Current().IsSame(subshape) )
|
CL.Append(shape);
|
||||||
return index;
|
TopTools_ListIteratorOfListOfShape itC;
|
||||||
index++;
|
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();
|
||||||
}
|
}
|
||||||
Exp.Next();
|
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -474,3 +474,167 @@ def Archimede(aShape,weight,WaterDensity,MeshingDeflection):
|
|||||||
def CheckShape(aShape):
|
def CheckShape(aShape):
|
||||||
Status = geom.CheckShape(aShape)
|
Status = geom.CheckShape(aShape)
|
||||||
return Status
|
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
|
// profile
|
||||||
// command to build a 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
|
// command to build a profile
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
Kinematic_Animation::Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame,
|
Kinematic_Animation::Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame,
|
||||||
double duration, int nbseq, bool isinloop)
|
double duration, int nbseq)
|
||||||
{
|
{
|
||||||
myAss = Ass;
|
myAss = Ass;
|
||||||
myFrame = frame;
|
myFrame = frame;
|
||||||
myDuration = duration;
|
myDuration = duration;
|
||||||
myNbSeq = nbseq;
|
myNbSeq = nbseq;
|
||||||
myIsInLoop = isinloop;
|
myIsShading = false;
|
||||||
IsCreated = false;
|
IsCreated = false;
|
||||||
myNbAIS = 1;
|
myNbAIS = 0;
|
||||||
this->SetMap();
|
this->SetMap();
|
||||||
|
|
||||||
return;
|
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()
|
// function : GetNextShape()
|
||||||
// purpose :
|
// purpose :
|
||||||
@ -198,8 +142,6 @@ void Kinematic_Animation::GetNextShape(const Handle(AIS_InteractiveContext)& ic,
|
|||||||
Handle(AIS_Shape) mySimulationShape;
|
Handle(AIS_Shape) mySimulationShape;
|
||||||
mySimulationShape = new AIS_Shape(TopoDS_Shape());
|
mySimulationShape = new AIS_Shape(TopoDS_Shape());
|
||||||
mySimulationShape->Set(myShape2);
|
mySimulationShape->Set(myShape2);
|
||||||
mySimulationShape->SetColor(Quantity_NOC_GREEN);
|
|
||||||
ic->Deactivate(mySimulationShape);
|
|
||||||
ListOfAIS.Append(mySimulationShape);
|
ListOfAIS.Append(mySimulationShape);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -228,13 +170,20 @@ void Kinematic_Animation::MoveShape(const Handle(AIS_InteractiveContext)& ic,
|
|||||||
gp_Trsf aTrans = aContact->GetTransformation(Step);
|
gp_Trsf aTrans = aContact->GetTransformation(Step);
|
||||||
aLoc = aLoc * aTrans;
|
aLoc = aLoc * aTrans;
|
||||||
|
|
||||||
|
myNbAIS++;
|
||||||
Handle(AIS_Shape) mySimulationShape = Handle(AIS_Shape)::DownCast(ListOfAIS.Value(myNbAIS));
|
Handle(AIS_Shape) mySimulationShape = Handle(AIS_Shape)::DownCast(ListOfAIS.Value(myNbAIS));
|
||||||
Handle(Geom_Transformation) aGTrans = new Geom_Transformation();
|
Handle(Geom_Transformation) aGTrans = new Geom_Transformation();
|
||||||
aGTrans->SetTrsf(aLoc);
|
aGTrans->SetTrsf(aLoc);
|
||||||
mySimulationShape->SetTransformation(aGTrans, false, false);
|
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);
|
ic->Display(mySimulationShape, Standard_False);
|
||||||
|
|
||||||
myNbAIS++;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -45,42 +45,40 @@ class Kinematic_Animation
|
|||||||
public:
|
public:
|
||||||
Kinematic_Animation();
|
Kinematic_Animation();
|
||||||
Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame,
|
Kinematic_Animation(Kinematic_Assembly* Ass, TopoDS_Shape frame,
|
||||||
double duration, int nbseq, bool isinloop);
|
double duration, int nbseq);
|
||||||
~Kinematic_Animation();
|
~Kinematic_Animation();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AIS_SequenceOfInteractive ListOfAIS;
|
|
||||||
TopTools_IndexedMapOfShape myIndexToShape;
|
|
||||||
TopTools_IndexedMapOfShape myMovedShape;
|
|
||||||
map <int, list <Kinematic_Contact *> > myStlMapofShapeListOfContact;
|
map <int, list <Kinematic_Contact *> > myStlMapofShapeListOfContact;
|
||||||
Kinematic_Assembly* myAss;
|
Kinematic_Assembly* myAss;
|
||||||
TopoDS_Shape myFrame;
|
TopoDS_Shape myFrame;
|
||||||
double myDuration;
|
double myDuration;
|
||||||
int myNbSeq;
|
int myNbSeq;
|
||||||
int myNbAIS;
|
|
||||||
bool myIsInLoop;
|
|
||||||
bool IsCreated;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
AIS_SequenceOfInteractive ListOfAIS;
|
||||||
|
TopTools_IndexedMapOfShape myIndexToShape;
|
||||||
|
TopTools_IndexedMapOfShape myMovedShape;
|
||||||
|
bool IsCreated;
|
||||||
|
int myNbAIS;
|
||||||
|
bool myIsShading;
|
||||||
|
|
||||||
void SetMap();
|
void SetMap();
|
||||||
void Animate(const Handle(AIS_InteractiveContext)& ic);
|
|
||||||
void GetNextShape(const Handle (AIS_InteractiveContext)& ic,
|
void GetNextShape(const Handle (AIS_InteractiveContext)& ic,
|
||||||
gp_Trsf& aLoc, TopoDS_Shape Shape1, double Step);
|
gp_Trsf& aLoc, TopoDS_Shape Shape1, double Step);
|
||||||
void MoveShape(const Handle(AIS_InteractiveContext)& ic,
|
void MoveShape(const Handle(AIS_InteractiveContext)& ic,
|
||||||
gp_Trsf& aLoc, Kinematic_Contact* aContact,
|
gp_Trsf& aLoc, Kinematic_Contact* aContact,
|
||||||
double Step);
|
double Step);
|
||||||
|
|
||||||
void Assembly(Kinematic_Assembly& Assembly){myAss = &Assembly;};
|
void Assembly(Kinematic_Assembly* Assembly){myAss = Assembly;};
|
||||||
void Frame(TopoDS_Shape Frame){myFrame = Frame;};
|
void Frame(TopoDS_Shape Frame){myFrame = Frame;};
|
||||||
void Duration(double Duration){myDuration = Duration;};
|
void Duration(double Duration){myDuration = Duration;};
|
||||||
void NbSeq(int NbSeq){myNbSeq = NbSeq;};
|
void NbSeq(int NbSeq){myNbSeq = NbSeq;};
|
||||||
void IsInLoop(bool IsInLoop){myIsInLoop = IsInLoop;};
|
|
||||||
|
|
||||||
Kinematic_Assembly* Assembly(){return myAss;};
|
Kinematic_Assembly* Assembly(){return myAss;};
|
||||||
TopoDS_Shape& Frame(){return myFrame;};
|
TopoDS_Shape& Frame(){return myFrame;};
|
||||||
double& Duration(){return myDuration;};
|
double& Duration(){return myDuration;};
|
||||||
int& NbSeq(){return myNbSeq;};
|
int& NbSeq(){return myNbSeq;};
|
||||||
bool& IsInLoop(){return myIsInLoop;};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ LIB_SRC = Kinematic_Position.cxx \
|
|||||||
Kinematic_Contact.cxx \
|
Kinematic_Contact.cxx \
|
||||||
Kinematic_Assembly.cxx \
|
Kinematic_Assembly.cxx \
|
||||||
Kinematic_Animation.cxx
|
Kinematic_Animation.cxx
|
||||||
|
|
||||||
LIB_CLIENT_IDL =
|
LIB_CLIENT_IDL =
|
||||||
|
|
||||||
# header files
|
# header files
|
||||||
|
@ -42,7 +42,8 @@ using namespace std;
|
|||||||
#include "KinematicGUI_PositionDlg.h" // Method POSITION
|
#include "KinematicGUI_PositionDlg.h" // Method POSITION
|
||||||
#include "KinematicGUI_RotationDlg.h" // Method ROTATION
|
#include "KinematicGUI_RotationDlg.h" // Method ROTATION
|
||||||
#include "KinematicGUI_TranslationDlg.h" // Method TRANSLATION
|
#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()
|
// function : KinematicGUI()
|
||||||
@ -155,9 +156,12 @@ bool KinematicGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
|
|||||||
}
|
}
|
||||||
case 6141: // RUN ANIMATION
|
case 6141: // RUN ANIMATION
|
||||||
{
|
{
|
||||||
if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() != VIEW_OCC)
|
if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
|
||||||
break;
|
Handle(AIS_InteractiveContext) ic;
|
||||||
myKinematicGUI->RunAnimation(Sel);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -207,7 +211,6 @@ void KinematicGUI::AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ass->AddContact(result);
|
|
||||||
if(this->AddContactInStudy(Ass, result))
|
if(this->AddContactInStudy(Ass, result))
|
||||||
QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
|
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 :
|
// purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void KinematicGUI::AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1,
|
void KinematicGUI::AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1,
|
||||||
double Duration, int NbSeq, bool IsInLoop)
|
double Duration, int NbSeq)
|
||||||
{
|
{
|
||||||
try {
|
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()) {
|
if(result->_is_nil()) {
|
||||||
QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE"));
|
QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE"));
|
||||||
return;
|
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()
|
// function : CreateContact()
|
||||||
// purpose :
|
// purpose :
|
||||||
@ -668,7 +645,6 @@ Kinematic_Assembly* KinematicGUI::CreateAssembly(GEOM::GEOM_Assembly_ptr aAssemb
|
|||||||
{
|
{
|
||||||
int NbContact = aAssembly->NbContacts();
|
int NbContact = aAssembly->NbContacts();
|
||||||
GEOM::ListOfContact_var aContactList = aAssembly->GetContactList();
|
GEOM::ListOfContact_var aContactList = aAssembly->GetContactList();
|
||||||
|
|
||||||
Kinematic_Assembly* KAssembly = new Kinematic_Assembly();
|
Kinematic_Assembly* KAssembly = new Kinematic_Assembly();
|
||||||
|
|
||||||
for(int i = 0; i < NbContact; i++) {
|
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);
|
Kinematic_Contact* KContact = CreateContact(myContact);
|
||||||
KAssembly->AddContact(KContact);
|
KAssembly->AddContact(KContact);
|
||||||
}
|
}
|
||||||
|
|
||||||
return KAssembly;
|
return KAssembly;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,14 +665,12 @@ Kinematic_Animation* KinematicGUI::CreateAnimation(GEOM::GEOM_Animation_ptr aAni
|
|||||||
GEOM::GEOM_Shape_var aFrame = aAnimation->GetFrame();
|
GEOM::GEOM_Shape_var aFrame = aAnimation->GetFrame();
|
||||||
double Duration = aAnimation->GetDuration();
|
double Duration = aAnimation->GetDuration();
|
||||||
int NbSeq = aAnimation->GetNbSeq();
|
int NbSeq = aAnimation->GetNbSeq();
|
||||||
bool IsInLoop = aAnimation->GetIsInLoop();
|
|
||||||
|
|
||||||
GEOM::GEOM_Assembly_var myAssembly = aAnimation->GetAssembly();
|
GEOM::GEOM_Assembly_var myAssembly = aAnimation->GetAssembly();
|
||||||
Kinematic_Assembly* KAssembly = CreateAssembly(myAssembly);
|
Kinematic_Assembly* KAssembly = CreateAssembly(myAssembly);
|
||||||
|
|
||||||
TopoDS_Shape myFrame = myGeomGUI->GetShapeReader().GetShape(myGeom, aFrame);
|
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;
|
return KAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ public :
|
|||||||
void AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1,
|
void AddContact(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1,
|
||||||
GEOM::GEOM_Shape_ptr Shape2, int type, double step = 0);
|
GEOM::GEOM_Shape_ptr Shape2, int type, double step = 0);
|
||||||
void AddAnimation(GEOM::GEOM_Assembly_ptr Ass, GEOM::GEOM_Shape_ptr Shape1,
|
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,
|
bool AddContactInStudy(GEOM::GEOM_Assembly_ptr Ass,
|
||||||
GEOM::GEOM_Contact_ptr aContact);
|
GEOM::GEOM_Contact_ptr aContact);
|
||||||
@ -74,8 +74,6 @@ public :
|
|||||||
void SetTranslation(GEOM::GEOM_Contact_ptr aContact,
|
void SetTranslation(GEOM::GEOM_Contact_ptr aContact,
|
||||||
double Val1, double Val2, double Val3);
|
double Val1, double Val2, double Val3);
|
||||||
|
|
||||||
void RunAnimation(SALOME_Selection* Sel);
|
|
||||||
|
|
||||||
Kinematic_Contact* CreateContact(GEOM::GEOM_Contact_ptr aContact);
|
Kinematic_Contact* CreateContact(GEOM::GEOM_Contact_ptr aContact);
|
||||||
Kinematic_Assembly* CreateAssembly(GEOM::GEOM_Assembly_ptr aAssembly);
|
Kinematic_Assembly* CreateAssembly(GEOM::GEOM_Assembly_ptr aAssembly);
|
||||||
Kinematic_Animation* CreateAnimation(GEOM::GEOM_Animation_ptr aAnimation);
|
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);
|
RadioButton2->close(TRUE);
|
||||||
RadioButton3->close(TRUE);
|
RadioButton3->close(TRUE);
|
||||||
|
|
||||||
Group1 = new KinematicGUI_2Sel2Spin1Check(this, "Group1");
|
Group1 = new DlgRef_2Sel2Spin(this, "Group1");
|
||||||
Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
|
Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
|
||||||
Group1->TextLabel1->setText(tr("GEOM_ASSEMBLY"));
|
Group1->TextLabel1->setText(tr("GEOM_ASSEMBLY"));
|
||||||
Group1->TextLabel2->setText(tr("GEOM_FRAME"));
|
Group1->TextLabel2->setText(tr("GEOM_FRAME"));
|
||||||
Group1->TextLabel3->setText(tr("GEOM_DURATION"));
|
Group1->TextLabel3->setText(tr("GEOM_DURATION"));
|
||||||
Group1->TextLabel4->setText(tr("GEOM_NBSEQ"));
|
Group1->TextLabel4->setText(tr("GEOM_NBSEQ"));
|
||||||
Group1->CheckButton1->setText(tr("GEOM_IS_IN_LOOP"));
|
|
||||||
Group1->PushButton1->setPixmap(image1);
|
Group1->PushButton1->setPixmap(image1);
|
||||||
Group1->PushButton2->setPixmap(image1);
|
Group1->PushButton2->setPixmap(image1);
|
||||||
|
|
||||||
@ -99,8 +98,6 @@ void KinematicGUI_AnimationDlg::Init()
|
|||||||
Group1->SpinBox_DX->SetValue(myDuration);
|
Group1->SpinBox_DX->SetValue(myDuration);
|
||||||
Group1->SpinBox_DY->SetValue(myNbSeq);
|
Group1->SpinBox_DY->SetValue(myNbSeq);
|
||||||
|
|
||||||
Group1->CheckButton1->setEnabled(false);
|
|
||||||
|
|
||||||
/* signals and slots connections */
|
/* signals and slots connections */
|
||||||
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
|
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
|
||||||
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
|
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
|
||||||
@ -146,9 +143,8 @@ void KinematicGUI_AnimationDlg::ClickOnApply()
|
|||||||
{
|
{
|
||||||
QAD_Application::getDesktop()->putInfo(tr(""));
|
QAD_Application::getDesktop()->putInfo(tr(""));
|
||||||
|
|
||||||
bool IsInLoop = Group1->CheckButton1->isChecked();
|
|
||||||
if(myOkAssembly && myOkShape1)
|
if(myOkAssembly && myOkShape1)
|
||||||
myKinematicGUI->AddAnimation(myGeomAssembly, myGeomShape1, myDuration, myNbSeq, IsInLoop);
|
myKinematicGUI->AddAnimation(myGeomAssembly, myGeomShape1, myDuration, myNbSeq);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#define DIALOGBOX_ANIMATION_H
|
#define DIALOGBOX_ANIMATION_H
|
||||||
|
|
||||||
#include "GEOMBase_Skeleton.h"
|
#include "GEOMBase_Skeleton.h"
|
||||||
#include "KinematicGUI_2Sel2Spin1Check.h"
|
#include "DlgRef_2Sel2Spin.h"
|
||||||
|
|
||||||
#include "KinematicGUI.h"
|
#include "KinematicGUI.h"
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ private:
|
|||||||
double myDuration;
|
double myDuration;
|
||||||
int myNbSeq;
|
int myNbSeq;
|
||||||
|
|
||||||
KinematicGUI_2Sel2Spin1Check* Group1;
|
DlgRef_2Sel2Spin* Group1;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ClickOnOk();
|
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)
|
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)
|
: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 image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT")));
|
||||||
//QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
|
|
||||||
|
|
||||||
setCaption(tr("GEOM_KPOSITION_TITLE"));
|
setCaption(tr("GEOM_KPOSITION_TITLE"));
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
GroupConstructors->setTitle(tr("GEOM_KPOSITION"));
|
GroupConstructors->setTitle(tr("GEOM_KPOSITION"));
|
||||||
//RadioButton1->setPixmap(image0);
|
RadioButton1->setPixmap(image0);
|
||||||
RadioButton2->close(TRUE);
|
RadioButton2->close(TRUE);
|
||||||
RadioButton3->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)
|
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)
|
: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 image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT")));
|
||||||
//QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
|
|
||||||
|
|
||||||
setCaption(tr("GEOM_KROTATION_TITLE"));
|
setCaption(tr("GEOM_KROTATION_TITLE"));
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
GroupConstructors->setTitle(tr("GEOM_KROTATION"));
|
GroupConstructors->setTitle(tr("GEOM_KROTATION"));
|
||||||
//RadioButton1->setPixmap(image0);
|
RadioButton1->setPixmap(image0);
|
||||||
RadioButton2->close(TRUE);
|
RadioButton2->close(TRUE);
|
||||||
RadioButton3->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)
|
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)
|
: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 image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_CONTACT")));
|
||||||
//QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
|
|
||||||
|
|
||||||
setCaption(tr("GEOM_KTRANSLATION_TITLE"));
|
setCaption(tr("GEOM_KTRANSLATION_TITLE"));
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
GroupConstructors->setTitle(tr("GEOM_KTRANSLATION"));
|
GroupConstructors->setTitle(tr("GEOM_KTRANSLATION"));
|
||||||
//RadioButton1->setPixmap(image0);
|
RadioButton1->setPixmap(image0);
|
||||||
RadioButton2->close(TRUE);
|
RadioButton2->close(TRUE);
|
||||||
RadioButton3->close(TRUE);
|
RadioButton3->close(TRUE);
|
||||||
|
|
||||||
|
@ -45,16 +45,17 @@ LIB_SRC = KinematicGUI.cxx \
|
|||||||
KinematicGUI_3Sel1Spin_QTD.cxx \
|
KinematicGUI_3Sel1Spin_QTD.cxx \
|
||||||
KinematicGUI_3List3Spin_QTD.cxx \
|
KinematicGUI_3List3Spin_QTD.cxx \
|
||||||
KinematicGUI_12Spin_QTD.cxx \
|
KinematicGUI_12Spin_QTD.cxx \
|
||||||
KinematicGUI_2Sel2Spin1Check_QTD.cxx \
|
KinematicGUI_Skeleton_QTD.cxx \
|
||||||
|
KinematicGUI_Anim_QTD.cxx \
|
||||||
KinematicGUI_3Sel1Spin.cxx \
|
KinematicGUI_3Sel1Spin.cxx \
|
||||||
KinematicGUI_3List3Spin.cxx \
|
KinematicGUI_3List3Spin.cxx \
|
||||||
KinematicGUI_12Spin.cxx \
|
KinematicGUI_12Spin.cxx \
|
||||||
KinematicGUI_2Sel2Spin1Check.cxx \
|
|
||||||
KinematicGUI_ContactDlg.cxx \
|
KinematicGUI_ContactDlg.cxx \
|
||||||
KinematicGUI_ContactHDlg.cxx \
|
KinematicGUI_ContactHDlg.cxx \
|
||||||
KinematicGUI_PositionDlg.cxx \
|
KinematicGUI_PositionDlg.cxx \
|
||||||
KinematicGUI_RotationDlg.cxx \
|
KinematicGUI_RotationDlg.cxx \
|
||||||
KinematicGUI_TranslationDlg.cxx \
|
KinematicGUI_TranslationDlg.cxx \
|
||||||
|
KinematicGUI_AnimDlg.cxx \
|
||||||
KinematicGUI_AnimationDlg.cxx
|
KinematicGUI_AnimationDlg.cxx
|
||||||
|
|
||||||
LIB_MOC = \
|
LIB_MOC = \
|
||||||
@ -63,16 +64,17 @@ LIB_MOC = \
|
|||||||
KinematicGUI_3Sel1Spin_QTD.h \
|
KinematicGUI_3Sel1Spin_QTD.h \
|
||||||
KinematicGUI_3List3Spin_QTD.h \
|
KinematicGUI_3List3Spin_QTD.h \
|
||||||
KinematicGUI_12Spin_QTD.h \
|
KinematicGUI_12Spin_QTD.h \
|
||||||
KinematicGUI_2Sel2Spin1Check_QTD.h \
|
KinematicGUI_Skeleton_QTD.h \
|
||||||
|
KinematicGUI_Anim_QTD.h \
|
||||||
KinematicGUI_3Sel1Spin.h \
|
KinematicGUI_3Sel1Spin.h \
|
||||||
KinematicGUI_3List3Spin.h \
|
KinematicGUI_3List3Spin.h \
|
||||||
KinematicGUI_12Spin.h \
|
KinematicGUI_12Spin.h \
|
||||||
KinematicGUI_2Sel2Spin1Check.h \
|
|
||||||
KinematicGUI_ContactDlg.h \
|
KinematicGUI_ContactDlg.h \
|
||||||
KinematicGUI_ContactHDlg.h \
|
KinematicGUI_ContactHDlg.h \
|
||||||
KinematicGUI_PositionDlg.h \
|
KinematicGUI_PositionDlg.h \
|
||||||
KinematicGUI_RotationDlg.h \
|
KinematicGUI_RotationDlg.h \
|
||||||
KinematicGUI_TranslationDlg.h \
|
KinematicGUI_TranslationDlg.h \
|
||||||
|
KinematicGUI_AnimDlg.h \
|
||||||
KinematicGUI_AnimationDlg.h
|
KinematicGUI_AnimationDlg.h
|
||||||
|
|
||||||
LIB_CLIENT_IDL = GEOM_Kinematic.idl
|
LIB_CLIENT_IDL = GEOM_Kinematic.idl
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
|
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
|
||||||
<class>KinematicGUI_2Sel2Spin1Check_QTD</class>
|
<class>KinematicGUI_Anim_QTD</class>
|
||||||
<widget class="QWidget">
|
<widget class="QWidget">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>KinematicGUI_2Sel2Spin1Check_QTD</cstring>
|
<cstring>KinematicGUI_Anim_QTD</cstring>
|
||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>129</width>
|
<width>334</width>
|
||||||
<height>164</height>
|
<height>121</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="caption">
|
<property name="caption">
|
||||||
<string>KinematicGUI_2Sel2Spin1Check_QTD</string>
|
<string>KinematicGUI_Anim_QTD</string>
|
||||||
</property>
|
</property>
|
||||||
<grid>
|
<grid>
|
||||||
<property name="name">
|
<property name="name">
|
||||||
@ -56,52 +56,24 @@
|
|||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QRadioButton" row="3" column="0" rowspan="1" colspan="3">
|
<spacer row="3" column="0">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>CheckButton1</cstring>
|
<cstring>Spacer5</cstring>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="orientation">
|
||||||
<string></string>
|
<enum>Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="sizeType">
|
||||||
<widget class="QLineEdit" row="0" column="2">
|
<enum>Expanding</enum>
|
||||||
<property name="name">
|
|
||||||
<cstring>LineEdit1</cstring>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="sizeHint">
|
||||||
<widget class="QLabel" row="0" column="0">
|
<size>
|
||||||
<property name="name">
|
<width>0</width>
|
||||||
<cstring>TextLabel1</cstring>
|
<height>156</height>
|
||||||
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
</spacer>
|
||||||
<sizepolicy>
|
<widget class="QLayoutWidget" row="1" column="0">
|
||||||
<hsizetype>0</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TL1</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" row="1" column="1">
|
|
||||||
<property name="name">
|
|
||||||
<cstring>PushButton2</cstring>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>0</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="3">
|
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>Layout2</cstring>
|
<cstring>Layout2</cstring>
|
||||||
</property>
|
</property>
|
||||||
@ -115,35 +87,9 @@
|
|||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QSpinBox" row="1" column="1">
|
<widget class="QPushButton" row="0" column="2">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>SpinBox2</cstring>
|
<cstring>PushButton3</cstring>
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>7</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSpinBox" row="0" column="1">
|
|
||||||
<property name="name">
|
|
||||||
<cstring>SpinBox1</cstring>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>7</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" row="1" column="0">
|
|
||||||
<property name="name">
|
|
||||||
<cstring>TextLabel4</cstring>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy>
|
<sizepolicy>
|
||||||
@ -154,12 +100,12 @@
|
|||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>TL4</string>
|
<string></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" row="0" column="0">
|
<widget class="QPushButton" row="0" column="4">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>TextLabel3</cstring>
|
<cstring>PushButton5</cstring>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy>
|
<sizepolicy>
|
||||||
@ -170,64 +116,130 @@
|
|||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<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>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</grid>
|
</grid>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" row="0" column="1">
|
<widget class="QSlider" row="0" column="0">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>PushButton1</cstring>
|
<cstring>Slider1</cstring>
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>0</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<spacer row="4" column="2">
|
|
||||||
<property name="name">
|
|
||||||
<cstring>Spacer5</cstring>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Vertical</enum>
|
<enum>Horizontal</enum>
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>120</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
<widget class="QLabel" row="1" column="0">
|
|
||||||
<property name="name">
|
|
||||||
<cstring>TextLabel2</cstring>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>0</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TL2</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLineEdit" row="1" column="2">
|
<widget class="QLayoutWidget" row="2" column="0">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<cstring>LineEdit2</cstring>
|
<cstring>Layout3</cstring>
|
||||||
</property>
|
</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>
|
</widget>
|
||||||
</grid>
|
</grid>
|
||||||
</widget>
|
</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.h KinematicGUI_12Spin_QTD.ui
|
||||||
#uic -o KinematicGUI_12Spin_QTD.cxx -impl 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_2Sel2Spin2Check_QTD.h KinematicGUI_2Sel2Spin2Check_QTD.ui
|
||||||
uic -o KinematicGUI_2Sel2Spin1Check_QTD.cxx -impl KinematicGUI_2Sel2Spin1Check_QTD.h KinematicGUI_2Sel2Spin1Check_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
|
||||||
|