Merge branch 'V7_dev' into V8_0_0_BR

This commit is contained in:
vsr 2016-01-25 16:27:41 +03:00
commit 6e0a5f1b44
9 changed files with 99 additions and 44 deletions

View File

@ -2654,7 +2654,8 @@ module GEOM
* 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.
* \param theShapeWhat Shape, specifying what to find. * \param theShapeWhat Shape, specifying what to find.
* \return Group of all found sub-shapes or a single found sub-shape. * \return Compound which includes all found sub-shapes if they have different types;
* or group of all found shapes of the equal type; or a single found sub-shape.
*/ */
GEOM_Object GetInPlace (in GEOM_Object theShapeWhere, GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat); in GEOM_Object theShapeWhat);
@ -2677,7 +2678,8 @@ module GEOM
* *
* \param theShapeWhere Shape to find sub-shapes of. * \param theShapeWhere Shape to find sub-shapes of.
* \param theShapeWhat Shape, specifying what to find. * \param theShapeWhat Shape, specifying what to find.
* \return Group of all found sub-shapes or a single found sub-shape. * \return Compound which includes all found sub-shapes if they have different types;
* or group of all found shapes of the equal type; or a single found sub-shape.
*/ */
GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere, GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat); in GEOM_Object theShapeWhat);

View File

