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

« back to all changes in this revision

Viewing changes to core/isolidviewsubject.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 "isolidviewsubject.h"
49
49
#include "ibuffertemplate.h"
50
50
 
51
51
 
52
 
#include "iparameter.h"
53
52
using namespace iParameter;
54
53
 
55
54
 
66
65
//
67
66
// Main class
68
67
//
69
 
iSolidViewSubject::iSolidViewSubject(iViewModule *vm, const iDataType &type, const iString &name, int numActors, unsigned int flags, float maxOpacity) : iViewSubject(vm,type,name,flags), mNoColor((flags&_ViewSubjectNoColor)!=0U), mNoOpacity((flags&_ViewSubjectNoOpacity)!=0U), mNoPalette((flags&_ViewSubjectNoPalette)!=0U), mSameColor((flags&_ViewSubjectSameColor)!=0U), mSameOpacity((flags&_ViewSubjectSameOpacity)!=0U), mSamePalette((flags&_ViewSubjectSamePalette)!=0U), mMaxOpacity(maxOpacity)
 
68
iSolidViewSubject::iSolidViewSubject(iViewModule *vm, const iDataType &type, const iString &name, int numActors, unsigned int flags, float maxOpacity) : iViewSubject(vm,type,name,flags), mNoColor((flags&ViewSubject::Flag::NoColor)!=0U), mNoOpacity((flags&ViewSubject::Flag::NoOpacity)!=0U), mNoPalette((flags&ViewSubject::Flag::NoPalette)!=0U), mSameColor((flags&ViewSubject::Flag::SameColor)!=0U), mSameOpacity((flags&ViewSubject::Flag::SameOpacity)!=0U), mSamePalette((flags&ViewSubject::Flag::SamePalette)!=0U), mMaxOpacity(maxOpacity)
70
69
{
71
70
        int i;
72
71
 
92
91
                        a = iReplicatedActor::New(this); IERROR_ASSERT(a);
93
92
                }
94
93
                a->SetScalarVisibility(false);
95
 
                a->GetLookupTable()->SetPalette(this->GetViewModule()->GetControlModule()->GetPalette(0));
 
94
                a->GetLookupTable()->SetPaletteId(1);
96
95
                a->GetLookupTable()->SetColor(mDefaultColor);
97
96
                a->ColorByArrayComponent(0,0); 
98
97
                a->SetPosition(0.0,0.0,0.0);
214
213
}
215
214
 
216
215
 
217
 
void iSolidViewSubject::SetPalette(int l, int p)
 
216
void iSolidViewSubject::SetPaletteId(int l, int p)
218
217
{
219
218
        if(mSamePalette && l!=0) l = 0;
220
219
 
221
 
        int n = this->GetViewModule()->GetControlModule()->GetNumberOfPalettes();
222
 
        if(!mNoPalette && l>=0 && l<mActors.Size() && p>=-n && p<=n && (p!=0 || !mNoColor))
 
220
        if(!mNoPalette && l>=0 && l<mActors.Size() && (p!=0 || !mNoColor))
223
221
        {
224
222
                this->ShowColorBars(false);
225
223
                int i, n = mSamePalette ? mActors.Size() : l+1;
226
224
                for(i=l; i<n; i++)
227
225
                {
228
 
                        mActors[i]->GetLookupTable()->SetPalette(this->GetViewModule()->GetControlModule()->GetPalette(iMath::Abs(p)-1));
229
 
                        mActors[i]->GetLookupTable()->SetReversed(p < 0);
 
226
                        mActors[i]->GetLookupTable()->SetPaletteId(p);
230
227
                        mPalettes[i] = p;
231
228
                }
232
229
                this->ShowColorBars(true);
309
306
        {
310
307
                n = mSamePalette ? 1 : mPalettes.Size();
311
308
                ibuf.Fill(mPalettes.Data(),n);
312
 
                if(this->UnPackValue(s,KeyPalette(),ibuf,n)) for(i=0; i<n; i++) this->SetPalette(i,ibuf[i]);
 
309
                if(this->UnPackValue(s,KeyPalette(),ibuf,n)) for(i=0; i<n; i++) this->SetPaletteId(i,ibuf[i]);
313
310
        }
314
311
 
315
312
        this->SolidViewSubjectUnPackStateBody(s);