-// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
#include <Standard_math.hxx> // E.A. must be included before Python.h to fix compilation on windows
+#ifdef HAVE_FINITE
+#undef HAVE_FINITE // VSR: avoid compilation warning on Linux : "HAVE_FINITE" redefined
+#endif
#include "Python.h"
#include "GeometryGUI.h"
#include "GeometryGUI_Operations.h"
#include "GEOMGUI_OCCSelector.h"
#include "GEOMGUI_Selection.h"
+#include "GEOM_Constants.h"
#include "GEOM_Displayer.h"
#include "GEOM_AISShape.hxx"
#include "GEOM_Actor.h"
+#include <Material_ResourceMgr.h>
+
#include <SUIT_Desktop.h>
#include <SUIT_MessageBox.h>
#include <SUIT_ResourceMgr.h>
QString libName;
// find corresponding GUI library
switch ( id ) {
- case GEOMOp::OpOriginAndVectors: // MENU BASIC - ORIGIN AND BASE VECTORS
+ case GEOMOp::OpOriginAndVectors: // MENU BASIC - ORIGIN AND BASE VECTORS
createOriginAndBaseVectors(); // internal operation
return;
- case GEOMOp::OpImport: // MENU FILE - IMPORT
- case GEOMOp::OpExport: // MENU FILE - EXPORT
- case GEOMOp::OpSelectVertex: // POPUP MENU - SELECT ONLY - VERTEX
- case GEOMOp::OpSelectEdge: // POPUP MENU - SELECT ONLY - EDGE
- case GEOMOp::OpSelectWire: // POPUP MENU - SELECT ONLY - WIRE
- case GEOMOp::OpSelectFace: // POPUP MENU - SELECT ONLY - FACE
- case GEOMOp::OpSelectShell: // POPUP MENU - SELECT ONLY - SHELL
- case GEOMOp::OpSelectSolid: // POPUP MENU - SELECT ONLY - SOLID
- case GEOMOp::OpSelectCompound: // POPUP MENU - SELECT ONLY - COMPOUND
- case GEOMOp::OpSelectAll: // POPUP MENU - SELECT ONLY - SELECT ALL
- case GEOMOp::OpDelete: // MENU EDIT - DELETE
- case GEOMOp::OpCheckGeom: // MENU TOOLS - CHECK GEOMETRY
- case GEOMOp::OpDeflection: // POPUP MENU - DEFLECTION COEFFICIENT
- case GEOMOp::OpColor: // POPUP MENU - COLOR
- case GEOMOp::OpSetTexture: // POPUP MENU - SETTEXTURE
- case GEOMOp::OpTransparency: // POPUP MENU - TRANSPARENCY
- case GEOMOp::OpIncrTransparency: // SHORTCUT - INCREASE TRANSPARENCY
- case GEOMOp::OpDecrTransparency: // SHORTCUT - DECREASE TRANSPARENCY
- case GEOMOp::OpIsos: // POPUP MENU - ISOS
- case GEOMOp::OpIncrNbIsos: // SHORTCUT - INCREASE NB ISOS
- case GEOMOp::OpDecrNbIsos: // SHORTCUT - DECREASE NB ISOS
- case GEOMOp::OpAutoColor: // POPUP MENU - AUTO COLOR
- case GEOMOp::OpNoAutoColor: // POPUP MENU - DISABLE AUTO COLOR
- case GEOMOp::OpShowChildren: // POPUP MENU - SHOW CHILDREN
- case GEOMOp::OpHideChildren: // POPUP MENU - HIDE CHILDREN
- case GEOMOp::OpUnpublishObject: // POPUP MENU - UNPUBLISH
- case GEOMOp::OpPublishObject: // ROOT GEOM OBJECT - POPUP MENU - PUBLISH
- case GEOMOp::OpPointMarker: // POPUP MENU - POINT MARKER
+ case GEOMOp::OpImport: // MENU FILE - IMPORT
+ case GEOMOp::OpExport: // MENU FILE - EXPORT
+ case GEOMOp::OpSelectVertex: // POPUP MENU - SELECT ONLY - VERTEX
+ case GEOMOp::OpSelectEdge: // POPUP MENU - SELECT ONLY - EDGE
+ case GEOMOp::OpSelectWire: // POPUP MENU - SELECT ONLY - WIRE
+ case GEOMOp::OpSelectFace: // POPUP MENU - SELECT ONLY - FACE
+ case GEOMOp::OpSelectShell: // POPUP MENU - SELECT ONLY - SHELL
+ case GEOMOp::OpSelectSolid: // POPUP MENU - SELECT ONLY - SOLID
+ case GEOMOp::OpSelectCompound: // POPUP MENU - SELECT ONLY - COMPOUND
+ case GEOMOp::OpSelectAll: // POPUP MENU - SELECT ONLY - SELECT ALL
+ case GEOMOp::OpDelete: // MENU EDIT - DELETE
+ case GEOMOp::OpCheckGeom: // MENU TOOLS - CHECK GEOMETRY
+ case GEOMOp::OpDeflection: // POPUP MENU - DEFLECTION COEFFICIENT
+ case GEOMOp::OpColor: // POPUP MENU - COLOR
+ case GEOMOp::OpSetTexture: // POPUP MENU - SETTEXTURE
+ case GEOMOp::OpTransparency: // POPUP MENU - TRANSPARENCY
+ case GEOMOp::OpIncrTransparency: // SHORTCUT - INCREASE TRANSPARENCY
+ case GEOMOp::OpDecrTransparency: // SHORTCUT - DECREASE TRANSPARENCY
+ case GEOMOp::OpIsos: // POPUP MENU - ISOS
+ case GEOMOp::OpIncrNbIsos: // SHORTCUT - INCREASE NB ISOS
+ case GEOMOp::OpDecrNbIsos: // SHORTCUT - DECREASE NB ISOS
+ case GEOMOp::OpAutoColor: // POPUP MENU - AUTO COLOR
+ case GEOMOp::OpNoAutoColor: // POPUP MENU - DISABLE AUTO COLOR
+ case GEOMOp::OpShowChildren: // POPUP MENU - SHOW CHILDREN
+ case GEOMOp::OpHideChildren: // POPUP MENU - HIDE CHILDREN
+ case GEOMOp::OpUnpublishObject: // POPUP MENU - UNPUBLISH
+ case GEOMOp::OpPublishObject: // ROOT GEOM OBJECT - POPUP MENU - PUBLISH
+ case GEOMOp::OpPointMarker: // POPUP MENU - POINT MARKER
+ case GEOMOp::OpMaterialProperties: // POPUP MENU - MATERIAL PROPERTIES
+ case GEOMOp::OpEdgeWidth: // POPUP MENU - LINE WIDTH - EDGE WIDTH
+ case GEOMOp::OpIsosWidth: // POPUP MENU - LINE WIDTH - ISOS WIDTH
+ case GEOMOp::OpBringToFront: // POPUP MENU - BRING TO FRONT
+ case GEOMOp::OpClsBringToFront: //
libName = "GEOMToolsGUI";
break;
- case GEOMOp::OpDisplayMode: // MENU VIEW - WIREFRAME/SHADING
- case GEOMOp::OpShowAll: // MENU VIEW - SHOW ALL
- case GEOMOp::OpShowOnly: // MENU VIEW - DISPLAY ONLY
- case GEOMOp::OpHideAll: // MENU VIEW - ERASE ALL
- case GEOMOp::OpHide: // MENU VIEW - ERASE
- case GEOMOp::OpShow: // MENU VIEW - DISPLAY
- case GEOMOp::OpSwitchVectors: // MENU VIEW - VECTOR MODE
- case GEOMOp::OpWireframe: // POPUP MENU - WIREFRAME
- case GEOMOp::OpShading: // POPUP MENU - SHADING
- case GEOMOp::OpTexture: // POPUP MENU - TEXTURE
- case GEOMOp::OpVectors: // POPUP MENU - VECTORS
+ case GEOMOp::OpDisplayMode: // MENU VIEW - WIREFRAME/SHADING
+ case GEOMOp::OpShowAll: // MENU VIEW - SHOW ALL
+ case GEOMOp::OpShowOnly: // MENU VIEW - DISPLAY ONLY
+ case GEOMOp::OpHideAll: // MENU VIEW - ERASE ALL
+ case GEOMOp::OpHide: // MENU VIEW - ERASE
+ case GEOMOp::OpShow: // MENU VIEW - DISPLAY
+ case GEOMOp::OpSwitchVectors: // MENU VIEW - VECTOR MODE
+ case GEOMOp::OpWireframe: // POPUP MENU - WIREFRAME
+ case GEOMOp::OpShading: // POPUP MENU - SHADING
+ case GEOMOp::OpShadingWithEdges: // POPUP MENU - SHADING WITH EDGES
+ case GEOMOp::OpTexture: // POPUP MENU - TEXTURE
+ case GEOMOp::OpVectors: // POPUP MENU - VECTORS
libName = "DisplayGUI";
break;
- case GEOMOp::OpPoint: // MENU BASIC - POINT
- case GEOMOp::OpLine: // MENU BASIC - LINE
- case GEOMOp::OpCircle: // MENU BASIC - CIRCLE
- case GEOMOp::OpEllipse: // MENU BASIC - ELLIPSE
- case GEOMOp::OpArc: // MENU BASIC - ARC
- case GEOMOp::OpVector: // MENU BASIC - VECTOR
- case GEOMOp::OpPlane: // MENU BASIC - PLANE
- case GEOMOp::OpCurve: // MENU BASIC - CURVE
- case GEOMOp::OpLCS: // MENU BASIC - LOCAL COORDINATE SYSTEM
+ case GEOMOp::OpPoint: // MENU BASIC - POINT
+ case GEOMOp::OpLine: // MENU BASIC - LINE
+ case GEOMOp::OpCircle: // MENU BASIC - CIRCLE
+ case GEOMOp::OpEllipse: // MENU BASIC - ELLIPSE
+ case GEOMOp::OpArc: // MENU BASIC - ARC
+ case GEOMOp::OpVector: // MENU BASIC - VECTOR
+ case GEOMOp::OpPlane: // MENU BASIC - PLANE
+ case GEOMOp::OpCurve: // MENU BASIC - CURVE
+ case GEOMOp::OpLCS: // MENU BASIC - LOCAL COORDINATE SYSTEM
libName = "BasicGUI";
break;
- case GEOMOp::OpBox: // MENU PRIMITIVE - BOX
- case GEOMOp::OpCylinder: // MENU PRIMITIVE - CYLINDER
- case GEOMOp::OpSphere: // MENU PRIMITIVE - SPHERE
- case GEOMOp::OpTorus: // MENU PRIMITIVE - TORUS
- case GEOMOp::OpCone: // MENU PRIMITIVE - CONE
- case GEOMOp::OpRectangle: // MENU PRIMITIVE - FACE
- case GEOMOp::OpDisk: // MENU PRIMITIVE - DISK
+ case GEOMOp::OpBox: // MENU PRIMITIVE - BOX
+ case GEOMOp::OpCylinder: // MENU PRIMITIVE - CYLINDER
+ case GEOMOp::OpSphere: // MENU PRIMITIVE - SPHERE
+ case GEOMOp::OpTorus: // MENU PRIMITIVE - TORUS
+ case GEOMOp::OpCone: // MENU PRIMITIVE - CONE
+ case GEOMOp::OpRectangle: // MENU PRIMITIVE - FACE
+ case GEOMOp::OpDisk: // MENU PRIMITIVE - DISK
libName = "PrimitiveGUI";
break;
- case GEOMOp::OpPrism: // MENU GENERATION - PRISM
- case GEOMOp::OpRevolution: // MENU GENERATION - REVOLUTION
- case GEOMOp::OpFilling: // MENU GENERATION - FILLING
- case GEOMOp::OpPipe: // MENU GENERATION - PIPE
+ case GEOMOp::OpPrism: // MENU GENERATION - PRISM
+ case GEOMOp::OpRevolution: // MENU GENERATION - REVOLUTION
+ case GEOMOp::OpFilling: // MENU GENERATION - FILLING
+ case GEOMOp::OpPipe: // MENU GENERATION - PIPE
libName = "GenerationGUI";
break;
- case GEOMOp::Op2dSketcher: // MENU ENTITY - SKETCHER
- case GEOMOp::Op3dSketcher: // MENU ENTITY - 3D SKETCHER
- case GEOMOp::OpExplode: // MENU ENTITY - EXPLODE
+ case GEOMOp::Op2dSketcher: // MENU ENTITY - SKETCHER
+ case GEOMOp::Op3dSketcher: // MENU ENTITY - 3D SKETCHER
+ case GEOMOp::OpExplode: // MENU ENTITY - EXPLODE
#ifdef WITH_OPENCV
- case GEOMOp::OpFeatureDetect: // MENU ENTITY - FEATURE DETECTION
+ case GEOMOp::OpFeatureDetect: // MENU ENTITY - FEATURE DETECTION
#endif
- case GEOMOp::OpPictureImport: // MENU ENTITY - IMPORT PICTURE IN VIEWER
+ case GEOMOp::OpPictureImport: // MENU ENTITY - IMPORT PICTURE IN VIEWER
libName = "EntityGUI";
break;
- case GEOMOp::OpEdge: // MENU BUILD - EDGE
- case GEOMOp::OpWire: // MENU BUILD - WIRE
- case GEOMOp::OpFace: // MENU BUILD - FACE
- case GEOMOp::OpShell: // MENU BUILD - SHELL
- case GEOMOp::OpSolid: // MENU BUILD - SOLID
- case GEOMOp::OpCompound: // MENU BUILD - COMPUND
+ case GEOMOp::OpEdge: // MENU BUILD - EDGE
+ case GEOMOp::OpWire: // MENU BUILD - WIRE
+ case GEOMOp::OpFace: // MENU BUILD - FACE
+ case GEOMOp::OpShell: // MENU BUILD - SHELL
+ case GEOMOp::OpSolid: // MENU BUILD - SOLID
+ case GEOMOp::OpCompound: // MENU BUILD - COMPUND
libName = "BuildGUI";
break;
- case GEOMOp::OpFuse: // MENU BOOLEAN - FUSE
- case GEOMOp::OpCommon: // MENU BOOLEAN - COMMON
- case GEOMOp::OpCut: // MENU BOOLEAN - CUT
- case GEOMOp::OpSection: // MENU BOOLEAN - SECTION
+ case GEOMOp::OpFuse: // MENU BOOLEAN - FUSE
+ case GEOMOp::OpCommon: // MENU BOOLEAN - COMMON
+ case GEOMOp::OpCut: // MENU BOOLEAN - CUT
+ case GEOMOp::OpSection: // MENU BOOLEAN - SECTION
libName = "BooleanGUI";
break;
- case GEOMOp::OpTranslate: // MENU TRANSFORMATION - TRANSLATION
- case GEOMOp::OpRotate: // MENU TRANSFORMATION - ROTATION
- case GEOMOp::OpChangeLoc: // MENU TRANSFORMATION - LOCATION
- case GEOMOp::OpMirror: // MENU TRANSFORMATION - MIRROR
- case GEOMOp::OpScale: // MENU TRANSFORMATION - SCALE
- case GEOMOp::OpOffset: // MENU TRANSFORMATION - OFFSET
- case GEOMOp::OpProjection: // MENU TRANSFORMATION - PROJECTION
- case GEOMOp::OpMultiTranslate: // MENU TRANSFORMATION - MULTI-TRANSLATION
- case GEOMOp::OpMultiRotate: // MENU TRANSFORMATION - MULTI-ROTATION
- case GEOMOp::OpReimport: // CONTEXT(POPUP) MENU - RELOAD_IMPORTED
+ case GEOMOp::OpTranslate: // MENU TRANSFORMATION - TRANSLATION
+ case GEOMOp::OpRotate: // MENU TRANSFORMATION - ROTATION
+ case GEOMOp::OpChangeLoc: // MENU TRANSFORMATION - LOCATION
+ case GEOMOp::OpMirror: // MENU TRANSFORMATION - MIRROR
+ case GEOMOp::OpScale: // MENU TRANSFORMATION - SCALE
+ case GEOMOp::OpOffset: // MENU TRANSFORMATION - OFFSET
+ case GEOMOp::OpProjection: // MENU TRANSFORMATION - PROJECTION
+ case GEOMOp::OpMultiTranslate: // MENU TRANSFORMATION - MULTI-TRANSLATION
+ case GEOMOp::OpMultiRotate: // MENU TRANSFORMATION - MULTI-ROTATION
+ case GEOMOp::OpReimport: // CONTEXT(POPUP) MENU - RELOAD_IMPORTED
libName = "TransformationGUI";
break;
- case GEOMOp::OpPartition: // MENU OPERATION - PARTITION
- case GEOMOp::OpArchimede: // MENU OPERATION - ARCHIMEDE
- case GEOMOp::OpFillet3d: // MENU OPERATION - FILLET
- case GEOMOp::OpChamfer: // MENU OPERATION - CHAMFER
- case GEOMOp::OpClipping: // MENU OPERATION - CLIPPING RANGE
- case GEOMOp::OpShapesOnShape: // MENU OPERATION - GET SHAPES ON SHAPE
- case GEOMOp::OpFillet2d: // MENU OPERATION - FILLET 2D
- case GEOMOp::OpFillet1d: // MENU OPERATION - FILLET 1D
- case GEOMOp::OpSharedShapes: // MENU OPERATION - GET SHARED SHAPES
+ case GEOMOp::OpPartition: // MENU OPERATION - PARTITION
+ case GEOMOp::OpArchimede: // MENU OPERATION - ARCHIMEDE
+ case GEOMOp::OpFillet3d: // MENU OPERATION - FILLET
+ case GEOMOp::OpChamfer: // MENU OPERATION - CHAMFER
+ case GEOMOp::OpClipping: // MENU OPERATION - CLIPPING RANGE
+ case GEOMOp::OpShapesOnShape: // MENU OPERATION - GET SHAPES ON SHAPE
+ case GEOMOp::OpFillet2d: // MENU OPERATION - FILLET 2D
+ case GEOMOp::OpFillet1d: // MENU OPERATION - FILLET 1D
+ case GEOMOp::OpSharedShapes: // MENU OPERATION - GET SHARED SHAPES
+ case GEOMOp::OpExtrudedBoss: // MENU OPERATION - EXTRUDED BOSS
+ case GEOMOp::OpExtrudedCut: // MENU OPERATION - EXTRUDED CUT
libName = "OperationGUI";
break;
- case GEOMOp::OpSewing: // MENU REPAIR - SEWING
- case GEOMOp::OpSuppressFaces: // MENU REPAIR - SUPPRESS FACES
- case GEOMOp::OpSuppressHoles: // MENU REPAIR - SUPPRESS HOLE
- case GEOMOp::OpShapeProcess: // MENU REPAIR - SHAPE PROCESSING
- case GEOMOp::OpCloseContour: // MENU REPAIR - CLOSE CONTOUR
- case GEOMOp::OpRemoveIntWires: // MENU REPAIR - REMOVE INTERNAL WIRES
- case GEOMOp::OpAddPointOnEdge: // MENU REPAIR - ADD POINT ON EDGE
- case GEOMOp::OpFreeBoundaries: // MENU MEASURE - FREE BOUNDARIES
- case GEOMOp::OpFreeFaces: // MENU MEASURE - FREE FACES
- case GEOMOp::OpOrientation: // MENU REPAIR - CHANGE ORIENTATION
- case GEOMOp::OpGlueFaces: // MENU REPAIR - GLUE FACES
- case GEOMOp::OpGlueEdges: // MENU REPAIR - GLUE EDGES
- case GEOMOp::OpLimitTolerance: // MENU REPAIR - LIMIT TOLERANCE
- case GEOMOp::OpRemoveExtraEdges: // MENU REPAIR - REMOVE EXTRA EDGES
+ case GEOMOp::OpSewing: // MENU REPAIR - SEWING
+ case GEOMOp::OpSuppressFaces: // MENU REPAIR - SUPPRESS FACES
+ case GEOMOp::OpSuppressHoles: // MENU REPAIR - SUPPRESS HOLE
+ case GEOMOp::OpShapeProcess: // MENU REPAIR - SHAPE PROCESSING
+ case GEOMOp::OpCloseContour: // MENU REPAIR - CLOSE CONTOUR
+ case GEOMOp::OpRemoveIntWires: // MENU REPAIR - REMOVE INTERNAL WIRES
+ case GEOMOp::OpAddPointOnEdge: // MENU REPAIR - ADD POINT ON EDGE
+ case GEOMOp::OpFreeBoundaries: // MENU MEASURE - FREE BOUNDARIES
+ case GEOMOp::OpFreeFaces: // MENU MEASURE - FREE FACES
+ case GEOMOp::OpOrientation: // MENU REPAIR - CHANGE ORIENTATION
+ case GEOMOp::OpGlueFaces: // MENU REPAIR - GLUE FACES
+ case GEOMOp::OpGlueEdges: // MENU REPAIR - GLUE EDGES
+ case GEOMOp::OpLimitTolerance: // MENU REPAIR - LIMIT TOLERANCE
+ case GEOMOp::OpRemoveExtraEdges: // MENU REPAIR - REMOVE EXTRA EDGES
libName = "RepairGUI";
break;
- case GEOMOp::OpProperties: // MENU MEASURE - PROPERTIES
- case GEOMOp::OpCenterMass: // MENU MEASURE - CDG
- case GEOMOp::OpInertia: // MENU MEASURE - INERTIA
- case GEOMOp::OpNormale: // MENU MEASURE - NORMALE
- case GEOMOp::OpBoundingBox: // MENU MEASURE - BOUNDING BOX
- case GEOMOp::OpMinDistance: // MENU MEASURE - MIN DISTANCE
- case GEOMOp::OpAngle: // MENU MEASURE - ANGLE
- case GEOMOp::OpTolerance: // MENU MEASURE - TOLERANCE
- case GEOMOp::OpWhatIs: // MENU MEASURE - WHATIS
- case GEOMOp::OpCheckShape: // MENU MEASURE - CHECK
- case GEOMOp::OpCheckCompound: // MENU MEASURE - CHECK COMPOUND OF BLOCKS
- case GEOMOp::OpPointCoordinates: // MENU MEASURE - POINT COORDINATES
+ case GEOMOp::OpProperties: // MENU MEASURE - PROPERTIES
+ case GEOMOp::OpCenterMass: // MENU MEASURE - CDG
+ case GEOMOp::OpInertia: // MENU MEASURE - INERTIA
+ case GEOMOp::OpNormale: // MENU MEASURE - NORMALE
+ case GEOMOp::OpBoundingBox: // MENU MEASURE - BOUNDING BOX
+ case GEOMOp::OpMinDistance: // MENU MEASURE - MIN DISTANCE
+ case GEOMOp::OpAngle: // MENU MEASURE - ANGLE
+ case GEOMOp::OpTolerance: // MENU MEASURE - TOLERANCE
+ case GEOMOp::OpWhatIs: // MENU MEASURE - WHATIS
+ case GEOMOp::OpCheckShape: // MENU MEASURE - CHECK
+ case GEOMOp::OpCheckCompound: // MENU MEASURE - CHECK COMPOUND OF BLOCKS
+ case GEOMOp::OpPointCoordinates: // MENU MEASURE - POINT COORDINATES
+ case GEOMOp::OpCheckSelfInters: // MENU MEASURE - CHECK SELF INTERSECTIONS
libName = "MeasureGUI";
break;
- case GEOMOp::OpGroupCreate: // MENU GROUP - CREATE
- case GEOMOp::OpGroupCreatePopup: // POPUP MENU - CREATE GROUP
- case GEOMOp::OpGroupEdit: // MENU GROUP - EDIT
+ case GEOMOp::OpGroupCreate: // MENU GROUP - CREATE
+ case GEOMOp::OpGroupCreatePopup: // POPUP MENU - CREATE GROUP
+ case GEOMOp::OpGroupEdit: // MENU GROUP - EDIT
libName = "GroupGUI";
break;
- case GEOMOp::OpHexaSolid: // MENU BLOCKS - HEXAHEDRAL SOLID
- case GEOMOp::OpMultiTransform: // MENU BLOCKS - MULTI-TRANSFORMATION
- case GEOMOp::OpQuadFace: // MENU BLOCKS - QUADRANGLE FACE
- case GEOMOp::OpPropagate: // MENU BLOCKS - PROPAGATE
- case GEOMOp::OpExplodeBlock: // MENU BLOCKS - EXPLODE ON BLOCKS
+ case GEOMOp::OpHexaSolid: // MENU BLOCKS - HEXAHEDRAL SOLID
+ case GEOMOp::OpMultiTransform: // MENU BLOCKS - MULTI-TRANSFORMATION
+ case GEOMOp::OpQuadFace: // MENU BLOCKS - QUADRANGLE FACE
+ case GEOMOp::OpPropagate: // MENU BLOCKS - PROPAGATE
+ case GEOMOp::OpExplodeBlock: // MENU BLOCKS - EXPLODE ON BLOCKS
libName = "BlocksGUI";
break;
- case GEOMOp::OpAdvancedNoOp: // NO OPERATION (advanced operations base)
- case GEOMOp::OpPipeTShape: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE
+ case GEOMOp::OpAdvancedNoOp: // NO OPERATION (advanced operations base)
+ case GEOMOp::OpPipeTShape: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE
// case GEOMOp::OpPipeTShapeGroups: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE GROUPS
//@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
libName = "AdvancedGUI";
}
// call method of corresponding GUI library
- if ( library )
+ if ( library ) {
library->OnGUIEvent( id, desk );
+
+ // Update a list of materials for "Preferences" dialog
+ if ( id == GEOMOp::OpMaterialProperties ) {
+ LightApp_Preferences* pref = preferences();
+ if ( pref ) {
+ Material_ResourceMgr aMatResMgr;
+ QStringList aPerfMatNames = aMatResMgr.getPreferenceMaterialsNames();
+ setPreferenceProperty( pref->rootItem()->findItem( tr( "PREF_MATERIAL" ), true )->id(),
+ "strings",
+ aPerfMatNames );
+ }
+ }
+ }
else
SUIT_MessageBox::critical( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) );
}
//createGeomAction( GEOMOp::OpClipping, "CLIPPING" );
createGeomAction( GEOMOp::OpShapesOnShape, "GET_SHAPES_ON_SHAPE" );
createGeomAction( GEOMOp::OpSharedShapes, "GET_SHARED_SHAPES" );
+ createGeomAction( GEOMOp::OpExtrudedCut, "EXTRUDED_CUT" );
+ createGeomAction( GEOMOp::OpExtrudedBoss, "EXTRUDED_BOSS" );
createGeomAction( GEOMOp::OpFillet1d, "FILLET_1D" );
createGeomAction( GEOMOp::OpFillet2d, "FILLET_2D" );
createGeomAction( GEOMOp::OpWhatIs, "WHAT_IS" );
createGeomAction( GEOMOp::OpCheckShape, "CHECK" );
createGeomAction( GEOMOp::OpCheckCompound, "CHECK_COMPOUND" );
+ createGeomAction( GEOMOp::OpCheckSelfInters, "CHECK_SELF_INTERSECTIONS" );
#ifdef _DEBUG_ // PAL16821
createGeomAction( GEOMOp::OpCheckGeom, "CHECK_GEOMETRY" );
createGeomAction( GEOMOp::OpSelectCompound, "COMPOUND_SEL_ONLY", "", 0, true );
createGeomAction( GEOMOp::OpSelectAll, "ALL_SEL_ONLY", "", 0, true );
createGeomAction( GEOMOp::OpShowOnly, "DISPLAY_ONLY" );
+ createGeomAction( GEOMOp::OpBringToFront, "BRING_TO_FRONT", "", 0, true );
+ createGeomAction( GEOMOp::OpClsBringToFront, "CLS_BRING_TO_FRONT" );
createGeomAction( GEOMOp::OpHide, "ERASE" );
createGeomAction( GEOMOp::OpWireframe, "POP_WIREFRAME", "", 0, true );
createGeomAction( GEOMOp::OpShading, "POP_SHADING", "", 0, true );
+ createGeomAction( GEOMOp::OpShadingWithEdges, "POP_SHADING_WITH_EDGES", "", 0, true );
createGeomAction( GEOMOp::OpTexture, "POP_TEXTURE", "", 0, true );
+ createGeomAction( GEOMOp::OpEdgeWidth, "EDGE_WIDTH");
+ createGeomAction( GEOMOp::OpIsosWidth, "ISOS_WIDTH");
createGeomAction( GEOMOp::OpVectors, "POP_VECTORS", "", 0, true );
createGeomAction( GEOMOp::OpDeflection, "POP_DEFLECTION" );
createGeomAction( GEOMOp::OpColor, "POP_COLOR" );
createGeomAction( GEOMOp::OpUnpublishObject, "POP_UNPUBLISH_OBJ" );
createGeomAction( GEOMOp::OpPublishObject, "POP_PUBLISH_OBJ" );
createGeomAction( GEOMOp::OpPointMarker, "POP_POINT_MARKER" );
+ createGeomAction( GEOMOp::OpMaterialProperties, "POP_MATERIAL_PROPERTIES" );
createGeomAction( GEOMOp::OpPipeTShape, "PIPETSHAPE" );
createMenu( GEOMOp::OpArc, basicId, -1 );
createMenu( GEOMOp::OpCurve, basicId, -1 );
createMenu( separator(), basicId, -1 );
+ createMenu( GEOMOp::Op2dSketcher, basicId, -1 );
+ createMenu( GEOMOp::Op3dSketcher, basicId, -1 );
createMenu( GEOMOp::OpVector, basicId, -1 );
createMenu( GEOMOp::OpPlane, basicId, -1 );
createMenu( GEOMOp::OpLCS, basicId, -1 );
createMenu( GEOMOp::OpCone, primId, -1 );
createMenu( GEOMOp::OpRectangle, primId, -1 );
createMenu( GEOMOp::OpDisk, primId, -1 );
+ createMenu( GEOMOp::OpPipeTShape,primId, -1 );
int genId = createMenu( tr( "MEN_GENERATION" ), newEntId, -1 );
createMenu( GEOMOp::OpPrism, genId, -1 );
createMenu( GEOMOp::OpFilling, genId, -1 );
createMenu( GEOMOp::OpPipe, genId, -1 );
- int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 );
- createMenu( GEOMOp::OpPipeTShape, advId, -1 );
+// int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 );
+// createMenu( GEOMOp::OpPipeTShape, advId, -1 );
// createMenu( GEOMOp::OpPipeTShapeGroups, advId, -1 );
//@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
createMenu( separator(), newEntId, -1 );
- createMenu( GEOMOp::Op2dSketcher, newEntId, -1 );
- createMenu( GEOMOp::Op3dSketcher, newEntId, -1 );
-
- createMenu( separator(), newEntId, -1 );
-
createMenu( GEOMOp::OpExplode, newEntId, -1 );
int buildId = createMenu( tr( "MEN_BUILD" ), newEntId, -1 );
createMenu( GEOMOp::OpFillet2d, operId, -1 );
createMenu( GEOMOp::OpFillet3d, operId, -1 );
createMenu( GEOMOp::OpChamfer, operId, -1 );
+ createMenu( GEOMOp::OpExtrudedBoss, operId, -1 );
+ createMenu( GEOMOp::OpExtrudedCut, operId, -1 );
//createMenu( GEOMOp::OpClipping, operId, -1 );
int repairId = createMenu( tr( "MEN_REPAIR" ), -1, -1, 10 );
createMenu( GEOMOp::OpMinDistance, dimId, -1 );
createMenu( GEOMOp::OpAngle, dimId, -1 );
- createMenu( separator(), measurId, -1 );
- createMenu( GEOMOp::OpTolerance, measurId, -1 );
- createMenu( separator(), measurId, -1 );
- createMenu( GEOMOp::OpWhatIs, measurId, -1 );
- createMenu( GEOMOp::OpCheckShape, measurId, -1 );
- createMenu( GEOMOp::OpCheckCompound, measurId, -1 );
+ createMenu( separator(), measurId, -1 );
+ createMenu( GEOMOp::OpTolerance, measurId, -1 );
+ createMenu( separator(), measurId, -1 );
+ createMenu( GEOMOp::OpWhatIs, measurId, -1 );
+ createMenu( GEOMOp::OpCheckShape, measurId, -1 );
+ createMenu( GEOMOp::OpCheckCompound, measurId, -1 );
+ createMenu( GEOMOp::OpCheckSelfInters, measurId, -1 );
#ifdef _DEBUG_ // PAL16821
int toolsId = createMenu( tr( "MEN_TOOLS" ), -1, -1, 50 );
*/
// ---- create toolbars --------------------------
-
+
int basicTbId = createTool( tr( "TOOL_BASIC" ) );
- createTool( GEOMOp::OpPoint, basicTbId );
- createTool( GEOMOp::OpLine, basicTbId );
- createTool( GEOMOp::OpCircle, basicTbId );
- createTool( GEOMOp::OpEllipse, basicTbId );
- createTool( GEOMOp::OpArc, basicTbId );
- createTool( GEOMOp::OpCurve, basicTbId );
- createTool( GEOMOp::OpVector, basicTbId );
- createTool( GEOMOp::OpPlane, basicTbId );
- createTool( GEOMOp::OpLCS, basicTbId );
+ createTool( GEOMOp::OpPoint, basicTbId );
+ createTool( GEOMOp::OpLine, basicTbId );
+ createTool( GEOMOp::OpCircle, basicTbId );
+ createTool( GEOMOp::OpEllipse, basicTbId );
+ createTool( GEOMOp::OpArc, basicTbId );
+ createTool( GEOMOp::OpCurve, basicTbId );
+ createTool( GEOMOp::OpVector, basicTbId );
+ createTool( GEOMOp::Op2dSketcher, basicTbId ); //rnc
+ createTool( GEOMOp::Op3dSketcher, basicTbId ); //rnc
+ createTool( GEOMOp::OpPlane, basicTbId );
+ createTool( GEOMOp::OpLCS, basicTbId );
createTool( GEOMOp::OpOriginAndVectors, basicTbId );
-
+
+// int sketchTbId = createTool( tr( "TOOL_SKETCH" ) );
+// createTool( GEOMOp::Op2dSketcher, sketchTbId );
+// createTool( GEOMOp::Op3dSketcher, sketchTbId );
+
int primTbId = createTool( tr( "TOOL_PRIMITIVES" ) );
- createTool( GEOMOp::OpBox, primTbId );
- createTool( GEOMOp::OpCylinder, primTbId );
- createTool( GEOMOp::OpSphere, primTbId );
- createTool( GEOMOp::OpTorus, primTbId );
- createTool( GEOMOp::OpCone, primTbId );
- createTool( GEOMOp::OpRectangle, primTbId );
- createTool( GEOMOp::OpDisk, primTbId );
-
+ createTool( GEOMOp::OpBox, primTbId );
+ createTool( GEOMOp::OpCylinder, primTbId );
+ createTool( GEOMOp::OpSphere, primTbId );
+ createTool( GEOMOp::OpTorus, primTbId );
+ createTool( GEOMOp::OpCone, primTbId );
+ createTool( GEOMOp::OpRectangle, primTbId );
+ createTool( GEOMOp::OpDisk, primTbId );
+ createTool( GEOMOp::OpPipeTShape, primTbId ); //rnc
+
+// int advancedTbId = createTool( tr( "TOOL_ADVANCED" ) ); //rnc
+// createTool( GEOMOp::OpPipeTShape, advancedTbId );
+
int boolTbId = createTool( tr( "TOOL_BOOLEAN" ) );
- createTool( GEOMOp::OpFuse, boolTbId );
- createTool( GEOMOp::OpCommon, boolTbId );
- createTool( GEOMOp::OpCut, boolTbId );
- createTool( GEOMOp::OpSection, boolTbId );
-
- int genTbId = createTool( tr( "TOOL_GENERATION" ) );
+ createTool( GEOMOp::OpFuse, boolTbId );
+ createTool( GEOMOp::OpCommon, boolTbId );
+ createTool( GEOMOp::OpCut, boolTbId );
+ createTool( GEOMOp::OpSection, boolTbId );
+
+ int genTbId = createTool( tr( "TOOL_GENERATION" ) );
createTool( GEOMOp::OpPrism, genTbId );
createTool( GEOMOp::OpRevolution, genTbId );
createTool( GEOMOp::OpFilling, genTbId );
createTool( GEOMOp::OpPipe, genTbId );
-
+
int transTbId = createTool( tr( "TOOL_TRANSFORMATION" ) );
createTool( GEOMOp::OpTranslate, transTbId );
createTool( GEOMOp::OpRotate, transTbId );
createTool( separator(), transTbId );
createTool( GEOMOp::OpMultiTranslate, transTbId );
createTool( GEOMOp::OpMultiRotate, transTbId );
-
+
int operTbId = createTool( tr( "TOOL_OPERATIONS" ) );
- createTool( GEOMOp::Op2dSketcher, operTbId );
- createTool( GEOMOp::Op3dSketcher, operTbId );
- createTool( separator(), operTbId );
createTool( GEOMOp::OpExplode, operTbId );
- createTool( separator(), operTbId );
-#ifdef WITH_OPENCV
- createTool( GEOMOp::OpFeatureDetect, operTbId );
-#endif
- createTool( GEOMOp::OpPictureImport, operTbId );
- createTool( separator(), operTbId );
-
createTool( GEOMOp::OpPartition, operTbId );
createTool( GEOMOp::OpArchimede, operTbId );
createTool( GEOMOp::OpShapesOnShape, operTbId );
createTool( GEOMOp::OpSharedShapes, operTbId );
- createTool( separator(), operTbId );
- createTool( GEOMOp::OpFillet1d, operTbId );
- createTool( GEOMOp::OpFillet2d, operTbId );
- createTool( GEOMOp::OpFillet3d, operTbId );
- createTool( GEOMOp::OpChamfer, operTbId );
-
+
+ int featTbId = createTool( tr( "TOOL_FEATURES" ) );
+ createTool( GEOMOp::OpFillet1d, featTbId );
+ createTool( GEOMOp::OpFillet2d, featTbId );
+ createTool( GEOMOp::OpFillet3d, featTbId );
+ createTool( GEOMOp::OpChamfer, featTbId );
+ createTool( GEOMOp::OpExtrudedBoss, featTbId );
+ createTool( GEOMOp::OpExtrudedCut, featTbId );
+
int buildTbId = createTool( tr( "TOOL_BUILD" ) );
createTool( GEOMOp::OpEdge, buildTbId );
createTool( GEOMOp::OpWire, buildTbId );
createTool( GEOMOp::OpWhatIs, measureTbId );
createTool( GEOMOp::OpCheckShape, measureTbId );
createTool( GEOMOp::OpCheckCompound, measureTbId );
+ createTool( GEOMOp::OpCheckSelfInters, measureTbId );
+
+ int picturesTbId = createTool( tr( "TOOL_PICTURES" ) );
+ createTool( GEOMOp::OpPictureImport, picturesTbId );
+ #ifdef WITH_OPENCV
+ createTool( GEOMOp::OpFeatureDetect, picturesTbId );
+ #endif
- int advancedTbId = createTool( tr( "TOOL_ADVANCED" ) );
- createTool( GEOMOp::OpPipeTShape, advancedTbId );
//@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
// ---- create popup menus --------------------------
mgr->insert( action( GEOMOp::OpGroupEdit ), -1, -1 ); // edit group
mgr->setRule( action( GEOMOp::OpGroupEdit ), QString("client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule );
mgr->insert( separator(), -1, -1 ); // -----------
+
+#if OCC_VERSION_LARGE > 0x06050200
+ //QString bringRule = clientOCCorOB + " and ($component={'GEOM'}) and (selcount>0) and isOCC=true and topLevel=false";
+ QString bringRule = clientOCCorOB + " and ($component={'GEOM'}) and (selcount>0) and isOCC=true";
+ mgr->insert( action(GEOMOp::OpBringToFront ), -1, -1 ); // bring to front
+ mgr->setRule(action(GEOMOp::OpBringToFront), bringRule, QtxPopupMgr::VisibleRule );
+ mgr->setRule(action(GEOMOp::OpBringToFront), "topLevel=true", QtxPopupMgr::ToggleRule );
+ mgr->insert( action(GEOMOp::OpClsBringToFront ), -1, -1 ); // clear bring to front
+ mgr->setRule( action(GEOMOp::OpClsBringToFront ), clientOCC, QtxPopupMgr::VisibleRule );
+#endif
+ mgr->insert( separator(), -1, -1 ); // -----------
dispmodeId = mgr->insert( tr( "MEN_DISPLAY_MODE" ), -1, -1 ); // display mode menu
mgr->insert( action( GEOMOp::OpWireframe ), dispmodeId, -1 ); // wireframe
mgr->setRule( action( GEOMOp::OpWireframe ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
mgr->insert( action( GEOMOp::OpShading ), dispmodeId, -1 ); // shading
mgr->setRule( action( GEOMOp::OpShading ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
mgr->setRule( action( GEOMOp::OpShading ), clientOCCorVTK + " and displaymode='Shading'", QtxPopupMgr::ToggleRule );
+ mgr->insert( action( GEOMOp::OpShadingWithEdges ), dispmodeId, -1 ); // shading with edges
+ mgr->setRule( action( GEOMOp::OpShadingWithEdges ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
+ mgr->setRule( action( GEOMOp::OpShadingWithEdges ), clientOCCorVTK + " and displaymode='ShadingWithEdges'", QtxPopupMgr::ToggleRule );
mgr->insert( action( GEOMOp::OpTexture ), dispmodeId, -1 ); // wireframe
mgr->setRule( action( GEOMOp::OpTexture ), clientOCC_AndSomeVisible, QtxPopupMgr::VisibleRule );
mgr->setRule( action( GEOMOp::OpTexture), clientOCC + " and displaymode='Texture'", QtxPopupMgr::ToggleRule );
mgr->setRule( action( GEOMOp::OpVectors ), clientOCCorVTK + " and isVectorsMode", QtxPopupMgr::ToggleRule );
mgr->insert( separator(), -1, -1 ); // -----------
mgr->insert( action( GEOMOp::OpColor ), -1, -1 ); // color
- mgr->setRule( action( GEOMOp::OpColor ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule );
+ mgr->setRule( action( GEOMOp::OpColor ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})" + "and isPhysicalMaterial=false", QtxPopupMgr::VisibleRule );
mgr->insert( action( GEOMOp::OpTransparency ), -1, -1 ); // transparency
mgr->setRule( action( GEOMOp::OpTransparency ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
mgr->insert( action( GEOMOp::OpIsos ), -1, -1 ); // isos
mgr->insert( action( GEOMOp::OpPointMarker ), -1, -1 ); // point marker
//mgr->setRule( action( GEOMOp::OpPointMarker ), QString( "selcount>0 and $typeid in {%1}" ).arg(GEOM_POINT ), QtxPopupMgr::VisibleRule );
mgr->setRule( action( GEOMOp::OpPointMarker ), QString( "selcount>0 and ( $typeid in {%1} or compoundOfVertices=true ) " ).arg(GEOM::VERTEX).arg(GEOM::COMPOUND), QtxPopupMgr::VisibleRule );
+ mgr->insert( action( GEOMOp::OpMaterialProperties ), -1, -1 ); // material properties
+ mgr->setRule( action( GEOMOp::OpMaterialProperties ), clientOCCorVTK_AndSomeVisible + " and ($component={'GEOM'}) and selcount>0 and isVisible", QtxPopupMgr::VisibleRule );
mgr->insert( action( GEOMOp::OpSetTexture ), -1, -1 ); // texture
mgr->setRule( action( GEOMOp::OpSetTexture ), clientOCCorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule );
+
+ int lineW = mgr->insert( tr( "MEN_LINE_WIDTH" ), -1, -1 ); // line width menu
+ mgr->insert( action( GEOMOp::OpEdgeWidth ), lineW, -1 ); // edge width
+ mgr->setRule( action( GEOMOp::OpEdgeWidth ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
+
+ mgr->insert( action( GEOMOp::OpIsosWidth ), lineW, -1 ); // isos width
+ mgr->setRule( action( GEOMOp::OpIsosWidth ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
+
mgr->insert( separator(), -1, -1 ); // -----------
mgr->insert( action( GEOMOp::OpAutoColor ), -1, -1 ); // auto color
mgr->setRule( action( GEOMOp::OpAutoColor ), autoColorPrefix + " and isAutoColor=false", QtxPopupMgr::VisibleRule );
mgr->setRule(action(GEOMOp::OpSelectAll), selectOnly + " and selectionmode='ALL'", QtxPopupMgr::ToggleRule);
mgr->insert( action(GEOMOp::OpShowOnly ), -1, -1 ); // display only
mgr->setRule(action(GEOMOp::OpShowOnly ), rule.arg( types ).arg( "true" ), QtxPopupMgr::VisibleRule );
- mgr->insert( separator(), -1, -1 );
mgr->insert( separator(), -1, -1 ); // -----------
mgr->insert( action( GEOMOp::OpUnpublishObject ), -1, -1 ); // Unpublish object
addPreference( tr( "PREF_SHADING_COLOR" ), genGroup,
LightApp_Preferences::Color, "Geometry", "shading_color" );
+ addPreference( tr( "PREF_EDGES_IN_SHADING" ), genGroup,
+ LightApp_Preferences::Color, "Geometry", "edges_in_shading_color" );
+
addPreference( tr( "PREF_WIREFRAME_COLOR" ), genGroup,
LightApp_Preferences::Color, "Geometry", "wireframe_color" );
addPreference( tr( "PREF_ISOS_COLOR" ), genGroup,
LightApp_Preferences::Color, "Geometry", "isos_color" );
+ addPreference( tr( "PREF_TOPLEVEL_COLOR" ), genGroup,
+ LightApp_Preferences::Color, "Geometry", "toplevel_color" );
+
+ addPreference( "", genGroup, LightApp_Preferences::Space );
+
+
int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
int defl = addPreference( tr( "PREF_DEFLECTION" ), genGroup,
LightApp_Preferences::DblSpin, "Geometry", "deflection_coeff" );
+ int material = addPreference( tr( "PREF_MATERIAL" ), genGroup,
+ LightApp_Preferences::Selector,
+ "Geometry", "material" );
+
+ const int nb = 4;
+ int wd[nb];
+ int iter=0;
+
+ wd[iter++] = addPreference( tr( "PREF_EDGE_WIDTH" ), genGroup,
+ LightApp_Preferences::IntSpin, "Geometry", "edge_width" );
+
+ wd[iter++] = addPreference( tr( "PREF_ISOLINES_WIDTH" ), genGroup,
+ LightApp_Preferences::IntSpin, "Geometry", "isolines_width" );
+
+ wd[iter++] = addPreference( tr( "PREF_PREVIEW_EDGE_WIDTH" ), genGroup,
+ LightApp_Preferences::IntSpin, "Geometry", "preview_edge_width" );
+
+ wd[iter++] = addPreference( tr( "PREF_MEASURES_LINE_WIDTH" ), genGroup,
+ LightApp_Preferences::IntSpin, "Geometry", "measures_line_width" );
+
+ for(int i = 0; i < nb; i++) {
+ setPreferenceProperty( wd[i], "min", 1 );
+ setPreferenceProperty( wd[i], "max", 5 );
+ }
+
+
// Quantities with individual precision settings
int precGroup = addPreference( tr( "GEOM_PREF_GROUP_PRECISION" ), tabId );
setPreferenceProperty( precGroup, "columns", 2 );
QStringList aModesList;
aModesList.append( tr("MEN_WIREFRAME") );
aModesList.append( tr("MEN_SHADING") );
+ aModesList.append( tr("MEN_SHADING_WITH_EDGES") );
QList<QVariant> anIndexesList;
anIndexesList.append(0);
anIndexesList.append(1);
+ anIndexesList.append(2);
setPreferenceProperty( dispmode, "strings", aModesList );
setPreferenceProperty( dispmode, "indexes", anIndexesList );
setPreferenceProperty( defl, "step", 1.0e-04 );
setPreferenceProperty( defl, "precision", 6 );
+ // Set property for default material
+ Material_ResourceMgr aMatResMgr;
+ QStringList aPrefMatNames = aMatResMgr.getPreferenceMaterialsNames();
+ setPreferenceProperty( material, "strings", aPrefMatNames );
+
// Set property vertex marker type
QList<QVariant> aMarkerTypeIndicesList;
QList<QVariant> aMarkerTypeIconsList;
* \brief Store visual parameters
*
* This method is called just before the study document is saved.
- * Store visual parameters in AttributeParameter attribue(s)
+ * Store visual parameters in AttributeParameter attribute(s)
*/
void GeometryGUI::storeVisualParameters (int savePoint)
{
param = occParam + TRANSPARENCY_PROP;
ip->setParameter(entry, param, QString::number(aProps.value(TRANSPARENCY_PROP).toDouble()).toLatin1().data());
}
+
+ if(aProps.contains(TOP_LEVEL_PROP)) {
+ param = occParam + TOP_LEVEL_PROP;
+ Standard_Boolean val = aProps.value(TOP_LEVEL_PROP).value<Standard_Boolean>();
+ if (val == Standard_True)
+ ip->setParameter(entry, param, "1");
+ }
}
if(aProps.contains(ISOS_PROP)) {
param = occParam + MARKER_TYPE_PROP;
ip->setParameter(entry, param, aProps.value(MARKER_TYPE_PROP).toString().toLatin1().data());
}
+
+ if(aProps.contains(MATERIAL_PROP)) {
+ param = occParam + MATERIAL_PROP;
+ ip->setParameter(entry, param, aProps.value(MATERIAL_PROP).toString().toLatin1().data());
+ }
+
+ if(aProps.contains( EDGE_WIDTH_PROP )) {
+ param = occParam + EDGE_WIDTH_PROP;
+ ip->setParameter(entry, param, aProps.value(EDGE_WIDTH_PROP).toString().toLatin1().data());
+ }
+
+ if(aProps.contains( ISOS_WIDTH_PROP )) {
+ param = occParam + ISOS_WIDTH_PROP;
+ ip->setParameter(entry, param, aProps.value(ISOS_WIDTH_PROP).toString().toLatin1().data());
+ }
} // object iterator
} // for (views)
} // for (viewManagers)
* \brief Restore visual parameters
*
* This method is called after the study document is opened.
- * Restore visual parameters from AttributeParameter attribue(s)
+ * Restore visual parameters from AttributeParameter attribute(s)
*/
void GeometryGUI::restoreVisualParameters (int savePoint)
{
} else if(paramNameStr == OPACITY_PROP) {
aListOfMap[viewIndex].insert(TRANSPARENCY_PROP, 1. - val.toDouble());
- } else if(paramNameStr == TRANSPARENCY_PROP) {
- aListOfMap[viewIndex].insert(TRANSPARENCY_PROP, val.toDouble());
+ } else if(paramNameStr == TRANSPARENCY_PROP) {
+ aListOfMap[viewIndex].insert( TRANSPARENCY_PROP, val.toDouble() );
+ } else if(paramNameStr == TOP_LEVEL_PROP) {
+ aListOfMap[viewIndex].insert( TRANSPARENCY_PROP, val == "1" ? Standard_True : Standard_False );
+
} else if(paramNameStr == DISPLAY_MODE_PROP) {
aListOfMap[viewIndex].insert( DISPLAY_MODE_PROP, val.toInt());
aListOfMap[viewIndex].insert( DEFLECTION_COEFF_PROP, val.toDouble());
} else if(paramNameStr == MARKER_TYPE_PROP) {
aListOfMap[viewIndex].insert( MARKER_TYPE_PROP, val);
+ } else if(paramNameStr == MATERIAL_PROP) {
+ aListOfMap[viewIndex].insert( MATERIAL_PROP, val);
+ } else if(paramNameStr == EDGE_WIDTH_PROP) {
+ aListOfMap[viewIndex].insert( EDGE_WIDTH_PROP , val);
+ } else if(paramNameStr == ISOS_WIDTH_PROP) {
+ aListOfMap[viewIndex].insert( ISOS_WIDTH_PROP , val);
}
+
+
} // for names/parameters iterator
QList<SUIT_ViewManager*> lst = getApp()->viewManagers();
}
}
+/*!
+ \brief Return action by id
+ \param id identifier of the action
+ \return action
+*/
+QAction* GeometryGUI::getAction(const int id) {
+ return action(id);
+}
+
+/*!
+ \brief Check if this object is can't be renamed in place
+
+ This method can be re-implemented in the subclasses.
+ Return true in case if object isn't reference or component (module root).
+
+ \param entry column id
+ \return \c true if the item can be renamed by the user in place (e.g. in the Object browser)
+*/
+bool GeometryGUI::renameAllowed( const QString& entry) const {
+
+ SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+ SalomeApp_Study* appStudy = app ? dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) : 0;
+ SalomeApp_DataObject* obj = appStudy ? dynamic_cast<SalomeApp_DataObject*>(appStudy->findObjectByEntry(entry)) : 0;
+
+ return (app && appStudy && obj && !appStudy->isComponent(entry) && !obj->isReference());
+}
+
+
/*!
Rename object by entry.
\param entry entry of the object
\brief Return \c true if rename operation finished successfully, \c false otherwise.
*/
bool GeometryGUI::renameObject( const QString& entry, const QString& name) {
-
- bool appRes = SalomeApp_Module::renameObject(entry,name);
- if( !appRes )
- return false;
-
+
bool result = false;
-
+
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication());
SalomeApp_Study* appStudy = app ? dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) : 0;
-
+
if(!appStudy)
return result;
-
+
_PTR(Study) aStudy = appStudy->studyDS();
-
+
if(!aStudy)
return result;
+ bool aLocked = (_PTR(AttributeStudyProperties)(appStudy->studyDS()->GetProperties()))->IsLocked();
+ if ( aLocked ) {
+ SUIT_MessageBox::warning ( app->desktop(), QObject::tr("WRN_WARNING"), QObject::tr("WRN_STUDY_LOCKED") );
+ return result;
+ }
+
_PTR(SObject) obj ( aStudy->FindObjectID(qPrintable(entry)) );
_PTR(GenericAttribute) anAttr;
if ( obj ) {
}
return result;
}
+