Back to index

salome-gui  6.5.0
SVTK_Trihedron.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 #include "SVTK_Trihedron.h"
00024 #include "SALOME_Actor.h"
00025 
00026 #include "VTKViewer_Algorithm.h"
00027 
00028 #include <vtkObjectFactory.h>
00029 #include <vtkActorCollection.h>
00030 #include <vtkRenderer.h>
00031 
00032 vtkStandardNewMacro(SVTK_Trihedron);
00033 
00037 SVTK_Trihedron
00038 ::SVTK_Trihedron()
00039 {
00040 }
00041 
00046 int 
00047 SVTK_Trihedron
00048 ::GetVisibleActorCount(vtkRenderer* theRenderer)
00049 {
00050   VTK::ActorCollectionCopy aCopy(theRenderer->GetActors());
00051   vtkActorCollection* aCollection = aCopy.GetActors();
00052   aCollection->InitTraversal();
00053   int aCount = 0;
00054   while(vtkActor* aProp = aCollection->GetNextActor()) {
00055     if(aProp->GetVisibility())
00056     {
00057       if(SALOME_Actor* anActor = SALOME_Actor::SafeDownCast(aProp)) {
00058         if(!anActor->IsInfinitive()) 
00059           aCount++;
00060       }
00061       else if ( !OwnActor( aProp ) ) {
00062         aCount++;
00063       }
00064     }
00065   }
00066   return aCount;
00067 }