mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-15 10:08:35 +05:00
Changes for bug NPAL14533 (improvement GetShapesOnShape())
This commit is contained in:
parent
b781d18c83
commit
06cf8f676b
@ -1382,6 +1382,45 @@ module GEOM
|
|||||||
in long theShapeType,
|
in long theShapeType,
|
||||||
in shape_state theState);
|
in shape_state theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \return List of IDs of all found sub-shapes.
|
||||||
|
*/
|
||||||
|
ListOfLong GetShapesOnShapeIDs (in GEOM_Object theCheckShape,
|
||||||
|
in GEOM_Object theShape,
|
||||||
|
in short theShapeType,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \return List of all found sub-shapes.
|
||||||
|
*/
|
||||||
|
ListOfGO GetShapesOnShape (in GEOM_Object theCheckShape,
|
||||||
|
in GEOM_Object theShape,
|
||||||
|
in short theShapeType,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \return compound includes all found sub-shapes.
|
||||||
|
*/
|
||||||
|
GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
|
||||||
|
in GEOM_Object theShape,
|
||||||
|
in short theShapeType,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Get sub-shape(s) of \a theShapeWhere, which are
|
* Get sub-shape(s) of \a theShapeWhere, which are
|
||||||
* coincident with \a theShapeWhat or could be a part of it.
|
* coincident with \a theShapeWhat or could be a part of it.
|
||||||
|
@ -346,6 +346,15 @@ module GEOM
|
|||||||
long NumberOfEdges (in GEOM_Object theShape) ;
|
long NumberOfEdges (in GEOM_Object theShape) ;
|
||||||
GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
|
GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
|
||||||
|
|
||||||
|
GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape,
|
||||||
|
in GEOM_Object theShape,
|
||||||
|
in short theShapeType,
|
||||||
|
in shape_state theState);
|
||||||
|
GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
|
||||||
|
in GEOM_Object theShape,
|
||||||
|
in short theShapeType,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
//-----------------------------------------------------------//
|
//-----------------------------------------------------------//
|
||||||
// BlocksOperations //
|
// BlocksOperations //
|
||||||
//-----------------------------------------------------------//
|
//-----------------------------------------------------------//
|
||||||
|
@ -130,6 +130,7 @@ section.png \
|
|||||||
select1.png \
|
select1.png \
|
||||||
sewing.png \
|
sewing.png \
|
||||||
shading.png \
|
shading.png \
|
||||||
|
shapesonshape.png \
|
||||||
sketch.png \
|
sketch.png \
|
||||||
sphere.png \
|
sphere.png \
|
||||||
spheredxyz.png \
|
spheredxyz.png \
|
||||||
|
BIN
resources/shapesonshape.png
Executable file
BIN
resources/shapesonshape.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
114
src/DlgRef/DlgRef_2Sel2List_QTD.cxx
Normal file
114
src/DlgRef/DlgRef_2Sel2List_QTD.cxx
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Form implementation generated from reading ui file 'DlgRef_2Sel2List_QTD.ui'
|
||||||
|
**
|
||||||
|
** Created: Thu Mar 27 16:38:25 2008
|
||||||
|
** by: The User Interface Compiler ($Id$)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "DlgRef_2Sel2List_QTD.h"
|
||||||
|
|
||||||
|
#include <qvariant.h>
|
||||||
|
#include <qgroupbox.h>
|
||||||
|
#include <qlineedit.h>
|
||||||
|
#include <qcombobox.h>
|
||||||
|
#include <qlabel.h>
|
||||||
|
#include <qpushbutton.h>
|
||||||
|
#include <qlayout.h>
|
||||||
|
#include <qtooltip.h>
|
||||||
|
#include <qwhatsthis.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructs a DlgRef_2Sel2List_QTD as a child of 'parent', with the
|
||||||
|
* name 'name' and widget flags set to 'f'.
|
||||||
|
*/
|
||||||
|
DlgRef_2Sel2List_QTD::DlgRef_2Sel2List_QTD( QWidget* parent, const char* name, WFlags fl )
|
||||||
|
: QWidget( parent, name, fl )
|
||||||
|
{
|
||||||
|
if ( !name )
|
||||||
|
setName( "DlgRef_2Sel2List_QTD" );
|
||||||
|
DlgRef_2Sel2List_QTDLayout = new QVBoxLayout( this, 11, 6, "DlgRef_2Sel2List_QTDLayout");
|
||||||
|
|
||||||
|
GroupBox1 = new QGroupBox( this, "GroupBox1" );
|
||||||
|
GroupBox1->setColumnLayout(0, Qt::Vertical );
|
||||||
|
GroupBox1->layout()->setSpacing( 6 );
|
||||||
|
GroupBox1->layout()->setMargin( 11 );
|
||||||
|
GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
|
||||||
|
GroupBox1Layout->setAlignment( Qt::AlignTop );
|
||||||
|
|
||||||
|
LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( LineEdit2, 1, 2 );
|
||||||
|
|
||||||
|
ComboBox2 = new QComboBox( FALSE, GroupBox1, "ComboBox2" );
|
||||||
|
|
||||||
|
GroupBox1Layout->addMultiCellWidget( ComboBox2, 3, 3, 1, 2 );
|
||||||
|
|
||||||
|
TextLabel4 = new QLabel( GroupBox1, "TextLabel4" );
|
||||||
|
TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( TextLabel4, 3, 0 );
|
||||||
|
|
||||||
|
ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" );
|
||||||
|
|
||||||
|
GroupBox1Layout->addMultiCellWidget( ComboBox1, 2, 2, 1, 2 );
|
||||||
|
|
||||||
|
TextLabel3 = new QLabel( GroupBox1, "TextLabel3" );
|
||||||
|
TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( TextLabel3, 2, 0 );
|
||||||
|
|
||||||
|
LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( LineEdit1, 0, 2 );
|
||||||
|
|
||||||
|
TextLabel2 = new QLabel( GroupBox1, "TextLabel2" );
|
||||||
|
TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( TextLabel2, 1, 0 );
|
||||||
|
|
||||||
|
TextLabel1 = new QLabel( GroupBox1, "TextLabel1" );
|
||||||
|
TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( TextLabel1, 0, 0 );
|
||||||
|
|
||||||
|
PushButton1 = new QPushButton( GroupBox1, "PushButton1" );
|
||||||
|
PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( PushButton1, 0, 1 );
|
||||||
|
|
||||||
|
PushButton2 = new QPushButton( GroupBox1, "PushButton2" );
|
||||||
|
PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) );
|
||||||
|
|
||||||
|
GroupBox1Layout->addWidget( PushButton2, 1, 1 );
|
||||||
|
DlgRef_2Sel2List_QTDLayout->addWidget( GroupBox1 );
|
||||||
|
languageChange();
|
||||||
|
resize( QSize(187, 182).expandedTo(minimumSizeHint()) );
|
||||||
|
clearWState( WState_Polished );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Destroys the object and frees any allocated resources
|
||||||
|
*/
|
||||||
|
DlgRef_2Sel2List_QTD::~DlgRef_2Sel2List_QTD()
|
||||||
|
{
|
||||||
|
// no need to delete child widgets, Qt does it all for us
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the strings of the subwidgets using the current
|
||||||
|
* language.
|
||||||
|
*/
|
||||||
|
void DlgRef_2Sel2List_QTD::languageChange()
|
||||||
|
{
|
||||||
|
setCaption( tr( "DlgRef_2Sel2List_QTD" ) );
|
||||||
|
GroupBox1->setTitle( QString::null );
|
||||||
|
TextLabel4->setText( tr( "TL4" ) );
|
||||||
|
TextLabel3->setText( tr( "TL3" ) );
|
||||||
|
TextLabel2->setText( tr( "TL2" ) );
|
||||||
|
TextLabel1->setText( tr( "TL1" ) );
|
||||||
|
PushButton1->setText( QString::null );
|
||||||
|
PushButton2->setText( QString::null );
|
||||||
|
}
|
||||||
|
|
55
src/DlgRef/DlgRef_2Sel2List_QTD.h
Normal file
55
src/DlgRef/DlgRef_2Sel2List_QTD.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Form interface generated from reading ui file 'DlgRef_2Sel2List_QTD.ui'
|
||||||
|
**
|
||||||
|
** Created: Thu Mar 27 16:38:25 2008
|
||||||
|
** by: The User Interface Compiler ($Id$)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef DLGREF_2SEL2LIST_QTD_H
|
||||||
|
#define DLGREF_2SEL2LIST_QTD_H
|
||||||
|
|
||||||
|
#include <qvariant.h>
|
||||||
|
#include <qwidget.h>
|
||||||
|
|
||||||
|
class QVBoxLayout;
|
||||||
|
class QHBoxLayout;
|
||||||
|
class QGridLayout;
|
||||||
|
class QSpacerItem;
|
||||||
|
class QGroupBox;
|
||||||
|
class QLineEdit;
|
||||||
|
class QComboBox;
|
||||||
|
class QLabel;
|
||||||
|
class QPushButton;
|
||||||
|
|
||||||
|
class DlgRef_2Sel2List_QTD : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
DlgRef_2Sel2List_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
|
||||||
|
~DlgRef_2Sel2List_QTD();
|
||||||
|
|
||||||
|
QGroupBox* GroupBox1;
|
||||||
|
QLineEdit* LineEdit2;
|
||||||
|
QComboBox* ComboBox2;
|
||||||
|
QLabel* TextLabel4;
|
||||||
|
QComboBox* ComboBox1;
|
||||||
|
QLabel* TextLabel3;
|
||||||
|
QLineEdit* LineEdit1;
|
||||||
|
QLabel* TextLabel2;
|
||||||
|
QLabel* TextLabel1;
|
||||||
|
QPushButton* PushButton1;
|
||||||
|
QPushButton* PushButton2;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QVBoxLayout* DlgRef_2Sel2List_QTDLayout;
|
||||||
|
QGridLayout* GroupBox1Layout;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
virtual void languageChange();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DLGREF_2SEL2LIST_QTD_H
|
@ -59,6 +59,7 @@ dist_libDlgRef_la_SOURCES = \
|
|||||||
DlgRef_2Sel3Spin2Rb.cxx \
|
DlgRef_2Sel3Spin2Rb.cxx \
|
||||||
DlgRef_4Sel1List_QTD.cxx \
|
DlgRef_4Sel1List_QTD.cxx \
|
||||||
DlgRef_2Sel1List_QTD.cxx \
|
DlgRef_2Sel1List_QTD.cxx \
|
||||||
|
DlgRef_2Sel2List_QTD.cxx \
|
||||||
DlgRef_2Sel1List1Check_QTD.cxx \
|
DlgRef_2Sel1List1Check_QTD.cxx \
|
||||||
DlgRef_1List1Spin1Btn_QTD.cxx \
|
DlgRef_1List1Spin1Btn_QTD.cxx \
|
||||||
DlgRef_4Sel1List1Check_QTD.cxx \
|
DlgRef_4Sel1List1Check_QTD.cxx \
|
||||||
@ -122,6 +123,7 @@ MOC_FILES = \
|
|||||||
DlgRef_3Sel4Spin2Check_QTD_moc.cxx \
|
DlgRef_3Sel4Spin2Check_QTD_moc.cxx \
|
||||||
DlgRef_4Sel1List_QTD_moc.cxx \
|
DlgRef_4Sel1List_QTD_moc.cxx \
|
||||||
DlgRef_2Sel1List_QTD_moc.cxx \
|
DlgRef_2Sel1List_QTD_moc.cxx \
|
||||||
|
DlgRef_2Sel2List_QTD_moc.cxx \
|
||||||
DlgRef_2Sel1List1Check_QTD_moc.cxx \
|
DlgRef_2Sel1List1Check_QTD_moc.cxx \
|
||||||
DlgRef_1List1Spin1Btn_QTD_moc.cxx \
|
DlgRef_1List1Spin1Btn_QTD_moc.cxx \
|
||||||
DlgRef_4Sel1List1Check_QTD_moc.cxx \
|
DlgRef_4Sel1List1Check_QTD_moc.cxx \
|
||||||
@ -187,6 +189,7 @@ salomeinclude_HEADERS = \
|
|||||||
DlgRef_2Sel3Spin2Rb.h \
|
DlgRef_2Sel3Spin2Rb.h \
|
||||||
DlgRef_4Sel1List_QTD.h \
|
DlgRef_4Sel1List_QTD.h \
|
||||||
DlgRef_2Sel1List_QTD.h \
|
DlgRef_2Sel1List_QTD.h \
|
||||||
|
DlgRef_2Sel2List_QTD.h \
|
||||||
DlgRef_2Sel1List1Check_QTD.h \
|
DlgRef_2Sel1List1Check_QTD.h \
|
||||||
DlgRef_1List1Spin1Btn_QTD.h \
|
DlgRef_1List1Spin1Btn_QTD.h \
|
||||||
DlgRef_4Sel1List1Check_QTD.h \
|
DlgRef_4Sel1List1Check_QTD.h \
|
||||||
|
154
src/DlgRef/UIFiles/DlgRef_2Sel2List_QTD.ui
Normal file
154
src/DlgRef/UIFiles/DlgRef_2Sel2List_QTD.ui
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||||
|
<class>DlgRef_2Sel2List_QTD</class>
|
||||||
|
<widget class="QWidget">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>DlgRef_2Sel2List_QTD</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>187</width>
|
||||||
|
<height>182</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="caption">
|
||||||
|
<string>DlgRef_2Sel2List_QTD</string>
|
||||||
|
</property>
|
||||||
|
<vbox>
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<widget class="QGroupBox">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>GroupBox1</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string></string>
|
||||||
|
</property>
|
||||||
|
<grid>
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<widget class="QLineEdit" row="1" column="2">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>LineEdit2</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QComboBox" row="3" column="1" rowspan="1" colspan="2">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>ComboBox2</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" row="3" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>TextLabel4</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>TL4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QComboBox" row="2" column="1" rowspan="1" colspan="2">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>ComboBox1</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" row="2" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>TextLabel3</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>TL3</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLineEdit" row="0" column="2">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>LineEdit1</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" row="1" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>TextLabel2</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>TL2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" row="0" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>TextLabel1</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>TL1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" row="0" column="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>PushButton1</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<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>
|
||||||
|
</grid>
|
||||||
|
</widget>
|
||||||
|
</vbox>
|
||||||
|
</widget>
|
||||||
|
<layoutdefaults spacing="6" margin="11"/>
|
||||||
|
</UI>
|
@ -201,6 +201,10 @@ msgstr "arccenter.png"
|
|||||||
msgid "ICON_DLG_ARCHIMEDE"
|
msgid "ICON_DLG_ARCHIMEDE"
|
||||||
msgstr "archimede.png"
|
msgstr "archimede.png"
|
||||||
|
|
||||||
|
#GetShapesOnShapeDlg
|
||||||
|
msgid "ICON_DLG_SHAPES_ON_SHAPE"
|
||||||
|
msgstr "shapesonshape.png"
|
||||||
|
|
||||||
#PartitionDlg
|
#PartitionDlg
|
||||||
msgid "ICON_DLG_PARTITION"
|
msgid "ICON_DLG_PARTITION"
|
||||||
msgstr "partition.png"
|
msgstr "partition.png"
|
||||||
|
@ -465,6 +465,16 @@ msgstr "Step U :"
|
|||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#ShapesOnShape
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE"
|
||||||
|
msgstr "Shapes_on_shape"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_ESHAPE"
|
||||||
|
msgstr "Shape for exploding"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_CSHAPE"
|
||||||
|
msgstr "Shape for checking"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_STATE"
|
||||||
|
msgstr "State"
|
||||||
|
|
||||||
#Partition
|
#Partition
|
||||||
msgid "GEOM_PARTITION"
|
msgid "GEOM_PARTITION"
|
||||||
msgstr "Partition"
|
msgstr "Partition"
|
||||||
@ -1076,6 +1086,10 @@ msgstr "Change Orientation"
|
|||||||
msgid "GEOM_ORIENTATION_OPT"
|
msgid "GEOM_ORIENTATION_OPT"
|
||||||
msgstr "Reverse orientation with normal vectors simulation"
|
msgstr "Reverse orientation with normal vectors simulation"
|
||||||
|
|
||||||
|
#: GeometryGUI_GetShapesOnShapeDlg.cxx
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_TITLE"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
|
||||||
#: GeometryGUI_PartitionDlg.cxx:45
|
#: GeometryGUI_PartitionDlg.cxx:45
|
||||||
msgid "GEOM_PARTITION_TITLE"
|
msgid "GEOM_PARTITION_TITLE"
|
||||||
msgstr "Partition Of Object With Tool"
|
msgstr "Partition Of Object With Tool"
|
||||||
@ -1430,6 +1444,19 @@ msgstr "Bezier"
|
|||||||
msgid "GEOM_INTERPOL"
|
msgid "GEOM_INTERPOL"
|
||||||
msgstr "Interpolation"
|
msgstr "Interpolation"
|
||||||
|
|
||||||
|
msgid "GEOM_STATE_IN"
|
||||||
|
msgstr "IN"
|
||||||
|
msgid "GEOM_STATE_OUT"
|
||||||
|
msgstr "OUT"
|
||||||
|
msgid "GEOM_STATE_ON"
|
||||||
|
msgstr "ON"
|
||||||
|
msgid "GEOM_STATE_ONIN"
|
||||||
|
msgstr "ONIN"
|
||||||
|
msgid "GEOM_STATE_ONOUT"
|
||||||
|
msgstr "ONOUT"
|
||||||
|
msgid "GEOM_STATE_INOUT"
|
||||||
|
msgstr "INOUT"
|
||||||
|
|
||||||
#
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
@ -2589,6 +2616,15 @@ msgstr "Partition"
|
|||||||
msgid "STB_PARTITION"
|
msgid "STB_PARTITION"
|
||||||
msgstr "Partition"
|
msgstr "Partition"
|
||||||
|
|
||||||
|
msgid "TOP_GET_SHAPES_ON_SHAPES"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
|
||||||
|
msgid "MEN_GET_SHAPES_ON_SHAPES"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
|
||||||
|
msgid "STB_GET_SHAPES_ON_SHAPES"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
|
||||||
msgid "TOP_ARCHIMEDE"
|
msgid "TOP_ARCHIMEDE"
|
||||||
msgstr "Archimede"
|
msgstr "Archimede"
|
||||||
|
|
||||||
|
@ -435,6 +435,16 @@ msgstr "Pas U :"
|
|||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#GetShapesOnShape
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_ESHAPE"
|
||||||
|
msgstr "Shape for exploding"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_CSHAPE"
|
||||||
|
msgstr "Shape for checking"
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_STATE"
|
||||||
|
msgstr "State"
|
||||||
|
|
||||||
#Partition
|
#Partition
|
||||||
msgid "GEOM_PARTITION"
|
msgid "GEOM_PARTITION"
|
||||||
msgstr "Partition"
|
msgstr "Partition"
|
||||||
@ -977,6 +987,10 @@ msgstr "Changer l'Orientation"
|
|||||||
msgid "GEOM_ORIENTATION_OPT"
|
msgid "GEOM_ORIENTATION_OPT"
|
||||||
msgstr "Renverser l'orientation avec une simulation de vecteur normal"
|
msgstr "Renverser l'orientation avec une simulation de vecteur normal"
|
||||||
|
|
||||||
|
#: GeometryGUI_GetShapesOnShapeDlg.cxx
|
||||||
|
msgid "GEOM_SHAPES_ON_SHAPE_TITLE"
|
||||||
|
msgstr "Get shapes on shape"
|
||||||
|
|
||||||
#: GeometryGUI_PartitionDlg.cxx:45
|
#: GeometryGUI_PartitionDlg.cxx:45
|
||||||
msgid "GEOM_PARTITION_TITLE"
|
msgid "GEOM_PARTITION_TITLE"
|
||||||
msgstr "Partition d'Objects Avec Outils"
|
msgstr "Partition d'Objects Avec Outils"
|
||||||
@ -1274,6 +1288,19 @@ msgstr "Bezier"
|
|||||||
msgid "GEOM_INTERPOL"
|
msgid "GEOM_INTERPOL"
|
||||||
msgstr "Interpolation"
|
msgstr "Interpolation"
|
||||||
|
|
||||||
|
msgid "GEOM_STATE_IN"
|
||||||
|
msgstr "IN"
|
||||||
|
msgid "GEOM_STATE_OUT"
|
||||||
|
msgstr "OUT"
|
||||||
|
msgid "GEOM_STATE_ON"
|
||||||
|
msgstr "ON"
|
||||||
|
msgid "GEOM_STATE_ONIN"
|
||||||
|
msgstr "ONIN"
|
||||||
|
msgid "GEOM_STATE_ONOUT"
|
||||||
|
msgstr "ONOUT"
|
||||||
|
msgid "GEOM_STATE_INOUT"
|
||||||
|
msgstr "INOUT"
|
||||||
|
|
||||||
#
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
|
@ -499,7 +499,8 @@ void GeometryGUI::OnGUIEvent( int id )
|
|||||||
id == 504 || // MENU OPERATION - ARCHIMEDE
|
id == 504 || // MENU OPERATION - ARCHIMEDE
|
||||||
id == 505 || // MENU OPERATION - FILLET
|
id == 505 || // MENU OPERATION - FILLET
|
||||||
id == 506 || // MENU OPERATION - CHAMFER
|
id == 506 || // MENU OPERATION - CHAMFER
|
||||||
id == 507 ) { // MENU OPERATION - CLIPPING RANGE
|
id == 507 || // MENU OPERATION - CLIPPING RANGE
|
||||||
|
id == 508 ) { // MENU OPERATION - GET SHAPES ON SHAPE
|
||||||
#ifndef WNT
|
#ifndef WNT
|
||||||
library = getLibrary( "libOperationGUI.so" );
|
library = getLibrary( "libOperationGUI.so" );
|
||||||
#else
|
#else
|
||||||
@ -830,6 +831,7 @@ void GeometryGUI::initialize( CAM_Application* app )
|
|||||||
createGeomAction( 505, "FILLET" );
|
createGeomAction( 505, "FILLET" );
|
||||||
createGeomAction( 506, "CHAMFER" );
|
createGeomAction( 506, "CHAMFER" );
|
||||||
//createGeomAction( 507, "CLIPPING" );
|
//createGeomAction( 507, "CLIPPING" );
|
||||||
|
createGeomAction( 508, "GET_SHAPES_ON_SHAPES" );
|
||||||
|
|
||||||
createGeomAction( 9998, "MUL_TRANSFORM" );
|
createGeomAction( 9998, "MUL_TRANSFORM" );
|
||||||
createGeomAction( 9995, "EXPLODE_BLOCKS" );
|
createGeomAction( 9995, "EXPLODE_BLOCKS" );
|
||||||
@ -981,6 +983,7 @@ void GeometryGUI::initialize( CAM_Application* app )
|
|||||||
|
|
||||||
createMenu( 503, operId, -1 );
|
createMenu( 503, operId, -1 );
|
||||||
createMenu( 504, operId, -1 );
|
createMenu( 504, operId, -1 );
|
||||||
|
createMenu( 508, operId, -1 );
|
||||||
createMenu( separator(), operId, -1 );
|
createMenu( separator(), operId, -1 );
|
||||||
createMenu( 505, transId, -1 );
|
createMenu( 505, transId, -1 );
|
||||||
createMenu( 506, transId, -1 );
|
createMenu( 506, transId, -1 );
|
||||||
|
@ -50,6 +50,7 @@ using namespace std;
|
|||||||
#include "GEOMAlgo_FinderShapeOnQuad.hxx"
|
#include "GEOMAlgo_FinderShapeOnQuad.hxx"
|
||||||
#include "GEOMAlgo_FinderShapeOn2.hxx"
|
#include "GEOMAlgo_FinderShapeOn2.hxx"
|
||||||
#include "GEOMAlgo_ClsfBox.hxx"
|
#include "GEOMAlgo_ClsfBox.hxx"
|
||||||
|
#include "GEOMAlgo_ClsfSolid.hxx"
|
||||||
#include "GEOMAlgo_Gluer1.hxx"
|
#include "GEOMAlgo_Gluer1.hxx"
|
||||||
#include "GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx"
|
#include "GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx"
|
||||||
#include "GEOMAlgo_CoupleOfShapes.hxx"
|
#include "GEOMAlgo_CoupleOfShapes.hxx"
|
||||||
@ -116,6 +117,7 @@ using namespace std;
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <Standard_NullObject.hxx>
|
||||||
#include <Standard_Failure.hxx>
|
#include <Standard_Failure.hxx>
|
||||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||||||
|
|
||||||
@ -1554,7 +1556,7 @@ Handle(TColStd_HSequenceOfInteger)
|
|||||||
|
|
||||||
// Make a Python command
|
// Make a Python command
|
||||||
GEOM::TPythonDump(aFunction)
|
GEOM::TPythonDump(aFunction)
|
||||||
<< "listShapesOnBoxIDs = geompy.GetShapesOnQuadrangleIDs("
|
<< "listShapesOnBoxIDs = geompy.GetShapesOnBoxIDs("
|
||||||
<< theBox << ", "
|
<< theBox << ", "
|
||||||
<< theShape << ", "
|
<< theShape << ", "
|
||||||
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||||
@ -1612,6 +1614,235 @@ Handle(TColStd_HSequenceOfTransient)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : getShapesOnShapeIDs
|
||||||
|
/*!
|
||||||
|
* \brief Find IDs of subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
|
*/
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
Handle(TColStd_HSequenceOfInteger)
|
||||||
|
GEOMImpl_IShapesOperations::getShapesOnShapeIDs
|
||||||
|
(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aSeqOfIDs;
|
||||||
|
|
||||||
|
TopoDS_Shape aCheckShape = theCheckShape->GetValue();
|
||||||
|
TopoDS_Shape aShape = theShape->GetValue();
|
||||||
|
TopTools_ListOfShape res;
|
||||||
|
|
||||||
|
// Check presence of triangulation, build if need
|
||||||
|
if (!CheckTriangulation(aShape)) {
|
||||||
|
SetErrorCode("Cannot build triangulation on the shape");
|
||||||
|
return aSeqOfIDs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call algo
|
||||||
|
GEOMAlgo_FinderShapeOn2 aFinder;
|
||||||
|
Standard_Real aTol = 0.0001; // default value
|
||||||
|
|
||||||
|
Handle(GEOMAlgo_ClsfSolid) aClsfSolid = new GEOMAlgo_ClsfSolid;
|
||||||
|
aClsfSolid->SetShape(aCheckShape);
|
||||||
|
|
||||||
|
aFinder.SetShape(aShape);
|
||||||
|
aFinder.SetTolerance(aTol);
|
||||||
|
aFinder.SetClsf(aClsfSolid);
|
||||||
|
aFinder.SetShapeType( (TopAbs_ShapeEnum)theShapeType );
|
||||||
|
aFinder.SetState(theState);
|
||||||
|
aFinder.Perform();
|
||||||
|
|
||||||
|
// Interprete results
|
||||||
|
Standard_Integer iErr = aFinder.ErrorStatus();
|
||||||
|
// the detailed description of error codes is in GEOMAlgo_FinderShapeOn1.cxx
|
||||||
|
if (iErr) {
|
||||||
|
MESSAGE(" iErr : " << iErr);
|
||||||
|
TCollection_AsciiString aMsg (" iErr : ");
|
||||||
|
aMsg += TCollection_AsciiString(iErr);
|
||||||
|
SetErrorCode(aMsg);
|
||||||
|
return aSeqOfIDs;
|
||||||
|
}
|
||||||
|
Standard_Integer iWrn = aFinder.WarningStatus();
|
||||||
|
// the detailed description of warning codes is in GEOMAlgo_FinderShapeOn1.cxx
|
||||||
|
if (iWrn) {
|
||||||
|
MESSAGE(" *** iWrn : " << iWrn);
|
||||||
|
}
|
||||||
|
|
||||||
|
const TopTools_ListOfShape& listSS = aFinder.Shapes(); // the result
|
||||||
|
|
||||||
|
if (listSS.Extent() < 1) {
|
||||||
|
//SetErrorCode("Not a single sub-shape of the requested type found on the given surface");
|
||||||
|
SetErrorCode(NOT_FOUND_ANY); // NPAL18017
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fill sequence of object IDs
|
||||||
|
aSeqOfIDs = new TColStd_HSequenceOfInteger;
|
||||||
|
|
||||||
|
TopTools_IndexedMapOfShape anIndices;
|
||||||
|
TopExp::MapShapes(aShape, anIndices);
|
||||||
|
|
||||||
|
TopTools_ListIteratorOfListOfShape itSub (listSS);
|
||||||
|
for (int index = 1; itSub.More(); itSub.Next(), ++index) {
|
||||||
|
int id = anIndices.FindIndex(itSub.Value());
|
||||||
|
aSeqOfIDs->Append(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return aSeqOfIDs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : GetShapesOnShapeIDs
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
|
*/
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
Handle(TColStd_HSequenceOfInteger)
|
||||||
|
GEOMImpl_IShapesOperations::GetShapesOnShapeIDs
|
||||||
|
(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aSeqOfIDs =
|
||||||
|
getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState);
|
||||||
|
|
||||||
|
if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// The GetShapesOnShape() doesn't change object so no new function is required.
|
||||||
|
Handle(GEOM_Function) aFunction =
|
||||||
|
GEOM::GetCreatedLast(theShape,theCheckShape)->GetLastFunction();
|
||||||
|
|
||||||
|
// Make a Python command
|
||||||
|
GEOM::TPythonDump(aFunction)
|
||||||
|
<< "listShapesOnBoxIDs = geompy.GetShapesOnShapeIDs("
|
||||||
|
<< theCheckShape << ", "
|
||||||
|
<< theShape << ", "
|
||||||
|
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||||
|
<< theState << ")";
|
||||||
|
|
||||||
|
SetErrorCode(OK);
|
||||||
|
return aSeqOfIDs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : GetShapesOnShape
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfTransient) - found subshapes
|
||||||
|
*/
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
Handle(TColStd_HSequenceOfTransient)
|
||||||
|
GEOMImpl_IShapesOperations::GetShapesOnShape
|
||||||
|
(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aSeqOfIDs =
|
||||||
|
getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState);
|
||||||
|
if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Find objects by indices
|
||||||
|
TCollection_AsciiString anAsciiList;
|
||||||
|
Handle(TColStd_HSequenceOfTransient) aSeq;
|
||||||
|
aSeq = getObjectsShapesOn( theShape, aSeqOfIDs, anAsciiList );
|
||||||
|
|
||||||
|
if ( aSeq.IsNull() || aSeq->IsEmpty() )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Make a Python command
|
||||||
|
|
||||||
|
Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast( aSeq->Value( 1 ));
|
||||||
|
Handle(GEOM_Function) aFunction = anObj->GetLastFunction();
|
||||||
|
|
||||||
|
GEOM::TPythonDump(aFunction)
|
||||||
|
<< "[" << anAsciiList.ToCString() << "] = geompy.GetShapesOnShape("
|
||||||
|
<< theCheckShape << ", "
|
||||||
|
<< theShape << ", "
|
||||||
|
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||||
|
<< theState << ")";
|
||||||
|
|
||||||
|
|
||||||
|
SetErrorCode(OK);
|
||||||
|
return aSeq;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : GetShapesOnShapeAsCompound
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetShapesOnShapeAsCompound
|
||||||
|
(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aSeqOfIDs =
|
||||||
|
getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState);
|
||||||
|
|
||||||
|
if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Find objects by indices
|
||||||
|
TCollection_AsciiString anAsciiList;
|
||||||
|
Handle(TColStd_HSequenceOfTransient) aSeq;
|
||||||
|
aSeq = getObjectsShapesOn( theShape, aSeqOfIDs, anAsciiList );
|
||||||
|
|
||||||
|
if ( aSeq.IsNull() || aSeq->IsEmpty() )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
TopoDS_Compound aCompound;
|
||||||
|
BRep_Builder B;
|
||||||
|
B.MakeCompound(aCompound);
|
||||||
|
int i = 1;
|
||||||
|
for(; i<=aSeq->Length(); i++) {
|
||||||
|
Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast(aSeq->Value(i));
|
||||||
|
TopoDS_Shape aShape_i = anObj->GetValue();
|
||||||
|
B.Add(aCompound,aShape_i);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add a new result object
|
||||||
|
Handle(GEOM_Object) aRes = GetEngine()->AddObject(GetDocID(), GEOM_SHAPES_ON_SHAPE);
|
||||||
|
Handle(GEOM_Function) aFunction =
|
||||||
|
aRes->AddFunction(GEOMImpl_ShapeDriver::GetID(), SHAPES_ON_SHAPE);
|
||||||
|
aFunction->SetValue(aCompound);
|
||||||
|
|
||||||
|
GEOM::TPythonDump(aFunction)
|
||||||
|
<< aRes << " = geompy.GetShapesOnShapeAsCompound("
|
||||||
|
<< theCheckShape << ", "
|
||||||
|
<< theShape << ", "
|
||||||
|
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||||
|
<< theState << ")";
|
||||||
|
|
||||||
|
SetErrorCode(OK);
|
||||||
|
|
||||||
|
return aRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : getShapesOnSurfaceIDs
|
//function : getShapesOnSurfaceIDs
|
||||||
/*!
|
/*!
|
||||||
|
@ -254,13 +254,46 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
* \param theShape - the shape to explore
|
* \param theShape - the shape to explore
|
||||||
* \param theShapeType - type of subshape of theShape
|
* \param theShapeType - type of subshape of theShape
|
||||||
* \param theState - required state
|
* \param theState - required state
|
||||||
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
* \retval Handle(TColStd_HSequenceOfTransient) - found shape objects
|
||||||
*/
|
*/
|
||||||
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
||||||
GetShapesOnBox(const Handle(GEOM_Object)& theBox,
|
GetShapesOnBox(const Handle(GEOM_Object)& theBox,
|
||||||
const Handle(GEOM_Object)& theShape,
|
const Handle(GEOM_Object)& theShape,
|
||||||
const Standard_Integer theShapeType,
|
const Standard_Integer theShapeType,
|
||||||
GEOMAlgo_State theState);
|
GEOMAlgo_State theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find IDs of subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
|
*/
|
||||||
|
Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
|
||||||
|
GetShapesOnShapeIDs(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfTransient) - found shape objects
|
||||||
|
*/
|
||||||
|
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
||||||
|
GetShapesOnShape(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState);
|
||||||
|
Standard_EXPORT Handle(GEOM_Object)
|
||||||
|
GetShapesOnShapeAsCompound(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
@ -298,8 +331,8 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Checks if theShapeType parameter of GetShapesOnXXX() is OK
|
* \brief Checks if theShapeType parameter of GetShapesOnXXX() is OK
|
||||||
* \param theShapeType - the shape type to check
|
* \param theShapeType - the shape type to check
|
||||||
* \retval bool - result of the check
|
* \retval bool - result of the check
|
||||||
*/
|
*/
|
||||||
bool checkTypeShapesOn(const Standard_Integer theShapeType);
|
bool checkTypeShapesOn(const Standard_Integer theShapeType);
|
||||||
|
|
||||||
@ -312,20 +345,20 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Creates Geom_CylindricalSurface
|
* \brief Creates Geom_CylindricalSurface
|
||||||
* \param theAx1 - edge defining cylinder axis
|
* \param theAx1 - edge defining cylinder axis
|
||||||
* \param theRadius - cylinder radius
|
* \param theRadius - cylinder radius
|
||||||
* \retval Handle(Geom_Surface) - resulting surface
|
* \retval Handle(Geom_Surface) - resulting surface
|
||||||
*/
|
*/
|
||||||
Handle(Geom_Surface) makeCylinder(const TopoDS_Shape& theAx1,
|
Handle(Geom_Surface) makeCylinder(const TopoDS_Shape& theAx1,
|
||||||
const Standard_Real theRadius);
|
const Standard_Real theRadius);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Find IDs of subshapes complying with given status about surface
|
* \brief Find IDs of subshapes complying with given status about surface
|
||||||
* \param theSurface - the surface to check state of subshapes against
|
* \param theSurface - the surface to check state of subshapes against
|
||||||
* \param theShape - the shape to explore
|
* \param theShape - the shape to explore
|
||||||
* \param theShapeType - type of subshape of theShape
|
* \param theShapeType - type of subshape of theShape
|
||||||
* \param theState - required state
|
* \param theState - required state
|
||||||
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
*/
|
*/
|
||||||
Handle(TColStd_HSequenceOfInteger)
|
Handle(TColStd_HSequenceOfInteger)
|
||||||
getShapesOnSurfaceIDs(const Handle(Geom_Surface)& theSurface,
|
getShapesOnSurfaceIDs(const Handle(Geom_Surface)& theSurface,
|
||||||
@ -335,12 +368,12 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Find subshapes complying with given status about surface
|
* \brief Find subshapes complying with given status about surface
|
||||||
* \param theSurface - the surface to check state of subshapes against
|
* \param theSurface - the surface to check state of subshapes against
|
||||||
* \param theShape - the shape to explore
|
* \param theShape - the shape to explore
|
||||||
* \param theShapeType - type of subshape of theShape
|
* \param theShapeType - type of subshape of theShape
|
||||||
* \param theState - required state
|
* \param theState - required state
|
||||||
* \param theShapeEntries - outgoing entries like "entry1, entry2, ..."
|
* \param theShapeEntries - outgoing entries like "entry1, entry2, ..."
|
||||||
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
* \retval Handle(TColStd_HSequenceOfTransient) - found shape objects
|
||||||
*/
|
*/
|
||||||
Handle(TColStd_HSequenceOfTransient)
|
Handle(TColStd_HSequenceOfTransient)
|
||||||
getShapesOnSurface(const Handle(Geom_Surface)& theSurface,
|
getShapesOnSurface(const Handle(Geom_Surface)& theSurface,
|
||||||
@ -351,14 +384,14 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Find IDs of subshapes complying with given status about quadrangle
|
* \brief Find IDs of subshapes complying with given status about quadrangle
|
||||||
* \param theShape - the shape to explore
|
* \param theShape - the shape to explore
|
||||||
* \param theShapeType - type of subshape of theShape
|
* \param theShapeType - type of subshape of theShape
|
||||||
* \param theTopLeftPoint - top left quadrangle corner
|
* \param theTopLeftPoint - top left quadrangle corner
|
||||||
* \param theTopRigthPoint - top right quadrangle corner
|
* \param theTopRigthPoint - top right quadrangle corner
|
||||||
* \param theBottomLeftPoint - bottom left quadrangle corner
|
* \param theBottomLeftPoint - bottom left quadrangle corner
|
||||||
* \param theBottomRigthPoint - bottom right quadrangle corner
|
* \param theBottomRigthPoint - bottom right quadrangle corner
|
||||||
* \param theState - required state
|
* \param theState - required state
|
||||||
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
*/
|
*/
|
||||||
Handle(TColStd_HSequenceOfInteger)
|
Handle(TColStd_HSequenceOfInteger)
|
||||||
getShapesOnQuadrangleIDs (const Handle(GEOM_Object)& theShape,
|
getShapesOnQuadrangleIDs (const Handle(GEOM_Object)& theShape,
|
||||||
@ -371,23 +404,37 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Find IDs of subshapes complying with given status about surface
|
* \brief Find IDs of subshapes complying with given status about surface
|
||||||
* \param theBox - the box to check state of subshapes against
|
* \param theBox - the box to check state of subshapes against
|
||||||
* \param theShape - the shape to explore
|
* \param theShape - the shape to explore
|
||||||
* \param theShapeType - type of subshape of theShape
|
* \param theShapeType - type of subshape of theShape
|
||||||
* \param theState - required state
|
* \param theState - required state
|
||||||
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
*/
|
*/
|
||||||
Handle(TColStd_HSequenceOfInteger) getShapesOnBoxIDs(const Handle(GEOM_Object)& theBox,
|
Handle(TColStd_HSequenceOfInteger) getShapesOnBoxIDs(const Handle(GEOM_Object)& theBox,
|
||||||
const Handle(GEOM_Object)& theShape,
|
const Handle(GEOM_Object)& theShape,
|
||||||
const Standard_Integer theShapeType,
|
const Standard_Integer theShapeType,
|
||||||
GEOMAlgo_State theState);
|
GEOMAlgo_State theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Find IDs of subshapes complying with given status about surface
|
||||||
|
* \param theCheckShape - the shape to check state of subshapes against
|
||||||
|
* \param theShape - the shape to explore
|
||||||
|
* \param theShapeType - type of subshape of theShape
|
||||||
|
* \param theState - required state
|
||||||
|
* \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes
|
||||||
|
*/
|
||||||
|
Handle(TColStd_HSequenceOfInteger) getShapesOnShapeIDs
|
||||||
|
(const Handle(GEOM_Object)& theCheckShape,
|
||||||
|
const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
GEOMAlgo_State theState);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Find shape objects and their entries by their ids
|
* \brief Find shape objects and their entries by their ids
|
||||||
* \param theShape - the main shape
|
* \param theShape - the main shape
|
||||||
* \param theShapeIDs - theShapeIDs - incoming shape ids
|
* \param theShapeIDs - theShapeIDs - incoming shape ids
|
||||||
* \param theShapeEntries - outgoing entries like "entry1, entry2, ..."
|
* \param theShapeEntries - outgoing entries like "entry1, entry2, ..."
|
||||||
* \retval Handle(TColStd_HSequenceOfTransient) - found shape objects
|
* \retval Handle(TColStd_HSequenceOfTransient) - found shape objects
|
||||||
*/
|
*/
|
||||||
Handle(TColStd_HSequenceOfTransient)
|
Handle(TColStd_HSequenceOfTransient)
|
||||||
getObjectsShapesOn(const Handle(GEOM_Object)& theShape,
|
getObjectsShapesOn(const Handle(GEOM_Object)& theShape,
|
||||||
@ -396,9 +443,9 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Select the object created last
|
* \brief Select the object created last
|
||||||
* \param theObj1 - Object 1
|
* \param theObj1 - Object 1
|
||||||
* \param theObj2 - Object 2
|
* \param theObj2 - Object 2
|
||||||
* \retval Handle(GEOM_Object) - selected object
|
* \retval Handle(GEOM_Object) - selected object
|
||||||
*/
|
*/
|
||||||
static Handle(GEOM_Object) getCreatedLast(const Handle(GEOM_Object)& theObj1,
|
static Handle(GEOM_Object) getCreatedLast(const Handle(GEOM_Object)& theObj1,
|
||||||
const Handle(GEOM_Object)& theObj2);
|
const Handle(GEOM_Object)& theObj2);
|
||||||
|
@ -83,6 +83,9 @@
|
|||||||
|
|
||||||
#define GEOM_COMPOUNDFILTER 41
|
#define GEOM_COMPOUNDFILTER 41
|
||||||
|
|
||||||
|
#define GEOM_SHAPES_ON_SHAPE 42
|
||||||
|
|
||||||
|
|
||||||
//GEOM_Function types
|
//GEOM_Function types
|
||||||
|
|
||||||
#define COPY_WITH_REF 1
|
#define COPY_WITH_REF 1
|
||||||
@ -249,6 +252,8 @@
|
|||||||
|
|
||||||
#define GROUP_FUNCTION 1
|
#define GROUP_FUNCTION 1
|
||||||
|
|
||||||
|
#define SHAPES_ON_SHAPE 1
|
||||||
|
|
||||||
// Blocks
|
// Blocks
|
||||||
#define BLOCK_FACE_FOUR_PNT 1
|
#define BLOCK_FACE_FOUR_PNT 1
|
||||||
#define BLOCK_FACE_FOUR_EDGES 2
|
#define BLOCK_FACE_FOUR_EDGES 2
|
||||||
|
@ -1290,6 +1290,133 @@ GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnBoxIDs
|
|||||||
return aSeq._retn();
|
return aSeq._retn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnShape
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnShape
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
|
||||||
|
|
||||||
|
//Set a not done flag
|
||||||
|
GetOperations()->SetNotDone();
|
||||||
|
|
||||||
|
if ( theShape == NULL || theCheckShape == NULL )
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
//Get the reference objects
|
||||||
|
Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theShape->GetEntry());
|
||||||
|
Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theCheckShape->GetEntry());
|
||||||
|
|
||||||
|
if (aShape.IsNull() || aCheckShape.IsNull() )
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
//Get Shapes On Shape
|
||||||
|
Handle(TColStd_HSequenceOfTransient) aHSeq = GetOperations()->GetShapesOnShape
|
||||||
|
(aCheckShape,aShape, theShapeType,ShapeState(theState));
|
||||||
|
|
||||||
|
if (!GetOperations()->IsDone() || aHSeq.IsNull())
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
Standard_Integer aLength = aHSeq->Length();
|
||||||
|
aSeq->length(aLength);
|
||||||
|
for (Standard_Integer i = 1; i <= aLength; i++)
|
||||||
|
aSeq[i-1] = GetObject(Handle(GEOM_Object)::DownCast(aHSeq->Value(i)));
|
||||||
|
|
||||||
|
return aSeq._retn();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnShapeAsCompound
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::GetShapesOnShapeAsCompound
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
GEOM::GEOM_Object_var aGEOMObject;
|
||||||
|
|
||||||
|
//Set a not done flag
|
||||||
|
GetOperations()->SetNotDone();
|
||||||
|
|
||||||
|
if ( theShape == NULL || theCheckShape == NULL )
|
||||||
|
return aGEOMObject._retn();
|
||||||
|
|
||||||
|
//Get the reference objects
|
||||||
|
Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theShape->GetEntry());
|
||||||
|
Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theCheckShape->GetEntry());
|
||||||
|
|
||||||
|
if (aShape.IsNull() || aCheckShape.IsNull() )
|
||||||
|
return aGEOMObject._retn();
|
||||||
|
|
||||||
|
//Get Shapes On Shape
|
||||||
|
Handle(GEOM_Object) anObject = GetOperations()->GetShapesOnShapeAsCompound
|
||||||
|
(aCheckShape,aShape, theShapeType,ShapeState(theState));
|
||||||
|
|
||||||
|
if (anObject.IsNull())
|
||||||
|
return aGEOMObject._retn();
|
||||||
|
|
||||||
|
return GetObject(anObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnShapeIDs
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnShapeIDs
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
GEOM::ListOfLong_var aSeq = new GEOM::ListOfLong;
|
||||||
|
|
||||||
|
//Set a not done flag
|
||||||
|
GetOperations()->SetNotDone();
|
||||||
|
|
||||||
|
if ( theShape == NULL || theCheckShape == NULL )
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
//Get the reference objects
|
||||||
|
Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theShape->GetEntry());
|
||||||
|
Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject
|
||||||
|
(theShape->GetStudyID(), theCheckShape->GetEntry());
|
||||||
|
|
||||||
|
if (aShape.IsNull() || aCheckShape.IsNull() )
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
//Get Shapes On Shape
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aHSeq = GetOperations()->GetShapesOnShapeIDs
|
||||||
|
(aCheckShape,aShape, theShapeType,ShapeState(theState));
|
||||||
|
if (!GetOperations()->IsDone() || aHSeq.IsNull())
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
Standard_Integer aLength = aHSeq->Length();
|
||||||
|
aSeq->length(aLength);
|
||||||
|
for (Standard_Integer i = 1; i <= aLength; i++)
|
||||||
|
aSeq[i-1] = aHSeq->Value(i);
|
||||||
|
|
||||||
|
return aSeq._retn();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* GetInPlace
|
* GetInPlace
|
||||||
|
@ -175,6 +175,22 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i :
|
|||||||
CORBA::Long theShapeType,
|
CORBA::Long theShapeType,
|
||||||
GEOM::shape_state theState);
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
GEOM::ListOfGO* GetShapesOnShape (GEOM::GEOM_Object_ptr theSheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound
|
||||||
|
(GEOM::GEOM_Object_ptr theSheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
GEOM::ListOfLong* GetShapesOnShapeIDs (GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere,
|
GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere,
|
||||||
GEOM::GEOM_Object_ptr theShapeWhat);
|
GEOM::GEOM_Object_ptr theShapeWhat);
|
||||||
|
|
||||||
|
@ -1892,6 +1892,7 @@ CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape)
|
|||||||
return aRes;
|
return aRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// ChangeOrientation:
|
// ChangeOrientation:
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -1906,6 +1907,46 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr th
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// GetShapesOnShape:
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::GEOM_List_ptr GEOM_Superv_i::GetShapesOnShape
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
beginService( " GEOM_Superv_i::GetShapesOnShape" );
|
||||||
|
MESSAGE("GEOM_Superv_i::GetShapesOnShape");
|
||||||
|
getShapesOp();
|
||||||
|
GEOM::ListOfGO* aList =
|
||||||
|
myShapesOp->GetShapesOnShape(theCheckShape, theShape, theShapeType, theState);
|
||||||
|
GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
|
||||||
|
MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
|
||||||
|
endService( " GEOM_Superv_i::GetShapesOnShape" );
|
||||||
|
return aListPtr->_this();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// GetShapesOnShapeAsCompound:
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetShapesOnShapeAsCompound
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
beginService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
|
||||||
|
MESSAGE("GEOM_Superv_i::GetShapesOnShapeAsCompound");
|
||||||
|
getShapesOp();
|
||||||
|
GEOM::GEOM_Object_ptr anObj =
|
||||||
|
myShapesOp->GetShapesOnShapeAsCompound(theCheckShape, theShape, theShapeType, theState);
|
||||||
|
endService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
|
||||||
|
return anObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================== BlocksOperations ============================
|
//=============================== BlocksOperations ============================
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// MakeQuad4Vertices:
|
// MakeQuad4Vertices:
|
||||||
|
@ -414,6 +414,17 @@ public:
|
|||||||
CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape);
|
CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape);
|
||||||
GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape);
|
GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape);
|
||||||
|
|
||||||
|
GEOM::GEOM_List_ptr GetShapesOnShape (GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound
|
||||||
|
(GEOM::GEOM_Object_ptr theCheckShape,
|
||||||
|
GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Short theShapeType,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------//
|
//-----------------------------------------------------------//
|
||||||
// BlocksOperations //
|
// BlocksOperations //
|
||||||
//-----------------------------------------------------------//
|
//-----------------------------------------------------------//
|
||||||
|
@ -1107,6 +1107,38 @@ class geompyDC(GEOM._objref_GEOM_Gen):
|
|||||||
RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
|
RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp)
|
||||||
return aList
|
return aList
|
||||||
|
|
||||||
|
## Find in \a theShape all sub-shapes of type \a theShapeType,
|
||||||
|
# situated relatively the specified \a theCheckShape by the
|
||||||
|
# certain way, defined through \a theState parameter.
|
||||||
|
# @param theCheckShape Shape for relative comparing.
|
||||||
|
# @param theShape Shape to find sub-shapes of.
|
||||||
|
# @param theShapeType Type of sub-shapes to be retrieved.
|
||||||
|
# @param theState The state of the subshapes to find. It can be one of
|
||||||
|
# ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
|
||||||
|
# @return List of all found sub-shapes.
|
||||||
|
#
|
||||||
|
def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState):
|
||||||
|
aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
|
||||||
|
theShapeType, theState)
|
||||||
|
RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
|
||||||
|
return aList
|
||||||
|
|
||||||
|
## Works like the above method, but returns result as compound
|
||||||
|
#
|
||||||
|
def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState):
|
||||||
|
anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
|
||||||
|
theShapeType, theState)
|
||||||
|
RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
|
||||||
|
return anObj
|
||||||
|
|
||||||
|
## Works like the above method, but returns list of sub-shapes indices
|
||||||
|
#
|
||||||
|
def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState):
|
||||||
|
aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape,
|
||||||
|
theShapeType, theState)
|
||||||
|
RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp)
|
||||||
|
return aList
|
||||||
|
|
||||||
## Get sub-shape(s) of theShapeWhere, which are
|
## Get sub-shape(s) of theShapeWhere, which are
|
||||||
# coincident with \a theShapeWhat or could be a part of it.
|
# coincident with \a theShapeWhat or could be a part of it.
|
||||||
# @param theShapeWhere Shape to find sub-shapes of.
|
# @param theShapeWhere Shape to find sub-shapes of.
|
||||||
|
@ -39,6 +39,7 @@ dist_libOperationGUI_la_SOURCES = \
|
|||||||
OperationGUI.cxx \
|
OperationGUI.cxx \
|
||||||
OperationGUI_ArchimedeDlg.cxx \
|
OperationGUI_ArchimedeDlg.cxx \
|
||||||
OperationGUI_PartitionDlg.cxx \
|
OperationGUI_PartitionDlg.cxx \
|
||||||
|
OperationGUI_GetShapesOnShapeDlg.cxx \
|
||||||
OperationGUI_FilletDlg.cxx \
|
OperationGUI_FilletDlg.cxx \
|
||||||
OperationGUI_ChamferDlg.cxx \
|
OperationGUI_ChamferDlg.cxx \
|
||||||
OperationGUI_ClippingDlg.cxx
|
OperationGUI_ClippingDlg.cxx
|
||||||
@ -46,6 +47,7 @@ dist_libOperationGUI_la_SOURCES = \
|
|||||||
MOC_FILES = \
|
MOC_FILES = \
|
||||||
OperationGUI_ArchimedeDlg_moc.cxx \
|
OperationGUI_ArchimedeDlg_moc.cxx \
|
||||||
OperationGUI_PartitionDlg_moc.cxx \
|
OperationGUI_PartitionDlg_moc.cxx \
|
||||||
|
OperationGUI_GetShapesOnShapeDlg_moc.cxx \
|
||||||
OperationGUI_FilletDlg_moc.cxx \
|
OperationGUI_FilletDlg_moc.cxx \
|
||||||
OperationGUI_ChamferDlg_moc.cxx \
|
OperationGUI_ChamferDlg_moc.cxx \
|
||||||
OperationGUI_ClippingDlg_moc.cxx
|
OperationGUI_ClippingDlg_moc.cxx
|
||||||
@ -75,6 +77,7 @@ libOperationGUI_la_CPPFLAGS = \
|
|||||||
-I$(srcdir)/../OBJECT \
|
-I$(srcdir)/../OBJECT \
|
||||||
-I$(srcdir)/../GEOMClient \
|
-I$(srcdir)/../GEOMClient \
|
||||||
-I$(srcdir)/../GEOMImpl \
|
-I$(srcdir)/../GEOMImpl \
|
||||||
|
-I$(srcdir)/../GEOMAlgo \
|
||||||
-I$(top_builddir)/idl \
|
-I$(top_builddir)/idl \
|
||||||
-I$(top_builddir)/salome_adm/unix
|
-I$(top_builddir)/salome_adm/unix
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@
|
|||||||
#include "OperationGUI_ArchimedeDlg.h" // Method ARCHIMEDE
|
#include "OperationGUI_ArchimedeDlg.h" // Method ARCHIMEDE
|
||||||
#include "OperationGUI_FilletDlg.h" // Method FILLET
|
#include "OperationGUI_FilletDlg.h" // Method FILLET
|
||||||
#include "OperationGUI_ChamferDlg.h" // Method CHAMFER
|
#include "OperationGUI_ChamferDlg.h" // Method CHAMFER
|
||||||
|
|
||||||
#include "OperationGUI_ClippingDlg.h"
|
#include "OperationGUI_ClippingDlg.h"
|
||||||
|
#include "OperationGUI_GetShapesOnShapeDlg.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -80,6 +80,7 @@ bool OperationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
|
|||||||
case 505: (new OperationGUI_FilletDlg (getGeometryGUI(), parent))->show(); break;
|
case 505: (new OperationGUI_FilletDlg (getGeometryGUI(), parent))->show(); break;
|
||||||
case 506: (new OperationGUI_ChamferDlg (getGeometryGUI(), parent))->show(); break;
|
case 506: (new OperationGUI_ChamferDlg (getGeometryGUI(), parent))->show(); break;
|
||||||
case 507: (new OperationGUI_ClippingDlg (getGeometryGUI(), parent))->show(); break;
|
case 507: (new OperationGUI_ClippingDlg (getGeometryGUI(), parent))->show(); break;
|
||||||
|
case 508: (new OperationGUI_GetShapesOnShapeDlg (getGeometryGUI(), parent))->show(); break;
|
||||||
default:
|
default:
|
||||||
app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
||||||
}
|
}
|
||||||
|
345
src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx
Normal file
345
src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx
Normal file
@ -0,0 +1,345 @@
|
|||||||
|
// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// File : OperationGUI_GetShapesOnShapeDlg.cxx
|
||||||
|
// Author : Lucien PIGNOLONI
|
||||||
|
// Module : GEOM
|
||||||
|
|
||||||
|
#include "OperationGUI_GetShapesOnShapeDlg.h"
|
||||||
|
|
||||||
|
#include "SUIT_Session.h"
|
||||||
|
#include "SalomeApp_Application.h"
|
||||||
|
#include "LightApp_SelectionMgr.h"
|
||||||
|
|
||||||
|
#include <qcombobox.h>
|
||||||
|
#include <qlabel.h>
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
// class : OperationGUI_GetShapesOnShapeDlg()
|
||||||
|
// purpose : Constructs a OperationGUI_GetShapesOnShapeDlg 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.
|
||||||
|
//=================================================================================
|
||||||
|
OperationGUI_GetShapesOnShapeDlg::OperationGUI_GetShapesOnShapeDlg(GeometryGUI* theGeometryGUI,
|
||||||
|
QWidget* parent)
|
||||||
|
:GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_GetShapesOnShapeDlg", false,
|
||||||
|
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
|
||||||
|
{
|
||||||
|
|
||||||
|
SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr();
|
||||||
|
QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_SHAPES_ON_SHAPE")));
|
||||||
|
QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
|
||||||
|
|
||||||
|
setCaption(tr("GEOM_SHAPES_ON_SHAPE_TITLE"));
|
||||||
|
|
||||||
|
GroupConstructors->setTitle(tr("GEOM_SHAPES_ON_SHAPE"));
|
||||||
|
|
||||||
|
RadioButton1->setPixmap(image0);
|
||||||
|
RadioButton2->close(TRUE);
|
||||||
|
RadioButton3->close(TRUE);
|
||||||
|
|
||||||
|
GroupPoints = new DlgRef_2Sel2List_QTD(this, "GroupPoints");
|
||||||
|
//GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION"));
|
||||||
|
GroupPoints->GroupBox1->setTitle("Input data");
|
||||||
|
GroupPoints->TextLabel1->setText(tr("GEOM_SHAPES_ON_SHAPE_ESHAPE"));
|
||||||
|
GroupPoints->TextLabel2->setText(tr("GEOM_SHAPES_ON_SHAPE_CSHAPE"));
|
||||||
|
GroupPoints->TextLabel3->setText(tr("GEOM_RECONSTRUCTION_LIMIT"));
|
||||||
|
GroupPoints->TextLabel4->setText(tr("GEOM_SHAPES_ON_SHAPE_STATE"));
|
||||||
|
GroupPoints->PushButton1->setPixmap(image2);
|
||||||
|
GroupPoints->PushButton2->setPixmap(image2);
|
||||||
|
GroupPoints->LineEdit1->setReadOnly( true );
|
||||||
|
GroupPoints->LineEdit2->setReadOnly( true );
|
||||||
|
|
||||||
|
Layout1->addWidget(GroupPoints, 2, 0);
|
||||||
|
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : ~OperationGUI_GetShapesOnShapeDlg
|
||||||
|
// purpose : Destroys the object and frees any allocated resources
|
||||||
|
//=================================================================================
|
||||||
|
OperationGUI_GetShapesOnShapeDlg::~OperationGUI_GetShapesOnShapeDlg()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : Init()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::Init()
|
||||||
|
{
|
||||||
|
/* type for sub shape selection */
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SOLID"));
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SHELL"));
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_FACE"));
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_WIRE"));
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_EDGE"));
|
||||||
|
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_VERTEX"));
|
||||||
|
|
||||||
|
/* type for state selection */
|
||||||
|
GroupPoints->ComboBox2->insertItem(tr("GEOM_STATE_IN"));
|
||||||
|
GroupPoints->ComboBox2->insertItem(tr("GEOM_STATE_OUT"));
|
||||||
|
GroupPoints->ComboBox2->insertItem(tr("GEOM_STATE_ON"));
|
||||||
|
GroupPoints->ComboBox2->insertItem(tr("GEOM_STATE_ONIN"));
|
||||||
|
GroupPoints->ComboBox2->insertItem(tr("GEOM_STATE_ONOUT"));
|
||||||
|
|
||||||
|
GroupPoints->LineEdit1->clear();
|
||||||
|
GroupPoints->LineEdit2->clear();
|
||||||
|
|
||||||
|
/* signals and slots connections */
|
||||||
|
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
|
||||||
|
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
|
||||||
|
|
||||||
|
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||||
|
connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||||
|
|
||||||
|
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||||
|
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||||
|
|
||||||
|
connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged()));
|
||||||
|
connect(GroupPoints->ComboBox2, SIGNAL(activated(int)), this, SLOT(ComboTextChanged()));
|
||||||
|
|
||||||
|
connect(myGeomGUI->getApp()->selectionMgr(),
|
||||||
|
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||||
|
|
||||||
|
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||||
|
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
|
||||||
|
|
||||||
|
globalSelection( GEOM_ALLSHAPES );
|
||||||
|
|
||||||
|
initName( GroupConstructors->title() );
|
||||||
|
|
||||||
|
resize(0, 0);
|
||||||
|
GroupPoints->TextLabel3->show();
|
||||||
|
GroupPoints->ComboBox1->show();
|
||||||
|
GroupPoints->ComboBox1->setCurrentItem(0);
|
||||||
|
GroupPoints->ComboBox2->show();
|
||||||
|
GroupPoints->ComboBox2->setCurrentItem(0);
|
||||||
|
|
||||||
|
myEditCurrentArgument = GroupPoints->LineEdit1;
|
||||||
|
myEditCurrentArgument->setFocus();
|
||||||
|
connect(myGeomGUI->getApp()->selectionMgr(),
|
||||||
|
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : ClickOnOk()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::ClickOnOk()
|
||||||
|
{
|
||||||
|
if ( ClickOnApply() )
|
||||||
|
ClickOnCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : ClickOnApply()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
bool OperationGUI_GetShapesOnShapeDlg::ClickOnApply()
|
||||||
|
{
|
||||||
|
if ( !onAccept() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
initName();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : SelectionIntoArgument()
|
||||||
|
// purpose : Called when selection has changed
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::SelectionIntoArgument()
|
||||||
|
{
|
||||||
|
myEditCurrentArgument->setText( "" );
|
||||||
|
QString aString = "";
|
||||||
|
|
||||||
|
int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
|
||||||
|
|
||||||
|
if(nbSel>0) {
|
||||||
|
Standard_Boolean aRes = Standard_False;
|
||||||
|
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
|
||||||
|
if ( !CORBA::is_nil( aSelectedObject ) && aRes && GEOMBase::IsShape( aSelectedObject ) ) {
|
||||||
|
{
|
||||||
|
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
|
||||||
|
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myObject1 = aSelectedObject;
|
||||||
|
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myObject2 = aSelectedObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
myEditCurrentArgument->setText( aString );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : SetEditCurrentArgument()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::SetEditCurrentArgument()
|
||||||
|
{
|
||||||
|
QPushButton* send = (QPushButton*)sender();
|
||||||
|
|
||||||
|
if ( send == GroupPoints->PushButton1 ) myEditCurrentArgument = GroupPoints->LineEdit1;
|
||||||
|
else if ( send == GroupPoints->PushButton2 ) myEditCurrentArgument = GroupPoints->LineEdit2;
|
||||||
|
|
||||||
|
myEditCurrentArgument->setFocus();
|
||||||
|
SelectionIntoArgument();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : LineEditReturnPressed()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::LineEditReturnPressed()
|
||||||
|
{
|
||||||
|
QLineEdit* send = (QLineEdit*)sender();
|
||||||
|
if ( send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2 )
|
||||||
|
{
|
||||||
|
myEditCurrentArgument = send;
|
||||||
|
GEOMBase_Skeleton::LineEditReturnPressed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : ActivateThisDialog()
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::ActivateThisDialog()
|
||||||
|
{
|
||||||
|
GEOMBase_Skeleton::ActivateThisDialog();
|
||||||
|
globalSelection( GEOM_ALLSHAPES );
|
||||||
|
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||||
|
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : enterEvent()
|
||||||
|
// purpose : when mouse enter onto the QWidget
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::enterEvent(QEvent * e)
|
||||||
|
{
|
||||||
|
if ( !GroupConstructors->isEnabled() )
|
||||||
|
ActivateThisDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : createOperation
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
GEOM::GEOM_IOperations_ptr OperationGUI_GetShapesOnShapeDlg::createOperation()
|
||||||
|
{
|
||||||
|
return getGeomEngine()->GetIShapesOperations( getStudyId() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : isValid
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
bool OperationGUI_GetShapesOnShapeDlg::isValid( QString& msg )
|
||||||
|
{
|
||||||
|
Handle(SALOME_InteractiveObject) IO = firstIObject();
|
||||||
|
Standard_Boolean testResult;
|
||||||
|
GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
|
||||||
|
if ( !testResult || anObject->_is_nil() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return !CORBA::is_nil( myObject1 ) && !CORBA::is_nil( myObject2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : execute
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
bool OperationGUI_GetShapesOnShapeDlg::execute( ObjectList& objects )
|
||||||
|
{
|
||||||
|
int aLimit = GroupPoints->ComboBox1->currentItem();
|
||||||
|
switch (aLimit)
|
||||||
|
{
|
||||||
|
case 0: aLimit = GEOM::SOLID ; break;
|
||||||
|
case 1: aLimit = GEOM::SHELL ; break;
|
||||||
|
case 2: aLimit = GEOM::FACE ; break;
|
||||||
|
case 3: aLimit = GEOM::WIRE ; break;
|
||||||
|
case 4: aLimit = GEOM::EDGE ; break;
|
||||||
|
case 5: aLimit = GEOM::VERTEX; break;
|
||||||
|
default: aLimit = GEOM::SHAPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
GEOM::shape_state aState;
|
||||||
|
switch (GroupPoints->ComboBox2->currentItem())
|
||||||
|
{
|
||||||
|
case 0: aState = GEOM::ST_IN; break;
|
||||||
|
case 1: aState = GEOM::ST_OUT; break;
|
||||||
|
case 2: aState = GEOM::ST_ON; break;
|
||||||
|
case 3: aState = GEOM::ST_ONIN; break;
|
||||||
|
case 4: aState = GEOM::ST_ONOUT; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::
|
||||||
|
_narrow( getOperation() )->GetShapesOnShapeAsCompound(myObject2, myObject1,
|
||||||
|
(CORBA::Short) aLimit,
|
||||||
|
aState);
|
||||||
|
|
||||||
|
if (!anObj->_is_nil())
|
||||||
|
objects.push_back( anObj._retn() );
|
||||||
|
|
||||||
|
return objects.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : closeEvent
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::closeEvent( QCloseEvent* e )
|
||||||
|
{
|
||||||
|
GEOMBase_Skeleton::closeEvent( e );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : ComboTextChanged
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
|
void OperationGUI_GetShapesOnShapeDlg::ComboTextChanged()
|
||||||
|
{
|
||||||
|
bool IsEnabled = GroupPoints->ComboBox1->currentItem() < 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
77
src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h
Normal file
77
src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// File : OperationGUI_GetShapesOnShapeDlg.h
|
||||||
|
// Author : Lucien PIGNOLONI
|
||||||
|
// Module : GEOM
|
||||||
|
|
||||||
|
#ifndef DIALOGBOX_GETSHAPESONSHAPE_H
|
||||||
|
#define DIALOGBOX_GETSHAPESONSHAPE_H
|
||||||
|
|
||||||
|
#include "GEOMBase_Skeleton.h"
|
||||||
|
#include "DlgRef_2Sel2List_QTD.h"
|
||||||
|
#include "GEOMAlgo_State.hxx"
|
||||||
|
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// class : OperationGUI_GetShapesOnShapeDlg
|
||||||
|
// purpose :
|
||||||
|
//=================================================================================
|
||||||
|
class OperationGUI_GetShapesOnShapeDlg : public GEOMBase_Skeleton
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
OperationGUI_GetShapesOnShapeDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0);
|
||||||
|
~OperationGUI_GetShapesOnShapeDlg();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// redefined from GEOMBase_Helper
|
||||||
|
virtual GEOM::GEOM_IOperations_ptr createOperation();
|
||||||
|
virtual bool isValid( QString& );
|
||||||
|
virtual bool execute( ObjectList& objects );
|
||||||
|
|
||||||
|
virtual void closeEvent( QCloseEvent* e );
|
||||||
|
|
||||||
|
private:
|
||||||
|
void Init();
|
||||||
|
void enterEvent(QEvent * e);
|
||||||
|
|
||||||
|
GEOM::GEOM_Object_var myObject1;
|
||||||
|
GEOM::GEOM_Object_var myObject2;
|
||||||
|
int myShapeType;
|
||||||
|
GEOMAlgo_State myState;
|
||||||
|
|
||||||
|
DlgRef_2Sel2List_QTD* GroupPoints;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void ClickOnOk();
|
||||||
|
bool ClickOnApply();
|
||||||
|
void SetEditCurrentArgument();
|
||||||
|
void SelectionIntoArgument();
|
||||||
|
void LineEditReturnPressed();
|
||||||
|
void ActivateThisDialog();
|
||||||
|
void ComboTextChanged();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DIALOGBOX_GETSHAPESONSHAPE_H
|
Loading…
Reference in New Issue
Block a user