@ -37,6 +37,11 @@
#include <TopoDS_Face.hxx> #include <TopoDS_Face.hxx>
#include <TopoDS_Wire.hxx> #include <TopoDS_Wire.hxx>
#include <Prs3d_PointAspect.hxx>
#include <Handle_Prs3d_PointAspect.hxx>
#include <iostream>
#define DEBTRACE(msg) {std::cerr<<std::flush<<__FILE__<<" ["<<__LINE__<<"] : "<<msg<<std::endl<<std::flush;}
#include <stdio.h> #include <stdio.h>
//======================================================================= //=======================================================================
@ -247,6 +252,7 @@ void CurveCreator_Curve::getCoordinates( int theISection, int theIPoint, double&
void CurveCreator_Curve::redisplayCurve() void CurveCreator_Curve::redisplayCurve()
{ {
//DEBTRACE("redisplayCurve");
if( myDisplayer ) { if( myDisplayer ) {
myDisplayer->eraseAll( false ); myDisplayer->eraseAll( false );
myAISShape = NULL; myAISShape = NULL;
@ -779,6 +785,7 @@ bool CurveCreator_Curve::addPoints( const CurveCreator::Coordinates& theCoords,
const int theISection, const int theISection,
const int theIPnt ) const int theIPnt )
{ {
//DEBTRACE("addPoints");
bool res = false; bool res = false;
CurveCreator::Coordinates aCoords = theCoords; CurveCreator::Coordinates aCoords = theCoords;
// Set the difference. // Set the difference.
@ -834,6 +841,7 @@ bool CurveCreator_Curve::setPoint( const int theISection,
const int theIPnt, const int theIPnt,
const CurveCreator::Coordinates& theNewCoords ) const CurveCreator::Coordinates& theNewCoords )
{ {
//DEBTRACE("setPoint");
bool res = false; bool res = false;
// Set the difference. // Set the difference.
startOperation(); startOperation();
@ -862,6 +870,7 @@ bool CurveCreator_Curve::setPoint( const int theISection,
bool CurveCreator_Curve::setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords, bool CurveCreator_Curve::setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords,
const bool theIsToSaveDiff ) const bool theIsToSaveDiff )
{ {
//DEBTRACE("setSeveralPoints");
bool res = false; bool res = false;
// Set the difference. // Set the difference.
startOperation(); startOperation();
@ -950,6 +959,7 @@ bool CurveCreator_Curve::removeSeveralPoints( const SectionToPointList &theSecti
CurveCreator::Coordinates CurveCreator_Curve::getPoint( const int theISection, CurveCreator::Coordinates CurveCreator_Curve::getPoint( const int theISection,
const int theIPnt) const const int theIPnt) const
{ {
//DEBTRACE("getPoint");
CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection ); CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection );
CurveCreator::Coordinates::const_iterator CurveCreator::Coordinates::const_iterator
anIter = aSection->myPoints.begin() + toICoord(theIPnt); anIter = aSection->myPoints.begin() + toICoord(theIPnt);
@ -964,20 +974,29 @@ CurveCreator::Coordinates CurveCreator_Curve::getPoint( const int theISection,
//======================================================================= //=======================================================================
CurveCreator::Coordinates CurveCreator_Curve::getPoints( const int theISection ) const CurveCreator::Coordinates CurveCreator_Curve::getPoints( const int theISection ) const
{ {
//DEBTRACE("getPoints");
CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection ); CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection );
return aSection ? aSection->myPoints : CurveCreator::Coordinates(); return aSection ? aSection->myPoints : CurveCreator::Coordinates();
} }
void CurveCreator_Curve::constructAISObject() void CurveCreator_Curve::constructAISObject()
{ {
//DEBTRACE("constructAISObject");
TopoDS_Shape aShape; TopoDS_Shape aShape;
CurveCreator_Utils::constructShape( this, aShape ); CurveCreator_Utils::constructShape( this, aShape );
myAISShape = new AIS_Shape( aShape ); myAISShape = new AIS_Shape( aShape );
Handle(Prs3d_PointAspect) anAspect = myAISShape->Attributes()->PointAspect();
anAspect->SetScale( 3.0 );
anAspect->SetTypeOfMarker(Aspect_TOM_O_POINT);
anAspect->SetColor(Quantity_NOC_ROYALBLUE4);
myAISShape->Attributes()->SetPointAspect( anAspect );
} }
Handle(AIS_InteractiveObject) CurveCreator_Curve::getAISObject( const bool theNeedToBuild ) const Handle(AIS_InteractiveObject) CurveCreator_Curve::getAISObject( const bool theNeedToBuild ) const
{ {
//DEBTRACE("getAISObject");
if ( !myAISShape && theNeedToBuild ) { if ( !myAISShape && theNeedToBuild ) {
CurveCreator_Curve* aCurve = (CurveCreator_Curve*)this; CurveCreator_Curve* aCurve = (CurveCreator_Curve*)this;
aCurve->constructAISObject(); aCurve->constructAISObject();

View File

@ -4960,10 +4960,18 @@ Please, select face, shell or solid and try again</translation>
<source>MEN_POP_SHOW_DEPENDENCY_TREE</source> <source>MEN_POP_SHOW_DEPENDENCY_TREE</source>
<translation>Show dependency tree</translation> <translation>Show dependency tree</translation>
</message> </message>
<message>
<source>STB_POP_SHOW_DEPENDENCY_TREE</source>
<translation>Show dependency tree</translation>
</message>
<message> <message>
<source>MEN_POP_REDUCE_STUDY</source> <source>MEN_POP_REDUCE_STUDY</source>
<translation>Reduce study</translation> <translation>Reduce study</translation>
</message> </message>
<message>
<source>STB_POP_REDUCE_STUDY</source>
<translation>Reduce study</translation>
</message>
<message> <message>
<source>MEN_POP_SHOW_ALL_DIMENSIONS</source> <source>MEN_POP_SHOW_ALL_DIMENSIONS</source>
<translation>Show all dimensions</translation> <translation>Show all dimensions</translation>

View File

@ -4952,10 +4952,18 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
<source>MEN_POP_SHOW_DEPENDENCY_TREE</source> <source>MEN_POP_SHOW_DEPENDENCY_TREE</source>
<translation>Montrer l&apos;arbre des dépendances</translation> <translation>Montrer l&apos;arbre des dépendances</translation>
</message> </message>
<message>
<source>STB_POP_SHOW_DEPENDENCY_TREE</source>
<translation>Montrer l&apos;arbre des dépendances</translation>
</message>
<message> <message>
<source>MEN_POP_REDUCE_STUDY</source> <source>MEN_POP_REDUCE_STUDY</source>
<translation>Etude réduite</translation> <translation>Etude réduite</translation>
</message> </message>
<message>
<source>STB_POP_REDUCE_STUDY</source>
<translation>Etude réduite</translation>
</message>
<message> <message>
<source>MEN_POP_SHOW_ALL_DIMENSIONS</source> <source>MEN_POP_SHOW_ALL_DIMENSIONS</source>
<translation>Afficher les cotations </translation> <translation>Afficher les cotations </translation>

View File

@ -4955,10 +4955,18 @@
<source>MEN_POP_SHOW_DEPENDENCY_TREE</source> <source>MEN_POP_SHOW_DEPENDENCY_TREE</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>STB_POP_SHOW_DEPENDENCY_TREE</source>
<translation></translation>
</message>
<message> <message>
<source>MEN_POP_REDUCE_STUDY</source> <source>MEN_POP_REDUCE_STUDY</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>STB_POP_REDUCE_STUDY</source>
<translation></translation>
</message>
<message> <message>
<source>MEN_POP_SHOW_ALL_DIMENSIONS</source> <source>MEN_POP_SHOW_ALL_DIMENSIONS</source>
<translation></translation> <translation></translation>

View File

@ -5866,7 +5866,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
# for result publication in the study. Otherwise, if automatic # for result publication in the study. Otherwise, if automatic
# publication is switched on, default value is used for result name. # publication is switched on, default value is used for result name.
# #
# @return Group of all found sub-shapes or a single found sub-shape. # @return Compound which includes all found sub-shapes if they have different types;
# or group of all found shapes of the equal type; or a single found sub-shape.
# #
# @note This function has a restriction on argument shapes. # @note This function has a restriction on argument shapes.
# If \a theShapeWhere has curved parts with significantly # If \a theShapeWhere has curved parts with significantly
@ -5891,7 +5892,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
publication is switched on, default value is used for result name. publication is switched on, default value is used for result name.
Returns: Returns:
Group of all found sub-shapes or a single found sub-shape. Compound which includes all found sub-shapes if they have different types;
or group of all found shapes of the equal type; or a single found sub-shape.
Note: Note:
@ -5927,7 +5929,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
# for result publication in the study. Otherwise, if automatic # for result publication in the study. Otherwise, if automatic
# publication is switched on, default value is used for result name. # publication is switched on, default value is used for result name.
# #
# @return Group of all found sub-shapes or a single found sub-shape. # @return Compound which includes all found sub-shapes if they have different types;
# or group of all found shapes of the equal type; or a single found sub-shape.
# #
# @ref swig_GetInPlace "Example" # @ref swig_GetInPlace "Example"
@ManageTransactions("ShapesOp") @ManageTransactions("ShapesOp")
@ -5948,7 +5951,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
publication is switched on, default value is used for result name. publication is switched on, default value is used for result name.
Returns: Returns:
Group of all found sub-shapes or a single found sub-shape. Compound which includes all found sub-shapes if they have different types;
or group of all found shapes of the equal type; or a single found sub-shape.
""" """
# Example: see GEOM_TestOthers.py # Example: see GEOM_TestOthers.py
anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat) anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)

View File

@ -236,7 +236,8 @@ def build_shape(study, r1, r2, h1, h2, solid_thickness=0, progressBar=None ):
compound = geompy.MakeCompound([final, extru3]) compound = geompy.MakeCompound([final, extru3])
plane = geompy.MakePlane(O,OX,2000) plane = geompy.MakePlane(O,OX,2000)
compound_mirrored = geompy.MakeMirrorByPlane(compound, plane) compound_mirrored = geompy.MakeMirrorByPlane(compound, plane)
final = geompy.MakeCompound([compound, compound_mirrored]) compound_total = geompy.MakeCompound([compound, compound_mirrored])
final = geompy.MakeGlueFaces(compound_total, 1e-07)
if progressBar is not None: if progressBar is not None:
progressBar.addSteps(1) progressBar.addSteps(1)

View File

@ -113,15 +113,19 @@ XAOPlugin_IOperations::~XAOPlugin_IOperations()
MESSAGE( "XAOPlugin_IOperations::~XAOPlugin_IOperations" ); MESSAGE( "XAOPlugin_IOperations::~XAOPlugin_IOperations" );
} }
void XAOPlugin_IOperations::exportGroups( std::list<Handle(GEOM_Object)> groupList, bool XAOPlugin_IOperations::exportGroups( std::list<Handle(GEOM_Object)> groupList,
XAO::Xao* xaoObject, XAO::Xao* xaoObject,
XAO::BrepGeometry* geometry ) XAO::BrepGeometry* geometry )
{ {
// add the groups // add the groups
std::list<Handle(GEOM_Object)>::iterator groupIterator = groupList.begin(); std::list<Handle(GEOM_Object)>::iterator groupIterator = groupList.begin();
while (groupIterator != groupList.end()) while (groupIterator != groupList.end())
{ {
Handle(GEOM_Object) currGroup = (*groupIterator++); Handle(GEOM_Object) currGroup = (*groupIterator++);
if (currGroup->GetType() != GEOM_GROUP) {
SetErrorCode("Error when export groups: you could perform this operation only with group.");
return false;
}
Handle(TColStd_HArray1OfInteger) groupIds = myGroupOperations->GetObjects(currGroup); Handle(TColStd_HArray1OfInteger) groupIds = myGroupOperations->GetObjects(currGroup);
TopAbs_ShapeEnum shapeGroup = myGroupOperations->GetType(currGroup); TopAbs_ShapeEnum shapeGroup = myGroupOperations->GetType(currGroup);
@ -164,11 +168,12 @@ void XAOPlugin_IOperations::exportGroups( std::list<Handle(GEOM_Object)> groupLi
break; break;
} }
} }
return true;
} }
void XAOPlugin_IOperations::exportFields( std::list<Handle(GEOM_Field)> fieldList, void XAOPlugin_IOperations::exportFields( std::list<Handle(GEOM_Field)> fieldList,
XAO::Xao* xaoObject, XAO::Xao* xaoObject,
XAO::BrepGeometry* geometry ) XAO::BrepGeometry* geometry )
{ {
std::list<Handle(GEOM_Field)>::iterator fieldIterator = fieldList.begin(); std::list<Handle(GEOM_Field)>::iterator fieldIterator = fieldList.begin();
while (fieldIterator != fieldList.end()) while (fieldIterator != fieldList.end())
@ -301,10 +306,10 @@ void XAOPlugin_IOperations::exportSubshapes( const Handle(GEOM_Object)& shape, X
*/ */
//============================================================================= //=============================================================================
bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape, bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
std::list<Handle(GEOM_Object)> groupList, std::list<Handle(GEOM_Object)> groupList,
std::list<Handle(GEOM_Field)> fieldList, std::list<Handle(GEOM_Field)> fieldList,
const char* author, const char* author,
const char* fileName ) const char* fileName )
{ {
SetErrorCode(KO); SetErrorCode(KO);
@ -337,7 +342,7 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
exportSubshapes(shape, geometry); exportSubshapes(shape, geometry);
xaoObject->setGeometry(geometry); xaoObject->setGeometry(geometry);
exportGroups(groupList, xaoObject, geometry); if (!exportGroups(groupList, xaoObject, geometry)) return false;
exportFields(fieldList, xaoObject, geometry); exportFields(fieldList, xaoObject, geometry);
// export the XAO to the file // export the XAO to the file
@ -380,8 +385,8 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
} }
void XAOPlugin_IOperations::importSubShapes( XAO::Geometry* xaoGeometry, void XAOPlugin_IOperations::importSubShapes( XAO::Geometry* xaoGeometry,
Handle(GEOM_Function) function, int shapeType, int dim, Handle(GEOM_Function) function, int shapeType, int dim,
Handle(TColStd_HSequenceOfTransient)& subShapeList ) Handle(TColStd_HSequenceOfTransient)& subShapeList )
{ {
Handle(GEOM_Object) subShape; Handle(GEOM_Object) subShape;
Handle(GEOM_Function) aFunction; Handle(GEOM_Function) aFunction;
@ -433,10 +438,10 @@ void XAOPlugin_IOperations::importSubShapes( XAO::Geometry* xaoGeometry,
*/ */
//============================================================================= //=============================================================================
bool XAOPlugin_IOperations::ImportXAO( const char* fileName, bool XAOPlugin_IOperations::ImportXAO( const char* fileName,
Handle(GEOM_Object)& shape, Handle(GEOM_Object)& shape,
Handle(TColStd_HSequenceOfTransient)& subShapes, Handle(TColStd_HSequenceOfTransient)& subShapes,
Handle(TColStd_HSequenceOfTransient)& groups, Handle(TColStd_HSequenceOfTransient)& groups,
Handle(TColStd_HSequenceOfTransient)& fields ) Handle(TColStd_HSequenceOfTransient)& fields )
{ {
SetErrorCode(KO); SetErrorCode(KO);

View File

@ -44,31 +44,31 @@ public:
~XAOPlugin_IOperations(); ~XAOPlugin_IOperations();
bool ExportXAO( Handle(GEOM_Object) shape, bool ExportXAO( Handle(GEOM_Object) shape,
std::list<Handle(GEOM_Object)> groupList, std::list<Handle(GEOM_Object)> groupList,
std::list<Handle(GEOM_Field)> fieldList, std::list<Handle(GEOM_Field)> fieldList,
const char* author, const char* author,
const char* fileName ); const char* fileName );
bool ImportXAO( const char* fileName, bool ImportXAO( const char* fileName,
Handle(GEOM_Object)& shape, Handle(GEOM_Object)& shape,
Handle(TColStd_HSequenceOfTransient)& subShapes, Handle(TColStd_HSequenceOfTransient)& subShapes,
Handle(TColStd_HSequenceOfTransient)& groups, Handle(TColStd_HSequenceOfTransient)& groups,
Handle(TColStd_HSequenceOfTransient)& fields ); Handle(TColStd_HSequenceOfTransient)& fields );
private: private:
void importSubShapes( XAO::Geometry* xaoGeometry, void importSubShapes( XAO::Geometry* xaoGeometry,
Handle(GEOM_Function) function, Handle(GEOM_Function) function,
int shapeType, int shapeType,
int dim, int dim,
Handle(TColStd_HSequenceOfTransient)& subshapeList ); Handle(TColStd_HSequenceOfTransient)& subshapeList );
void exportSubshapes( const Handle(GEOM_Object)& shape, void exportSubshapes( const Handle(GEOM_Object)& shape,
XAO::BrepGeometry* geometry ); XAO::BrepGeometry* geometry );
void exportFields( std::list<Handle(GEOM_Field)> fieldList, void exportFields( std::list<Handle(GEOM_Field)> fieldList,
XAO::Xao* xaoObject, XAO::Xao* xaoObject,
XAO::BrepGeometry* geometry ); XAO::BrepGeometry* geometry );
void exportGroups( std::list<Handle(GEOM_Object)> groupList, bool exportGroups( std::list<Handle(GEOM_Object)> groupList,
XAO::Xao* xaoObject, XAO::Xao* xaoObject,
XAO::BrepGeometry* geometry ); XAO::BrepGeometry* geometry );
}; };
#endif #endif