<parameter name="point_color" value="255, 255, 0" />
<parameter name="isos_color" value="200, 200, 200" />
<parameter name="toplevel_color" value="170, 85, 0" />
+ <parameter name="toplevel_dm" value="0" />
<parameter name="type_of_marker" value="1" />
<parameter name="deflection_coeff" value="0.001" />
<parameter name="auto_create_base_objects" value="false" />
while( ite.More() ) {
if( ite.Value()->IsInstance( STANDARD_TYPE(GEOM_AISShape) ) ) {
Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast( ite.Value() );
- ic->SetDisplayMode( aSh, Standard_Integer( newmode ),true );
+ if(aSh->isTopLevel()) {
+ aSh->setPrevDisplayMode(Standard_Integer( newmode ));
+ }
+ else {
+ ic->SetDisplayMode( aSh, Standard_Integer( newmode ),true );
+ }
}
ite.Next();
}
AIS_ListOfInteractive shapes; occPrs->GetObjects( shapes );
AIS_ListIteratorOfListOfInteractive interIter( shapes );
for ( ; interIter.More(); interIter.Next() ) {
- if ( mode == 0 )
- ic->SetDisplayMode( interIter.Value(), AIS_WireFrame, false );
- else if ( mode == 1 )
- ic->SetDisplayMode( interIter.Value(), AIS_Shaded, false );
- else if ( mode == 2 )
- ic->SetDisplayMode( interIter.Value(), GEOM_AISShape::ShadingWithEdges, false );
- else if ( mode == 3 )
- ic->SetDisplayMode( interIter.Value(), AIS_ExactHLR, false );
- else if (mode == 4 ) {
- Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast( interIter.Value() );
- if ( !aSh.IsNull() ) {
+ Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast( interIter.Value() );
+ if ( !aSh.IsNull() ) {
+ if(!aSh->isTopLevel()) {
+ if ( mode == 0 )
+ ic->SetDisplayMode( interIter.Value(), AIS_WireFrame, false );
+ else if ( mode == 1 )
+ ic->SetDisplayMode( interIter.Value(), AIS_Shaded, false );
+ else if ( mode == 2 )
+ ic->SetDisplayMode( interIter.Value(), GEOM_AISShape::ShadingWithEdges, false );
+ else if ( mode == 3 )
+ ic->SetDisplayMode( interIter.Value(), AIS_ExactHLR, false );
+ } else {
+ aSh->setPrevDisplayMode(mode);
+ }
+ if (mode == 4 ) {
vectorMode = !aSh->isShowVectors();
aSh->SetDisplayVectors(vectorMode);
ic->RecomputePrsOnly(interIter.Value());
if ( lst.Extent() ) {
Handle(AIS_InteractiveObject) io = lst.First();
if ( !io.IsNull() ) {
- int dm = io->DisplayMode();
+ int dm;
+ Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(io);
+ if(!aSh.IsNull()) {
+ dm = aSh->isTopLevel() ? aSh->prevDisplayMode() : aSh->DisplayMode();
+ } else {
+ dm = io->DisplayMode();
+ }
OCC_DISPLAY_MODE_TO_STRING( res, dm );
if ( res.isEmpty() ) { // return default display mode of AIS_InteractiveContext
OCCViewer_Viewer* occViewer = (OCCViewer_Viewer*)SUIT_Session::session()->activeApplication()->
#include <GEOM_Actor.h>
#include <GEOM_AISShape.hxx>
+#include <GEOM_TopWireframeShape.hxx>
#include <GEOM_AISVector.hxx>
#include <GEOM_AISTrihedron.hxx>
#include <GEOM_VTKTrihedron.hxx>
}
// Setup shape properties here ..., e.g. display mode, color, transparency, etc
- AISShape->SetDisplayMode( aPropMap.value(DISPLAY_MODE_PROP).toInt() );
- AISShape->SetDisplayVectors(aPropMap.value(VECTOR_MODE_PROP).toInt());
+ Standard_Boolean isTopLevel = Standard_False;
if(aPropMap.contains(TOP_LEVEL_PROP)) {
- AISShape->setTopLevel( aPropMap.value(TOP_LEVEL_PROP).value<Standard_Boolean>() );
- }
+ isTopLevel = aPropMap.value(TOP_LEVEL_PROP).value<Standard_Boolean>();
+ }
+ AISShape->SetDisplayMode( aPropMap.value(DISPLAY_MODE_PROP).toInt() );
+ AISShape->setTopLevel(isTopLevel);
+
+ AISShape->SetDisplayVectors(aPropMap.value(VECTOR_MODE_PROP).toInt());
}else {
MESSAGE("myDisplayMode = "<< myDisplayMode)
AISShape->SetDisplayMode( myDisplayMode );
QStringList uv = anIsos.split(DIGIT_SEPARATOR);
anUIsoNumber = uv[0].toInt();
aVIsoNumber = uv[1].toInt();
- //AISShape->SetTransparency(aPropMap.value(TRANSPARENCY_PROP).toDouble());
+ AISShape->SetTransparency(aPropMap.value(TRANSPARENCY_PROP).toDouble());
} else {
anUIsoNumber = aResMgr->integerValue("OCCViewer", "iso_number_u", 1);
aVIsoNumber = aResMgr->integerValue("OCCViewer", "iso_number_v", 1);
useObjMarker = true;
}
}
- }
-
+ }
else
{
if ( onlyVertex )
material.fromProperties( aPropMap.value(MATERIAL_PROP).toString() );
} else {
// Get material property from study and construct material model
- QString mname = aResMgr->stringValue( "Geometry", "material", "Plastic" );
+ QString mname = aResMgr->stringValue( "Geometry", "material", "Plastic" );
material.fromResources( mname );
}
aStudy->setObjectProperty( aMgrId, anIO->getEntry(), MATERIAL_PROP, material.toProperties() );
// Set material for the selected shape
- AISShape->SetMaterial( material.getMaterialOCCAspect() );
-
- if(HasWidth())
- aStudy->setObjectProperty( aMgrId, anIO->getEntry(), EDGE_WIDTH_PROP, GetWidth() );
-
- if(HasIsosWidth())
- aStudy->setObjectProperty( aMgrId, anIO->getEntry(), ISOS_WIDTH_PROP, GetIsosWidth() );
-
-
+ AISShape->SetMaterial( material.getMaterialOCCAspect() );
+ if(HasWidth())
+ aStudy->setObjectProperty( aMgrId, anIO->getEntry(), EDGE_WIDTH_PROP, GetWidth() );
+ if(HasIsosWidth())
+ aStudy->setObjectProperty( aMgrId, anIO->getEntry(), ISOS_WIDTH_PROP, GetIsosWidth() );
}
// AISShape->SetName(???); ??? necessary to set name ???
occPrs->AddObject( AISShape );
-
+
// In accordance with ToActivate() value object will be activated/deactivated
// when it will be displayed
occPrs->SetToActivate( ToActivate() );
+
+ if( AISShape->isTopLevel() && AISShape->topLevelDisplayMode() == GEOM_AISShape::TopShowAdditionalWActor) {
+ //21671: EDF 1829 GEOM : Bring to front selected objects (continuation):
+ // Display wireframe presentation additionally
+ Handle(GEOM_TopWireframeShape) aWirePrs = new GEOM_TopWireframeShape(myShape);
+ aWirePrs->SetWidth(AISShape->Width());
+ if ( !myIO.IsNull() ) {
+ aWirePrs->setIO( myIO );
+ aWirePrs->SetOwner( myIO );
+ }
+ occPrs->AddObject(aWirePrs);
+ }
}
}
// if presentation is found -> set again shape for it
<source>PREF_TOPLEVEL_COLOR</source>
<translation>Top level color</translation>
</message>
+ <message>
+ <source>PREF_TOPLEVEL_DM</source>
+ <translation>Top level display mode</translation>
+ </message>
+ <message>
+ <source>MEN_KEEP_CURRENT_DM</source>
+ <translation>Keep current display mode</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW_ADD_WACTOR</source>
+ <translation>Show additional wireframe actor</translation>
+ </message>
<message>
<source>PREF_LINE_COLOR</source>
<translation>Color of edges, vectors, wires</translation>
#include <SalomeApp_Application.h>
#include <SalomeApp_DataObject.h>
#include <SalomeApp_Study.h>
+#include <SalomeApp_Tools.h>
#include <LightApp_SelectionMgr.h>
#include <LightApp_VTKSelector.h>
mgr->setRule( action( GEOMOp::OpReimport ), QString("$imported in {'true'} and selcount>0"), QtxPopupMgr::VisibleRule );
mgr->hide( mgr->actionId( action( myEraseAll ) ) );
+
+
+ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+ if(resMgr) {
+ GEOM_AISShape::setTopLevelDisplayMode((GEOM_AISShape::TopLevelDispMode)resMgr->integerValue("Geometry", "toplevel_dm", 0));
+ QColor c = resMgr->colorValue( "Geometry", "toplevel_color", QColor( 170, 85, 0 ) );
+ GEOM_AISShape::setTopLevelColor(SalomeApp_Tools::color(c));
+ }
}
//=======================================================================
addPreference( tr( "PREF_TOPLEVEL_COLOR" ), genGroup,
LightApp_Preferences::Color, "Geometry", "toplevel_color" );
- addPreference( "", genGroup, LightApp_Preferences::Space );
-
+ int top_lev_dm = addPreference( tr( "PREF_TOPLEVEL_DM" ), genGroup,
+ LightApp_Preferences::Selector, "Geometry", "toplevel_dm" );
int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
setPreferenceProperty( dispmode, "strings", aModesList );
setPreferenceProperty( dispmode, "indexes", anIndexesList );
+
+ // Set property for top level display mode
+ QStringList aTopModesList;
+ aTopModesList.append( tr("MEN_KEEP_CURRENT_DM") );
+ aTopModesList.append( tr("MEN_WIREFRAME") );
+ aTopModesList.append( tr("MEN_SHADING") );
+ aTopModesList.append( tr("MEN_SHADING_WITH_EDGES") );
+ aTopModesList.append( tr("MEN_SHOW_ADD_WACTOR") );
+
+ QList<QVariant> aTopIndexesList;
+ aTopIndexesList.append(0);
+ aTopIndexesList.append(1);
+ aTopIndexesList.append(2);
+ aTopIndexesList.append(3);
+ aTopIndexesList.append(4);
+
+ setPreferenceProperty( top_lev_dm, "strings", aTopModesList );
+ setPreferenceProperty( top_lev_dm, "indexes", aTopIndexesList );
+
// Set property for step value for spinboxes
setPreferenceProperty( step, "min", 1 );
setPreferenceProperty( step, "max", 10000 );
if (param == QString("SettingsGeomStep")) {
double spin_step = aResourceMgr->doubleValue(section, param, 100.);
EmitSignalDefaultStepValueChanged(spin_step);
+ } else if(param == QString("toplevel_color")) {
+ QColor c = aResourceMgr->colorValue( "Geometry", "toplevel_color", QColor( 170, 85, 0 ) );
+ GEOM_AISShape::setTopLevelColor(SalomeApp_Tools::color(c));
+ } else if(param == QString("toplevel_dm")) {
+ GEOM_AISShape::setTopLevelDisplayMode((GEOM_AISShape::TopLevelDispMode)aResourceMgr->integerValue("Geometry", "toplevel_dm", 0));
}
- }
+ }
}
LightApp_Displayer* GeometryGUI::displayer()
if (isOCC) { // if is OCCViewer
OCCViewer_Viewer* vm = dynamic_cast<OCCViewer_Viewer*>(window->getViewManager()->getViewModel());
Handle (AIS_InteractiveContext) ic = vm->getAISContext();
+ SALOME_View* view = GEOM_Displayer::GetActiveView();
ic->InitCurrent();
if (ic->MoreCurrent()) {
Handle(GEOM_AISShape) CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
Dlg->setTheLW(aWidth);
int aNewWidth = 0;
if (Dlg->exec()) {
- aNewWidth = Dlg->getTheLW();
- bool ok = (aNewWidth != aWidth && aNewWidth != 0 );
- if (ok) {
- for(; ic->MoreCurrent(); ic->NextCurrent()) {
- CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
- CurObject->SetWidth(aNewWidth);
- ic->Redisplay(CurObject);
- appStudy->setObjectProperty(mgrId,CurObject->getIO()->getEntry(), EDGE_WIDTH_PROP, aNewWidth);
+ aNewWidth = Dlg->getTheLW();
+ bool ok = (aNewWidth != aWidth && aNewWidth != 0 );
+ if (ok) {
+ for(; ic->MoreCurrent(); ic->NextCurrent()) {
+ CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
+ SOCC_Prs* aPrs = dynamic_cast<SOCC_Prs*>(view->CreatePrs(CurObject->getIO()->getEntry()));
+ AIS_ListOfInteractive anAISObjects;
+ aPrs->GetObjects( anAISObjects );
+ AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );
+ for ( ; aIter.More(); aIter.Next() ) {
+ Handle(SALOME_AISShape) cur = Handle(SALOME_AISShape)::DownCast(aIter.Value());
+ if ( !cur.IsNull() ) {
+ cur->SetWidth(aNewWidth);
+ ic->Redisplay(cur);
+ }
+ }
+ appStudy->setObjectProperty(mgrId, CurObject->getIO()->getEntry(), EDGE_WIDTH_PROP, aNewWidth);
+ }
+ }
}
- }
- }
}
else {
return;
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
+#include <TColStd_SequenceOfInteger.hxx>
+
+#include <V3d_View.hxx>
+
#include <SalomeApp_Tools.h>
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
+GEOM_AISShape::TopLevelDispMode GEOM_AISShape::myTopLevelDm = GEOM_AISShape::TopKeepCurrent;
+Quantity_Color GEOM_AISShape::myTopLevelColor;
+
static void getEntityOwners( const Handle(AIS_InteractiveObject)& theObj,
const Handle(AIS_InteractiveContext)& theIC,
: SALOME_AISShape(shape), myName(aName), myDisplayVectors(false)
{
myShadingColor = Quantity_Color( Quantity_NOC_GOLDENROD );
-
+ myPrevDisplayMode = 0;
storeBoundaryColors();
+
myEdgesInShadingColor = Quantity_Color( Quantity_NOC_GOLDENROD );
myUIsoNumber = -1;
myDrawer->ShadingAspect()->Aspect()->SetFrontMaterial(aMatAspect);
myDrawer->ShadingAspect()->Aspect()->SetBackMaterial(aMatAspect);
}
- myCurrentMaterial = myDrawer->ShadingAspect()->Aspect()->FrontMaterial();
+ myCurrentMaterial = myDrawer->ShadingAspect()->Aspect()->FrontMaterial();
}
void GEOM_AISShape::setIO(const Handle(SALOME_InteractiveObject)& io){
if (IsInfinite()) aPrs->SetInfiniteState(Standard_True); //pas de prise en compte lors du FITALL
Handle(AIS_InteractiveContext) anIC = GetContext();
-
+
// StdSelect_DisplayMode d = (StdSelect_DisplayMode) aMode;
+ bool isTopLev = (isTopLevel() && topLevelDisplayMode() != TopShowAdditionalWActor);
switch (aMode) {
case 0://StdSelect_DM_Wireframe:
{
-
restoreIsoNumbers();
-
// Restore wireframe edges colors
restoreBoundaryColors();
-
-
- if(isTopLevel()) {
- SetColor(topLevelColor());
- Handle(Prs3d_LineAspect) anAspect = Attributes()->WireAspect();
- anAspect->SetColor( topLevelColor() );
- Attributes()->SetWireAspect( anAspect );
+ if(isTopLev) {
+ SetColor(topLevelColor());
+ Handle(Prs3d_LineAspect) anAspect = Attributes()->WireAspect();
+ anAspect->SetColor( topLevelColor() );
+ Attributes()->SetWireAspect( anAspect );
}
-
- StdPrs_WFDeflectionShape::Add(aPrs,myshape,myDrawer);
-
+ StdPrs_WFDeflectionShape::Add(aPrs,myshape,myDrawer);
break;
}
case 1://StdSelect_DM_Shading:
{
restoreIsoNumbers();
-
shadingMode(aPresentationManager, aPrs, aMode);
-
// Store wireframe edges colors
storeBoundaryColors();
-
break;
}
case 3: //StdSelect_DM_HLR:
{
- if(!isTopLevel())
- AIS_TexturedShape::Compute(aPresentationManager, aPrs, aMode);
+ if(!isTopLev)
+ AIS_TexturedShape::Compute(aPresentationManager, aPrs, aMode);
else
- shadingMode(aPresentationManager, aPrs, AIS_Shaded);
+ shadingMode(aPresentationManager, aPrs, AIS_Shaded);
break;
}
}
// P->SetPrimitivesAspect(a4bis);
// G->SetGroupPrimitivesAspect(a4bis);
//a4bis->SetInteriorColor(myShadingColor);
- if( isTopLevel() )
+ if( isTopLevel() && topLevelDisplayMode() != TopShowAdditionalWActor )
myDrawer->ShadingAspect()->SetColor( topLevelColor() );
else {
if(myDrawer->ShadingAspect()->Aspect()->FrontMaterial().MaterialType( Graphic3d_MATERIAL_ASPECT ))
}
void GEOM_AISShape::setTopLevel(Standard_Boolean f) {
+ if(f) {
+ if(f != myTopLevel)
+ myPrevDisplayMode = DisplayMode();
+ Standard_Integer dm;
+ switch(topLevelDisplayMode()) {
+ case TopKeepCurrent : dm = myPrevDisplayMode; break;
+ case TopWireFrame : dm = AIS_WireFrame; break;
+ case TopShadingWithEdges : dm = ShadingWithEdges; break;
+ default : dm = AIS_Shaded; break;
+ }
+ SetDisplayMode(dm);
+ } else {
+ if(f != myTopLevel)
+ SetDisplayMode(myPrevDisplayMode);
+ }
myTopLevel = f;
}
+void GEOM_AISShape::setPrevDisplayMode(const Standard_Integer mode) {
+ myPrevDisplayMode = mode;
+}
+
Quantity_Color GEOM_AISShape::topLevelColor() {
- SUIT_Session* session = SUIT_Session::session();
- SUIT_ResourceMgr* resMgr = session->resourceMgr();
- QColor c = resMgr->colorValue( "Geometry", "toplevel_color", QColor( 170, 85, 0 ) );
- return SalomeApp_Tools::color(c);
+ return myTopLevelColor;
+}
+
+void GEOM_AISShape::setTopLevelColor(const Quantity_Color c) {
+ myTopLevelColor = c;
+}
+
+GEOM_AISShape::TopLevelDispMode GEOM_AISShape::topLevelDisplayMode() {
+ return myTopLevelDm;
+}
+void GEOM_AISShape::setTopLevelDisplayMode(const GEOM_AISShape::TopLevelDispMode dm) {
+ myTopLevelDm = dm;
}
+
+Standard_Boolean GEOM_AISShape::switchTopLevel() {
+ return myTopLevelDm != TopShowAdditionalWActor;
+}
+
+Standard_Boolean GEOM_AISShape::toActivate() {
+ return Standard_True;
+}
\ No newline at end of file
TexturedShape = ShadingWithEdges+1 //!< the same as AIS_ExactHLR
} DispMode;
+ //! Enumeration of top level display modes
+ typedef enum {
+ TopKeepCurrent = 0 , //!< Keep current display mode
+ TopWireFrame,
+ TopShading,
+ TopShadingWithEdges,
+ TopShowAdditionalWActor
+ } TopLevelDispMode;
+
+
inline void* operator new(size_t,void* anAddress)
{
return anAddress;
const Standard_Integer aMode = 0) ;
virtual bool isShowVectors () { return myDisplayVectors; }
+ virtual Standard_Boolean switchTopLevel();
+ virtual Standard_Boolean toActivate();
// Type management
//
void storeBoundaryColors();
static Quantity_Color topLevelColor();
+ static void setTopLevelColor(const Quantity_Color c);
+
+ static TopLevelDispMode topLevelDisplayMode();
+ static void setTopLevelDisplayMode(const TopLevelDispMode dm);
+
+ void setPrevDisplayMode(const Standard_Integer mode);
+ Standard_Integer prevDisplayMode() const {return myPrevDisplayMode;}
+
protected:
void shadingMode(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
int myVIsoNumber;
private:
- TCollection_AsciiString myName;
+ TCollection_AsciiString myName;
bool myDisplayVectors;
Standard_Boolean myTopLevel;
Graphic3d_MaterialAspect myCurrentMaterial;
+ Standard_Integer myPrevDisplayMode;
+ static TopLevelDispMode myTopLevelDm;
+ static Quantity_Color myTopLevelColor;
};
--- /dev/null
+// 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
+//
+// 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
+//
+
+// GEOM OBJECT : interactive object for Geometry entities visualization
+// File : GEOM_TopWireframeShape.cxx
+// Author :
+// Module : GEOM
+
+/*!
+ \class GEOM_TopWireframeShape GEOM_TopWireframeShape.hxx
+ \brief This class designed for drawing special OCC wireframe
+ presentation on the top level of the viewer.
+*/
+
+//Local includes
+#include "GEOM_TopWireframeShape.ixx"
+#include "GEOM_AISShape.hxx"
+
+//GUI includes
+#include <SALOME_InteractiveObject.hxx>
+
+//Open CASCADE includes
+#include <AIS_Drawer.hxx>
+#include <TopoDS_Shape.hxx>
+#include <Prs3d_IsoAspect.hxx>
+
+GEOM_TopWireframeShape::GEOM_TopWireframeShape(const TopoDS_Shape& shape)
+ : SALOME_AISShape(shape)
+{
+ SetDisplayMode(AIS_WireFrame);
+ Handle(Prs3d_IsoAspect) anAspect = Attributes()->UIsoAspect();
+ anAspect->SetNumber( 0 );
+ Attributes()->SetUIsoAspect( anAspect );
+ anAspect = Attributes()->VIsoAspect();
+ anAspect->SetNumber( 0 );
+ Attributes()->SetVIsoAspect( anAspect );
+ SetColor(GEOM_AISShape::topLevelColor());
+}
+
+Handle(SALOME_InteractiveObject) GEOM_TopWireframeShape::getIO(){
+ Handle(SALOME_InteractiveObject) IO;
+ if ( !GetOwner().IsNull() )
+ IO = Handle(SALOME_InteractiveObject)::DownCast( GetOwner() );
+ return IO;
+}
+
+Standard_Boolean GEOM_TopWireframeShape::hasIO(){
+ return !getIO().IsNull();
+}
+
+void GEOM_TopWireframeShape::setName(const Standard_CString /*aName*/)
+{
+}
+
+Standard_CString GEOM_TopWireframeShape::getName(){
+ return "";
+}
+
+
+void GEOM_TopWireframeShape::highlightSubShapes(const TColStd_IndexedMapOfInteger& /*aIndexMap*/,
+ const Standard_Boolean /*aHighlight*/ )
+{
+}
+
+Standard_Boolean GEOM_TopWireframeShape::isTopLevel() {
+ return Standard_True;
+}
+
+void GEOM_TopWireframeShape::setTopLevel(Standard_Boolean /*f*/) {
+
+}
+
+Standard_Boolean GEOM_TopWireframeShape::toActivate() {
+ return Standard_False;
+}
+
+Standard_Boolean GEOM_TopWireframeShape::switchTopLevel() {
+ return Standard_True;
+}
+
+void GEOM_TopWireframeShape::setIO(const Handle(SALOME_InteractiveObject)& io){
+ SetOwner( io );
+}
\ No newline at end of file
--- /dev/null
+// 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
+//
+// 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
+//
+
+// GEOM OBJECT : interactive object for Geometry entities visualization
+// File : GEOM_TopWireframeShape.hxx
+// Module : GEOM
+//
+#ifndef _GEOM_TopWireframeShape_HeaderFile
+#define _GEOM_TopWireframeShape_HeaderFile
+
+#include "GEOM_OBJECT_defs.hxx"
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Handle_GEOM_TopWireframeShape_HeaderFile
+#include "Handle_GEOM_TopWireframeShape.hxx"
+#endif
+
+#ifndef _SALOME_AISShape_HeaderFile
+#include "SALOME_AISShape.hxx"
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+
+class GEOM_OBJECT_EXPORT GEOM_TopWireframeShape : public SALOME_AISShape {
+
+public:
+
+ inline void* operator new(size_t,void* anAddress)
+ {
+ return anAddress;
+ }
+ inline void* operator new(size_t size)
+ {
+ return Standard::Allocate(size);
+ }
+ inline void operator delete(void *anAddress)
+ {
+ if (anAddress) Standard::Free((Standard_Address&)anAddress);
+ }
+ // inline void operator delete(void *anAddress, size_t size)
+ // {
+ // if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
+ // }
+
+ // Methods PUBLIC
+ //
+ GEOM_TopWireframeShape(const TopoDS_Shape& shape);
+ virtual Handle_SALOME_InteractiveObject getIO();
+ virtual Standard_Boolean hasIO();
+ virtual Standard_Boolean isTopLevel();
+ virtual Standard_Boolean switchTopLevel();
+ virtual Standard_Boolean toActivate();
+ virtual void setTopLevel(Standard_Boolean);
+ virtual Standard_CString getName();
+ virtual void setName(const Standard_CString aName);
+ virtual void highlightSubShapes(const TColStd_IndexedMapOfInteger& aIndexMap, const Standard_Boolean aHighlight );
+ ~GEOM_TopWireframeShape();
+
+ // Type management
+ //
+ friend Handle_Standard_Type& GEOM_TopWireframeShape_Type_();
+ const Handle(Standard_Type)& DynamicType() const;
+ Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
+
+
+ void setIO(const Handle(SALOME_InteractiveObject)& io);
+
+protected:
+
+ // Methods PROTECTED
+ //
+
+ // Fields PROTECTED
+ //
+
+private:
+
+ // Methods PRIVATE
+ //
+
+ // Fields PRIVATE
+ //
+};
+
+// other inline functions and methods (like "C++: function call" methods)
+//
+
+#endif
\ No newline at end of file
--- /dev/null
+// 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
+//
+// 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
+//
+
+// GEOM OBJECT : interactive object for Geometry entities visualization
+// File : GEOM_AISShape.ixx
+// Module : GEOM
+//
+#include "GEOM_TopWireframeShape.jxx"
+
+#ifndef _Standard_TypeMismatch_HeaderFile
+#include <Standard_TypeMismatch.hxx>
+#endif
+
+GEOM_TopWireframeShape::~GEOM_TopWireframeShape() {}
+
+Standard_EXPORT Handle_Standard_Type& GEOM_TopWireframeShape_Type_()
+{
+
+ static Handle_Standard_Type aType1 = STANDARD_TYPE(SALOME_AISShape);
+ if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SALOME_AISShape);
+ static Handle_Standard_Type aType2 = STANDARD_TYPE(AIS_Shape);
+ if ( aType2.IsNull()) aType2 = STANDARD_TYPE(AIS_Shape);
+ static Handle_Standard_Type aType3 = STANDARD_TYPE(AIS_InteractiveObject);
+ if ( aType3.IsNull()) aType3 = STANDARD_TYPE(AIS_InteractiveObject);
+ static Handle_Standard_Type aType4 = STANDARD_TYPE(SelectMgr_SelectableObject);
+ if ( aType4.IsNull()) aType4 = STANDARD_TYPE(SelectMgr_SelectableObject);
+ static Handle_Standard_Type aType5 = STANDARD_TYPE(PrsMgr_PresentableObject);
+ if ( aType5.IsNull()) aType5 = STANDARD_TYPE(PrsMgr_PresentableObject);
+ static Handle_Standard_Type aType6 = STANDARD_TYPE(MMgt_TShared);
+ if ( aType6.IsNull()) aType6 = STANDARD_TYPE(MMgt_TShared);
+ static Handle_Standard_Type aType7 = STANDARD_TYPE(Standard_Transient);
+ if ( aType7.IsNull()) aType7 = STANDARD_TYPE(Standard_Transient);
+
+
+ static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,aType5,aType6,aType7,NULL};
+ static Handle_Standard_Type _aType = new Standard_Type("GEOM_TopWireframeShape",
+ sizeof(GEOM_TopWireframeShape),
+ 1,
+ (Standard_Address)_Ancestors,
+ (Standard_Address)NULL);
+
+ return _aType;
+}
+
+
+// DownCast method
+// allow safe downcasting
+//
+const Handle(GEOM_TopWireframeShape) Handle(GEOM_TopWireframeShape)::DownCast(const Handle(Standard_Transient)& AnObject)
+{
+ Handle(GEOM_TopWireframeShape) _anOtherObject;
+
+ if (!AnObject.IsNull()) {
+ if (AnObject->IsKind(STANDARD_TYPE(GEOM_TopWireframeShape))) {
+ _anOtherObject = Handle(GEOM_TopWireframeShape)((Handle(GEOM_TopWireframeShape)&)AnObject);
+ }
+ }
+
+ return _anOtherObject ;
+}
+const Handle(Standard_Type)& GEOM_TopWireframeShape::DynamicType() const
+{
+ return STANDARD_TYPE(GEOM_TopWireframeShape) ;
+}
+Standard_Boolean GEOM_TopWireframeShape::IsKind(const Handle(Standard_Type)& AType) const
+{
+ return (STANDARD_TYPE(GEOM_TopWireframeShape) == AType || SALOME_AISShape::IsKind(AType));
+}
+Handle_GEOM_TopWireframeShape::~Handle_GEOM_TopWireframeShape() {}
+
--- /dev/null
+// 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
+//
+// 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
+//
+
+// GEOM OBJECT : interactive object for Geometry entities visualization
+// File : GEOM_AISShape.jxx
+// Module : GEOM
+//
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+
+#ifndef _GEOM_TopWireframeShape_HeaderFile
+#include "GEOM_TopWireframeShape.hxx"
+#endif
--- /dev/null
+// 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
+//
+// 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
+//
+
+// GEOM OBJECT : interactive object for Geometry entities visualization
+// File : Handle_GEOM_TopWireframeShape.hxx
+// Module : GEOM
+//
+#ifndef _Handle_GEOM_TopWireframeShape_HeaderFile
+#define _Handle_GEOM_TopWireframeShape_HeaderFile
+
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+
+#ifndef _Handle_SALOME_AISShape_HeaderFile
+#include "Handle_SALOME_AISShape.hxx"
+#endif
+
+class Standard_Transient;
+class Handle_Standard_Type;
+class Handle(SALOME_AISShape);
+class GEOM_TopWireframeShape;
+Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_TopWireframeShape);
+
+class Handle(GEOM_TopWireframeShape) : public Handle(SALOME_AISShape) {
+ public:
+ inline void* operator new(size_t,void* anAddress)
+ {
+ return anAddress;
+ }
+ inline void* operator new(size_t size)
+ {
+ return Standard::Allocate(size);
+ }
+ inline void operator delete(void *anAddress)
+ {
+ if (anAddress) Standard::Free((Standard_Address&)anAddress);
+ }
+// inline void operator delete(void *anAddress, size_t size)
+// {
+// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
+// }
+ Handle(GEOM_TopWireframeShape)():Handle(SALOME_AISShape)() {}
+ Handle(GEOM_TopWireframeShape)(const Handle(GEOM_TopWireframeShape)& aHandle) : Handle(SALOME_AISShape)(aHandle)
+ {
+ }
+
+ Handle(GEOM_TopWireframeShape)(const GEOM_TopWireframeShape* anItem) : Handle(SALOME_AISShape)((SALOME_AISShape *)anItem)
+ {
+ }
+
+ Handle(GEOM_TopWireframeShape)& operator=(const Handle(GEOM_TopWireframeShape)& aHandle)
+ {
+ Assign(aHandle.Access());
+ return *this;
+ }
+
+ Handle(GEOM_TopWireframeShape)& operator=(const GEOM_TopWireframeShape* anItem)
+ {
+ Assign((Standard_Transient *)anItem);
+ return *this;
+ }
+
+ GEOM_TopWireframeShape* operator->()
+ {
+ return (GEOM_TopWireframeShape *)ControlAccess();
+ }
+
+ GEOM_TopWireframeShape* operator->() const
+ {
+ return (GEOM_TopWireframeShape *)ControlAccess();
+ }
+
+ Standard_EXPORT ~Handle(GEOM_TopWireframeShape)();
+
+ Standard_EXPORT static const Handle(GEOM_TopWireframeShape) DownCast(const Handle(Standard_Transient)& AnObject);
+};
+#endif
GEOM_AISShape.ixx \
GEOM_AISShape.jxx \
Handle_GEOM_AISShape.hxx \
+ GEOM_TopWireframeShape.hxx \
+ GEOM_TopWireframeShape.ixx \
+ GEOM_TopWireframeShape.jxx \
+ Handle_GEOM_TopWireframeShape.hxx \
GEOM_InteractiveObject.hxx \
GEOM_InteractiveObject.ixx \
GEOM_InteractiveObject.jxx \
GEOM_Actor.cxx \
GEOM_OCCReader.cxx \
GEOM_AISShape.cxx \
+ GEOM_TopWireframeShape.cxx \
GEOM_InteractiveObject.cxx \
GEOM_AISTrihedron.cxx \
GEOM_VTKTrihedron.cxx \