X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_DeviceActor.cxx;h=dd7c3480b7968332244c586e04e135ef0fd9a6a2;hb=f3ce9fcd4028efd124456c5e55c4c4c7983cad9f;hp=562eaed739f011ba16d605f1288819fb8f18352c;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/OBJECT/SMESH_DeviceActor.cxx b/src/OBJECT/SMESH_DeviceActor.cxx index 562eaed73..dd7c3480b 100644 --- a/src/OBJECT/SMESH_DeviceActor.cxx +++ b/src/OBJECT/SMESH_DeviceActor.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 @@ -6,7 +6,7 @@ // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -63,6 +63,8 @@ #include +#include + #include "utilities.h" #ifdef _DEBUG_ @@ -90,6 +92,7 @@ SMESH_DeviceActor myProperty = vtkProperty::New(); myMapper = VTKViewer_PolyDataMapper::New(); + myPlaneCollection = vtkPlaneCollection::New(); vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(myPolygonOffsetFactor, myPolygonOffsetUnits); @@ -228,6 +231,11 @@ SMESH_DeviceActor myExtractUnstructuredGrid->SetInputData(theGrid); myMergeFilter->SetGeometryConnection(myExtractUnstructuredGrid->GetOutputPort()); + + //Pass diameters of the balls + if(myMapper->GetBallEnabled()) { + myMergeFilter->SetScalarsConnection(myExtractUnstructuredGrid->GetOutputPort()); + } myExtractGeometry->SetInputConnection(myMergeFilter->GetOutputPort()); @@ -251,12 +259,20 @@ SMESH_DeviceActor anId++; // 5 myMapper->SetInputConnection( myPassFilter[ anId ]->GetOutputPort() ); + if( myPlaneCollection->GetNumberOfItems() ) + myMapper->SetClippingPlanes( myPlaneCollection ); vtkLODActor::SetMapper( myMapper ); Modified(); } } +void +SMESH_DeviceActor +::SetPlaneCollection( vtkPlaneCollection* theCollection ) +{ + myPlaneCollection = theCollection; +} VTKViewer_ExtractUnstructuredGrid* SMESH_DeviceActor @@ -935,6 +951,24 @@ void SMESH_DeviceActor::SetMarkerEnabled( bool theMarkerEnabled ) myMapper->SetMarkerEnabled( theMarkerEnabled ); } +/*! + * Set point marker enabled + * \param theBallEnabled flag to enable/disable ball drawing + */ +void SMESH_DeviceActor::SetBallEnabled( bool theBallEnabled ) { + myMapper->SetBallEnabled( theBallEnabled ); +} + +/*! + * Set point marker scale factor + * \param theBallScale double value which specifies a scale factor of ball element + */ +void SMESH_DeviceActor::SetBallScale( double theBallScale ) +{ + myMapper->SetBallScale( theBallScale ); + myMapper->Modified(); +} + /*! * Set standard point marker * \param theMarkerType type of the marker @@ -981,6 +1015,15 @@ int SMESH_DeviceActor::GetMarkerTexture() return myMapper->GetMarkerTexture(); } +/*! + * Get scale factor of ball element + * \return scale factor of ball element + */ +double SMESH_DeviceActor::GetBallScale() +{ + return myMapper->GetBallScale(); +} + void SMESH_DeviceActor::SetCoincident3DAllowed(bool theFlag) { myGeomFilter->SetAppendCoincident3D(theFlag); }