Merge remote branch 'origin/hydro/imps_2015'

This commit is contained in:
vsr 2016-10-21 12:20:48 +03:00
commit ec168c32f8
8 changed files with 134 additions and 28 deletions

View File

@ -35,7 +35,7 @@ BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = NO REPEAT_BRIEF = NO
ABBREVIATE_BRIEF = ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = YES INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES FULL_PATH_NAMES = YES
STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@ STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@
STRIP_FROM_INC_PATH = STRIP_FROM_INC_PATH =
@ -47,8 +47,8 @@ INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 5 TAB_SIZE = 5
ALIASES = ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = YES OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = @DOXYGEN_SUPPORT_STL@ BUILTIN_STL_SUPPORT = @DOXYGEN_SUPPORT_STL@
DISTRIBUTE_GROUP_DOC = NO DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES SUBGROUPING = YES
@ -60,7 +60,7 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO EXTRACT_LOCAL_METHODS = YES
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
@ -70,16 +70,16 @@ CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES INLINE_INFO = YES
SORT_MEMBER_DOCS = NO SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = YES GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 25 MAX_INITIALIZER_LINES = 25
SHOW_USED_FILES = NO SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
@ -105,11 +105,12 @@ INPUT = @PROJECT_SOURCE_DIR@/src \
@CMAKE_CURRENT_SOURCE_DIR@/input @CMAKE_CURRENT_SOURCE_DIR@/input
FILE_PATTERNS = *.idl *.hxx *.cxx *.h *.c *.hh *.cc @DOXYGEN_PYTHON_EXTENSION@ *.doc FILE_PATTERNS = *.idl *.hxx *.cxx *.h *.c *.hh *.cc @DOXYGEN_PYTHON_EXTENSION@ *.doc
RECURSIVE = YES RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO EXAMPLE_RECURSIVE = YES
IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
INPUT_FILTER = INPUT_FILTER =
FILTER_PATTERNS = FILTER_PATTERNS =
@ -152,7 +153,7 @@ TOC_EXPAND = YES
DISABLE_INDEX = NO DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4 ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250 TREEVIEW_WIDTH = 300
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # configuration options related to the LaTeX output
@ -214,7 +215,7 @@ PERLMOD_MAKEVAR_PREFIX =
# Configuration options related to the preprocessor # Configuration options related to the preprocessor
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = INCLUDE_PATH =
@ -240,14 +241,14 @@ HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES HAVE_DOT = YES
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO GROUP_GRAPHS = YES
UML_LOOK = NO UML_LOOK = YES
TEMPLATE_RELATIONS = YES TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png DOT_IMAGE_FORMAT = png
DOT_FONTNAME = Arial DOT_FONTNAME = Arial
DOT_PATH = DOT_PATH =
@ -257,10 +258,10 @@ MAX_DOT_GRAPH_HEIGHT = 1200
MAX_DOT_GRAPH_DEPTH = 0 MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = NO GENERATE_LEGEND = YES
DOT_CLEANUP = YES DOT_CLEANUP = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::additions related to the search engine # Configuration::additions related to the search engine
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SEARCHENGINE = NO SEARCHENGINE = YES

View File

