~ubuntu-branches/ubuntu/wily/ifrit/wily

« back to all changes in this revision

Viewing changes to core/ipicker.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2009-09-13 14:53:24 UTC
  • mfrom: (1.1.11 upstream) (2.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090913145324-084ivqvf29arkc1b
Tags: 3.3.2-1
* New upstream release.
* Bump Standards-Version to 3.8.3.  No changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*=========================================================================
2
 
 
3
 
  Program:   Ionization FRont Interactive Tool (IFRIT)
4
 
  Language:  C++
5
 
 
6
 
 
7
 
Copyright (c) 2002-2006 Nick Gnedin 
8
 
All rights reserved.
9
 
 
10
 
This file may be distributed and/or modified under the terms of the
11
 
GNU General Public License version 2 as published by the Free Software
12
 
Foundation and appearing in the file LICENSE.GPL included in the
13
 
packaging of this file.
14
 
 
15
 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
16
 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
 
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
19
 
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
 
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
 
 
26
 
=========================================================================*/
 
1
/*=========================================================================
 
2
 
 
3
  Program:   Ionization FRont Interactive Tool (IFRIT)
 
4
  Language:  C++
 
5
 
 
6
 
 
7
Copyright (c) 2002-2006 Nick Gnedin 
 
8
All rights reserved.
 
9
 
 
10
This file may be distributed and/or modified under the terms of the
 
11
GNU General Public License version 2 as published by the Free Software
 
12
Foundation and appearing in the file LICENSE.GPL included in the
 
13
packaging of this file.
 
14
 
 
15
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
 
16
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
17
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
18
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
 
19
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
20
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 
21
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 
22
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 
23
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
24
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
25
 
 
26
=========================================================================*/
27
27
 
28
28
 
29
29
#include "ipicker.h"
41
41
#include "iobjectfactory.h"
42
42
#include "iprobefilter.h"
43
43
#include "iviewmodule.h"
 
44
#include "iviewsubject.h"
44
45
#include "iviewsubjectobserver.h"
45
 
#include "ivtk.h"
46
46
 
47
47
#include <vtkCellArray.h>
48
48
#include <vtkCellPicker.h>
231
231
 
232
232
iPicker::iPicker(iViewModule *vm) : iExtendableObject("Picker"), mViewModule(vm), mDataFormatter(vm), mPos(vm)
233
233
{
234
 
        mObjName = "";
235
 
        mObjType = _ObjectTypeUndefined;
 
234
        mSubjectName = "";
 
235
        mSubjectId = ViewSubject::Id::Undefined;
236
236
        mDataTypePointer = 0;
237
 
        mPickMethod = _PickMethodObject;
 
237
        mPickMethod = PickMethod::Object;
238
238
 
239
239
        //
240
240
        //  Handler
294
294
 
295
295
void iPicker::UpdateReport()
296
296
{
297
 
        mObjName = "Unknown";
 
297
        mSubjectName = "Unknown";
298
298
        mPos = mHandler->GetPickPosition();
299
299
 
300
300
        this->SetPointSize(mPointSize);
331
331
        //
332
332
        //  Get the object info
333
333
        //
334
 
#ifdef IVTK_44
335
 
        vtkProp *obj = mHandler->GetProp();
336
 
#else
337
334
        vtkProp *obj = mHandler->GetViewProp();
338
 
#endif
339
335
        if(obj == 0) 
340
336
        {
341
 
                mObjName = "";
 
337
                mSubjectName = "";
342
338
                mPointActor->VisibilityOff(); 
343
339
                return;
344
340
        }
346
342
 
347
343
        if(obs != 0)
348
344
        {
349
 
                mObjType = obs->GetObjectType();
350
 
                mObjName = obs->GetObjectName();
 
345
                mSubjectId = obs->GetSubjectId();
 
346
                mSubjectName = obs->GetSubjectName();
351
347
                mDataTypePointer = &obs->GetDataType();
352
348
        }
353
349
        else
354
350
        {
355
 
                mObjType = _ObjectTypeUndefined;
356
 
                mObjName = "Unknown";
 
351
                mSubjectId = ViewSubject::Id::Undefined;
 
352
                mSubjectName = "Unknown";
357
353
                mDataTypePointer = 0;
358
354
        }
359
355
 
406
402
                //
407
403
                //  Make the correction for the surface
408
404
                //
409
 
                if(mObjType == _ObjectTypeSurface)
 
405
                if(mSubjectId == ViewSubject::Id::Surface)
410
406
                {
411
407
                        j = obs->GetIsoSurfaceData().Var;
412
408
                        if(j>=0 && j<nvar) v[j] = obs->GetIsoSurfaceData().Level;
458
454
 
459
455
void iPicker::ShowPickedPoint(bool s)
460
456
{
461
 
        if(!mObjName.IsEmpty() && s)
 
457
        if(!mSubjectName.IsEmpty() && s)
462
458
        {
463
459
                mPointActor->VisibilityOn();
464
460
        }