OpendTect  6.6
vismaterial.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Kristofer Tingdahl
8  Date: 4-11-2002
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "color.h"
16 #include "visnodestate.h"
17 #include "uistring.h"
18 
19 namespace osg {
20  class Material;
21  class Array;
22  class Geometry;
23  class StateSet;
24  class StateAttribute;
25 };
26 
27 class IOPar;
28 
29 namespace visBase
30 {
38 public:
40 
42 
43  void setFrom(const Material&, bool trigger= false);
44 
45  void setPropertiesFrom(const Material&, bool trigger= false);
48  bool trigger = true);
52  enum ColorMode { Ambient, Diffuse, Specular, Emission,
53  AmbientAndDiffuse, Off };
54 
57 
58  void setColor(const Color&,int=-1,bool trigger=true);
62  Color getColor(int matnr=0) const;
63 
64  void removeColor(int idx);
65 
66  void setDiffIntensity(float);
68  float getDiffIntensity() const;
69 
70  void setAmbience(float);
72  float getAmbience() const;
73 
74  void setSpecIntensity(float);
76  float getSpecIntensity() const;
77 
78  void setEmmIntensity(float);
80  float getEmmIntensity() const;
81 
82  void setShininess(float);
84  float getShininess() const;
85 
86  void setTransparency(float,int idx=0,bool updt=false);
88  void setAllTransparencies( float n );
91  void setTransparencies(float,const Interval<int>& range);
92 
93  float getTransparency(int idx=0) const;
94 
95  void rescaleTransparency(float bendpower);
96 
97  int usePar(const IOPar&);
98  void fillPar(IOPar&) const;
99 
100  int nrOfMaterial() const;
101 
102  void clear();
103 
106 
107  void setColorBindType(unsigned int);
108 
110 
111 private:
115 
117  void setColorArray(osg::Array*);
118  void removeOsgColor(int);
120  float getRescaledTransparency() const;
121 
122  static const char* sKeyColor();
123  static const char* sKeyAmbience();
124  static const char* sKeyDiffIntensity();
125  static const char* sKeySpectralIntensity();
126  static const char* sKeyEmmissiveIntensity();
127  static const char* sKeyShininess();
128  static const char* sKeyTransparency();
129 
130  friend class OsgColorArrayUpdator;
131 
132  osg::Material* material_;
133 
135  float ambience_;
138  float shininess_;
140 
141  unsigned int colorbindtype_;
142 
145  osg::Array* osgcolorarray_;
148 };
149 
150 } // namespace visBase
151 
152 
visBase::Material::getTransparency
float getTransparency(int idx=0) const
visBase::Material::sKeyAmbience
static const char * sKeyAmbience()
visBase::Material::setColors
void setColors(const TypeSet< Color > &, bool trigger=true)
visBase::Material::getRescaledTransparency
float getRescaledTransparency() const
Assumes object is write-locked.
uistring.h
visnodestate.h
visBase::Material::mODTextTranslationClass
mODTextTranslationClass(Material)
ObjectSet< osg::Geometry >
visBase::Material::setColor
void setColor(const Color &, int=-1, bool trigger=true)
visBase::Material::osgcolorarray_
osg::Array * osgcolorarray_
Definition: vismaterial.h:145
visBase::Material::getEmmIntensity
float getEmmIntensity() const
Geometry
Definition: arraytesselator.h:21
visBase
Definition: visannot.h:43
visBase::Material::Material
Material()
visBase::Material::colorbindtype_
unsigned int colorbindtype_
Definition: vismaterial.h:141
visBase::Material::Specular
@ Specular
Definition: vismaterial.h:52
visBase::Material::usePar
int usePar(const IOPar &)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visBase::Material::sKeyDiffIntensity
static const char * sKeyDiffIntensity()
sKey::Geometry
FixedString Geometry()
Definition: keystrs.h:72
osg
Open Scene Graph.
Definition: visannot.h:29
visBase::Material::sKeyShininess
static const char * sKeyShininess()
visBase::Material::setShininess
void setShininess(float)
visBase::Material::setEmmIntensity
void setEmmIntensity(float)
visBase::Material::getSpecIntensity
float getSpecIntensity() const
visBase::Material::emmissiveintensity_
float emmissiveintensity_
Definition: vismaterial.h:137
visBase::Material::ambience_
float ambience_
Definition: vismaterial.h:135
visBase::Material::getColors
const TypeSet< Color > getColors()
visBase::Material::setPropertiesFrom
void setPropertiesFrom(const Material &, bool trigger=false)
visBase::Material::material_
osg::Material * material_
Definition: vismaterial.h:132
visBase::Material::updateOsgMaterial
void updateOsgMaterial()
Used when no array is present.
visBase::Material::clear
void clear()
visBase::Material::detachGeometry
void detachGeometry(osg::Geometry *)
visBase::Material::getColor
Color getColor(int matnr=0) const
visBase::Material::sKeyTransparency
static const char * sKeyTransparency()
visBase::Material::nrOfMaterial
int nrOfMaterial() const
visBase::Material::setFrom
void setFrom(const Material &, bool trigger=false)
visBase::Material::attachGeometry
void attachGeometry(osg::Geometry *)
visBase::Material::specularintensity_
float specularintensity_
Definition: vismaterial.h:136
visBase::Material::setAllTransparencies
void setAllTransparencies(float n)
visBase::Material::removeOsgColor
void removeOsgColor(int)
visBase::Material::createOsgColorArray
void createOsgColorArray(int)
visBase::Material::ColorMode
ColorMode
Definition: vismaterial.h:52
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visBase::Material::getColorMode
ColorMode getColorMode() const
visBase::NodeState
Definition: visnodestate.h:27
visBase::Material::shininess_
float shininess_
Definition: vismaterial.h:138
visBase::Material
Definition: vismaterial.h:37
visBase::Material::removeColor
void removeColor(int idx)
visBase::Material::setSpecIntensity
void setSpecIntensity(float)
visBase::Material::setColorArray
void setColorArray(osg::Array *)
visBase::Material::sKeyColor
static const char * sKeyColor()
visBase::Material::getShininess
float getShininess() const
visBase::Material::color_
Color color_
Definition: vismaterial.h:134
visBase::Material::lock_
Threads::Lock lock_
Definition: vismaterial.h:143
visBase::Material::sKeySpectralIntensity
static const char * sKeySpectralIntensity()
visBase::Material::setAmbience
void setAmbience(float)
visBase::Material::change
Notifier< Material > change
Definition: vismaterial.h:41
color.h
visBase::Material::transparencybendpower_
float transparencybendpower_
Definition: vismaterial.h:147
visBase::Material::fillPar
void fillPar(IOPar &) const
visBase::Material::attachedgeoms_
ObjectSet< osg::Geometry > attachedgeoms_
Definition: vismaterial.h:146
visBase::Material::setColorBindType
void setColorBindType(unsigned int)
visBase::Material::getAmbience
float getAmbience() const
visBase::Material::getDiffIntensity
float getDiffIntensity() const
visBase::Material::rescaleTransparency
void rescaleTransparency(float bendpower)
Interval< int >
visBase::Material::setTransparencies
void setTransparencies(float, const Interval< int > &range)
visBase::Material::diffuseintensity_
float diffuseintensity_
Definition: vismaterial.h:139
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visBase::Material::setDiffIntensity
void setDiffIntensity(float)
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
visBase::Material::~Material
~Material()
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
visBase::Material::sKeyEmmissiveIntensity
static const char * sKeyEmmissiveIntensity()
visBase::Material::setColorMode
void setColorMode(ColorMode)
TypeSet< Color >
visBase::Material::setTransparency
void setTransparency(float, int idx=0, bool updt=false)

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021