Salome HOME
a83aa55e693bb0ca7e62e451e5e8abe5e972b426
[modules/visu.git] / src / PIPELINE / VISU_PointSpriteMapperHolder.cxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  VISU OBJECT : interactive object for VISU entities implementation
23 // File:    VISU_PointSpriteMapperHolder.cxx
24 // Author:  Alexey PETROV
25 // Module : VISU
26 //
27 #include "VISU_PointSpriteMapperHolder.hxx"
28 #include "VISU_OpenGLPointSpriteMapper.hxx"
29
30 #include "VISU_PipeLineUtils.hxx"
31 #include "SALOME_ExtractPolyDataGeometry.h"
32
33 #ifdef _DEBUG_
34 static int MYDEBUG = 0;
35 #else
36 static int MYDEBUG = 0;
37 #endif
38
39
40 //----------------------------------------------------------------------------
41 vtkStandardNewMacro(VISU_PointSpriteMapperHolder);
42
43
44 //----------------------------------------------------------------------------
45 VISU_PointSpriteMapperHolder
46 ::VISU_PointSpriteMapperHolder()
47 {
48   if(MYDEBUG)
49     MESSAGE("VISU_PointSpriteMapperHolder::VISU_PointSpriteMapperHolder - "<<this);
50 }
51
52
53 //----------------------------------------------------------------------------
54 VISU_PointSpriteMapperHolder
55 ::~VISU_PointSpriteMapperHolder()
56 {
57   if(MYDEBUG)
58     MESSAGE("VISU_PointSpriteMapperHolder::~VISU_PointSpriteMapperHolder - "<<this);
59 }
60
61
62 //----------------------------------------------------------------------------
63 void 
64 VISU_PointSpriteMapperHolder
65 ::ShallowCopy(VISU_MapperHolder *theMapperHolder,
66               bool theIsCopyInput)
67 {
68   if(VISU_PointSpriteMapperHolder* aMapperHolder = dynamic_cast<VISU_PointSpriteMapperHolder*>(theMapperHolder)){
69     if(theIsCopyInput)
70       SetGaussPtsIDMapper(aMapperHolder->GetGaussPtsIDMapper());
71     
72     VISU::CopyPointSpriteDataMapper(GetPointSpriteMapper(), 
73                                     aMapperHolder->GetPointSpriteMapper(), 
74                                     theIsCopyInput);
75     myExtractPolyDataGeometry->SetImplicitFunction(aMapperHolder->GetImplicitFunction());
76   }
77 }
78
79
80 //----------------------------------------------------------------------------
81 void
82 VISU_PointSpriteMapperHolder
83 ::SetGaussPtsIDMapper(const VISU::PGaussPtsIDMapper& theIDMapper)
84 {
85   myGaussPtsIDMapper = theIDMapper;
86   SetPolyDataIDMapper(theIDMapper);
87 }
88
89
90 //----------------------------------------------------------------------------
91 const VISU::PGaussPtsIDMapper&  
92 VISU_PointSpriteMapperHolder
93 ::GetGaussPtsIDMapper()
94 {
95   return myGaussPtsIDMapper;
96 }
97
98
99 //----------------------------------------------------------------------------
100 void
101 VISU_PointSpriteMapperHolder
102 ::OnCreateMapper()
103 {
104   myPointSpriteMapper = VISU_OpenGLPointSpriteMapper::New();
105   myPointSpriteMapper->Delete();
106   myPointSpriteMapper->SetColorModeToMapScalars();
107   myPointSpriteMapper->ScalarVisibilityOn();
108   SetPolyDataMapper(myPointSpriteMapper.GetPointer());
109 }
110
111
112 //----------------------------------------------------------------------------
113 VISU_OpenGLPointSpriteMapper* 
114 VISU_PointSpriteMapperHolder
115 ::GetPointSpriteMapper()
116 {
117   GetMapper();
118   return myPointSpriteMapper.GetPointer();
119 }
120
121
122 //----------------------------------------------------------------------------