@ -281,6 +281,7 @@ SET( _res_files
closedspline.png closedspline.png
edit_points.png edit_points.png
join2.png join2.png
bringTogether.png
new_point.png new_point.png
new_section.png new_section.png
# ADVANCED_RESOURCES: # ADVANCED_RESOURCES:

BIN
resources/bringTogether.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

View File

@ -101,14 +101,15 @@ CurveCreator_TableView::CurveCreator_TableView( CurveCreator_ICurve* theCurve,
{ {
setItemDelegate( new CurveCreator_TableItemDelegate( this ) ); setItemDelegate( new CurveCreator_TableItemDelegate( this ) );
setVisible( false ); setVisible( false );
setColumnCount( 4 ); setColumnCount( 5 );
setColumnWidth( 0, SECTION_NAME_COLUMN_WIDTH ); setColumnWidth( 0, SECTION_NAME_COLUMN_WIDTH );
setColumnWidth( 1, POINT_INDEX_COLUMN_WIDTH ); setColumnWidth( 1, POINT_INDEX_COLUMN_WIDTH );
QStringList aLabels; QStringList aLabels;
QString aCoord1 = theCoordTitles.size() > 0 ? theCoordTitles[0] : tr( "TABLE_X" ); // tr( "X_POSITION_LBL" ) QString aCoord1 = theCoordTitles.size() > 0 ? theCoordTitles[0] : tr( "TABLE_X" ); // tr( "X_POSITION_LBL" )
QString aCoord2 = theCoordTitles.size() > 1 ? theCoordTitles[1] : tr( "TABLE_Y" ); // tr( "Y_POSITION_LBL" ) QString aCoord2 = theCoordTitles.size() > 1 ? theCoordTitles[1] : tr( "TABLE_Y" ); // tr( "Y_POSITION_LBL" )
QString aDistance = theCoordTitles.size() > 2 ? theCoordTitles[2] : tr( "DISTANCE_PREV" );
//aLabels << tr( "SECTION_LABEL" ) << tr( "IDENTIFIER_LABEL" ) << aCoord1 << aCoord2; //aLabels << tr( "SECTION_LABEL" ) << tr( "IDENTIFIER_LABEL" ) << aCoord1 << aCoord2;
aLabels << tr( "TABLE_SECTION" ) << tr("TABLE_INDEX") << aCoord1 << aCoord2; aLabels << tr( "TABLE_SECTION" ) << tr("TABLE_INDEX") << aCoord1 << aCoord2 << aDistance;
setHorizontalHeaderLabels( aLabels ); setHorizontalHeaderLabels( aLabels );
connect( horizontalHeader(), SIGNAL( sectionClicked( int ) ), this, SLOT( OnHeaderClick( int ) ) ); connect( horizontalHeader(), SIGNAL( sectionClicked( int ) ), this, SLOT( OnHeaderClick( int ) ) );
@ -125,6 +126,8 @@ void CurveCreator_TableView::setLocalPointsToTable(
setRowCount( thePoints.size() ); setRowCount( thePoints.size() );
int aRowId = 0; int aRowId = 0;
double prevX=0;
double prevY=0;
CurveCreator_ICurve::SectionToPointList::const_iterator anIt = thePoints.begin(), CurveCreator_ICurve::SectionToPointList::const_iterator anIt = thePoints.begin(),
aLast = thePoints.end(); aLast = thePoints.end();
for ( ; anIt != aLast; anIt++ ) { for ( ; anIt != aLast; anIt++ ) {
@ -153,7 +156,7 @@ void CurveCreator_TableView::setLocalPointsToTable(
setItem( aRowId, 2, anItem ); setItem( aRowId, 2, anItem );
} }
anItem->setData( Qt::UserRole, aPoint.X() ); anItem->setData( Qt::UserRole, aPoint.X() );
anItem->setData( Qt::DisplayRole, QString::number( aPoint.X(), 'f', 2 ).toDouble() ); anItem->setData( Qt::DisplayRole, QString::number( aPoint.X(), 'f', 3 ).toDouble() );
anItem = item( aRowId, 3 ); anItem = item( aRowId, 3 );
if ( !anItem ) { if ( !anItem ) {
@ -161,7 +164,20 @@ void CurveCreator_TableView::setLocalPointsToTable(
setItem( aRowId, 3, anItem ); setItem( aRowId, 3, anItem );
} }
anItem->setData( Qt::UserRole, aPoint.Y() ); anItem->setData( Qt::UserRole, aPoint.Y() );
anItem->setData( Qt::DisplayRole, QString::number( aPoint.Y(), 'f', 2 ).toDouble() ); anItem->setData( Qt::DisplayRole, QString::number( aPoint.Y(), 'f', 3 ).toDouble() );
anItem = item( aRowId, 4 );
if ( !anItem ) {
anItem = new QTableWidgetItem();
setItem( aRowId, 4, anItem );
}
double d=0;
if (aRowId>0)
d=sqrt((aPoint.X()-prevX)* (aPoint.X()-prevX) + (aPoint.Y()-prevY)* (aPoint.Y()-prevY));
anItem->setData( Qt::UserRole, d );
anItem->setData( Qt::DisplayRole, QString::number( d, 'f', 6 ).toDouble() );
prevX = aPoint.X();
prevY = aPoint.Y();
aRowId++; aRowId++;
} }

View File

@ -48,6 +48,8 @@
#include <QTime> #include <QTime>
#include <QSplitter> #include <QSplitter>
#include <utilities.h>
//#define MEASURE_TIME //#define MEASURE_TIME
#ifdef MEASURE_TIME #ifdef MEASURE_TIME
@ -118,6 +120,7 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
QPixmap aSplinePixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_SPLINE"))); QPixmap aSplinePixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_SPLINE")));
QPixmap aRemovePixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_DELETE"))); QPixmap aRemovePixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_DELETE")));
QPixmap aJoinPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_JOIN"))); QPixmap aJoinPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_JOIN")));
QPixmap aBringTogetherPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_BRING_TOGETHER")));
QPixmap aStepUpPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_ARROW_UP"))); QPixmap aStepUpPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_ARROW_UP")));
QPixmap aStepDownPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_ARROW_DOWN"))); QPixmap aStepDownPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_ARROW_DOWN")));
@ -160,9 +163,9 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
anAct->setCheckable(true); anAct->setCheckable(true);
connect(anAct, SIGNAL(triggered(bool)), this, SLOT(onDetectionMode(bool)) ); connect(anAct, SIGNAL(triggered(bool)), this, SLOT(onDetectionMode(bool)) );
connect(anAct, SIGNAL(toggled(bool)), this, SLOT(onModeChanged(bool)) ); connect(anAct, SIGNAL(toggled(bool)), this, SLOT(onModeChanged(bool)) );
if ( !(theActionFlags & DisableDetectionMode) ) { // if ( !(theActionFlags & DisableDetectionMode) ) {
aTB->addAction(anAct); // aTB->addAction(anAct);
} // }
anAct = createAction( CLOSE_SECTIONS_ID, tr("CLOSE_SECTIONS"), QPixmap(), tr("CLOSE_SECTIONS_TLT"), anAct = createAction( CLOSE_SECTIONS_ID, tr("CLOSE_SECTIONS"), QPixmap(), tr("CLOSE_SECTIONS_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_W) ); QKeySequence(Qt::ControlModifier|Qt::Key_W) );
@ -181,18 +184,23 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
tr("SET_SECTIONS_SPLINE_TLT"), QKeySequence(Qt::ControlModifier|Qt::Key_R) ); tr("SET_SECTIONS_SPLINE_TLT"), QKeySequence(Qt::ControlModifier|Qt::Key_R) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onSetSpline()) ); connect(anAct, SIGNAL(triggered()), this, SLOT(onSetSpline()) );
aTB->addSeparator();
anAct = createAction( REMOVE_ID, tr("REMOVE"), aRemovePixmap, tr("REMOVE_TLT"), anAct = createAction( REMOVE_ID, tr("REMOVE"), aRemovePixmap, tr("REMOVE_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Delete ) ); QKeySequence(Qt::ControlModifier|Qt::Key_Delete ) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onRemove()) ); connect(anAct, SIGNAL(triggered()), this, SLOT(onRemove()) );
aTB->addAction(anAct); aTB->addAction(anAct);
aTB->addSeparator();
anAct = createAction( JOIN_ID, tr("JOIN"), aJoinPixmap, tr("JOIN_TLT"), anAct = createAction( JOIN_ID, tr("JOIN"), aJoinPixmap, tr("JOIN_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Plus ) ); QKeySequence(Qt::ControlModifier|Qt::Key_Plus ) );
connect( anAct, SIGNAL(triggered()), this, SLOT(onJoin()) ); connect( anAct, SIGNAL(triggered()), this, SLOT(onJoin()) );
aTB->addAction(anAct); aTB->addAction(anAct);
anAct = createAction( BRING_TOGETHER_ID, tr("BRING_TOGETHER"), aBringTogetherPixmap, tr("BRING_TOGETHER_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Equal ) );
connect( anAct, SIGNAL(triggered()), this, SLOT(onBringTogether()) );
aTB->addAction(anAct);
anAct = createAction( CLEAR_ALL_ID, tr("CLEAR_ALL"), QPixmap(), tr("CLEAR_ALL_TLT"), anAct = createAction( CLEAR_ALL_ID, tr("CLEAR_ALL"), QPixmap(), tr("CLEAR_ALL_TLT"),
QKeySequence(Qt::ControlModifier | Qt::ShiftModifier | Qt::Key_Delete ) ); QKeySequence(Qt::ControlModifier | Qt::ShiftModifier | Qt::Key_Delete ) );
connect( anAct, SIGNAL(triggered()), this, SLOT( onClearAll()) ); connect( anAct, SIGNAL(triggered()), this, SLOT( onClearAll()) );
@ -383,7 +391,7 @@ void CurveCreator_Widget::updateActionsStates()
if( aSectCnt > 1 ) if( aSectCnt > 1 )
anEnabledAct << JOIN_ALL_ID; anEnabledAct << JOIN_ALL_ID;
if( aSelSections.size() > 1 ){ if( aSelSections.size() > 1 ){
anEnabledAct << JOIN_ID; anEnabledAct << JOIN_ID << BRING_TOGETHER_ID;
} }
} }
break; break;
@ -974,6 +982,68 @@ void CurveCreator_Widget::addCoordsByClick( QMouseEvent* pe )
} }
} }
/**
* Set the same coordinates on two section extremities.
* Usage: build a closed contour with several sections.
* Works with two points selected, at the extremities of different sections.
* The second point gets the coordinates of the first.
*/
void CurveCreator_Widget::onBringTogether()
{
MESSAGE("onBringTogether");
ActionMode aMode = getActionMode();
if ( aMode != ModificationMode )
return;
int nbPoints = myLocalPoints.size();
MESSAGE("number of selected points: " << nbPoints);
if (nbPoints != 2)
{
MESSAGE("works only with two points taken at the extremities of different sections, nothing done");
return;
}
CurveCreator_ICurve::SectionToPointList::const_iterator anIt = myLocalPoints.begin(),
aLast = myLocalPoints.end();
std::vector<int> sections(nbPoints);
std::vector<int> iPoints(nbPoints);
std::vector<int> nbPtsSection(nbPoints);
std::vector<double> x(nbPoints);
std::vector<double> y(nbPoints);
int i = 0;
for ( ; anIt != aLast; anIt++, i++ )
{
CurveCreator_ICurve::SectionToPoint aSPoint = *anIt;
sections[i] = aSPoint.first;
iPoints[i] = aSPoint.second;
nbPtsSection[i] = myCurve->getNbPoints(sections[i]);
if ((iPoints[i] != 0) && (iPoints[i] != nbPtsSection[i]-1))
{
MESSAGE("a point is not on a section extremity, nothing done");
return;
}
gp_Pnt aPoint;
CurveCreator_UtilsICurve::getPoint( myCurve, sections[i], iPoints[i], aPoint );
x[i] = aPoint.X();
y[i] = aPoint.Y();
MESSAGE("point: " << sections[i] << " " << iPoints[i] << " " << x[i] << " " << y[i]);
}
if (sections[1] == sections[0])
{
MESSAGE("the two points must be at the extremities of different sections, nothing done");
return;
}
CurveCreator_ICurve::SectionToPointList aSelPoints;
startCurveModification( aSelPoints );
CurveCreator::Coordinates aChangedPos;
aChangedPos.push_back( x[0] ); // apply the first point coordinates to the second point.
aChangedPos.push_back( y[0] );
myCurve->setPoint( sections[1], iPoints[1], aChangedPos );
finishCurveModification( aSelPoints );
}
/** /**
* Manage mouse press events * Manage mouse press events
* \param theWindow an owner of the signal * \param theWindow an owner of the signal

View File

@ -114,6 +114,7 @@ protected slots:
void onModifySection(); void onModifySection();
void onCancelSection(); void onCancelSection();
void onJoin(); void onJoin();
void onBringTogether();
void onRemove(); void onRemove();
void onClearAll(); void onClearAll();
void onJoinAll(); void onJoinAll();
@ -157,7 +158,8 @@ protected:
CLEAR_ALL_ID, CLEAR_ALL_ID,
SEPARATOR_ID, SEPARATOR_ID,
MODIFICATION_MODE_ID, MODIFICATION_MODE_ID,
DETECTION_MODE_ID DETECTION_MODE_ID,
BRING_TOGETHER_ID
}; };
private: private:

View File

@ -27,6 +27,10 @@
<source>ICON_CC_JOIN</source> <source>ICON_CC_JOIN</source>
<translation>join2.png</translation> <translation>join2.png</translation>
</message> </message>
<message>
<source>ICON_CC_BRING_TOGETHER</source>
<translation>bringTogether.png</translation>
</message>
<message> <message>
<source>ICON_CC_NEW_POINT</source> <source>ICON_CC_NEW_POINT</source>
<translation>new_point.png</translation> <translation>new_point.png</translation>

View File

@ -5836,6 +5836,10 @@ shells and solids on the other hand.</translation>
<source>TABLE_Y</source> <source>TABLE_Y</source>
<translation>Y</translation> <translation>Y</translation>
</message> </message>
<message>
<source>DISTANCE_PREV</source>
<translation>Distance</translation>
</message>
</context> </context>
<context> <context>
<name>CurveCreator_Widget</name> <name>CurveCreator_Widget</name>
@ -5938,8 +5942,16 @@ shells and solids on the other hand.</translation>
<message> <message>
<source>JOIN_TLT</source> <source>JOIN_TLT</source>
<translation>Join selected sections</translation> <translation>Join selected sections</translation>
</message>
<message>
<source>BRING_TOGETHER</source>
<translation>Bring together</translation>
</message> </message>
<message> <message>
<source>BRING_TOGETHER_TLT</source>
<translation>Bring together two points on the extremities of two sections</translation>
</message>
<message>
<source>CLEAR_ALL</source> <source>CLEAR_ALL</source>
<translation>Clear all</translation> <translation>Clear all</translation>
</message> </message>