OpendTect  6.6
visnormals.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 
16 #include "visbasemod.h"
17 #include "visdata.h"
18 #include "positionlist.h"
19 #include "viscoord.h"
20 
21 namespace Threads { class Mutex; };
22 
23 
24 namespace visBase
25 {
26 
32 {
33 public:
34  static Normals* create()
36 
37  void inverse();
39  int nrNormals() const;
41  void setNormal(int,const Coord3&);
42  int addNormal(const Coord3&);
43  int nextID(int previd) const;
44  void removeNormal( int );
45  Coord3 getNormal(int) const;
46  void addNormalValue(int,const Coord3&);
47  void clear();
48 
49  void setAll(const float* vals,int nmsz);
51 
52  void setAll(const Coord3* coords,int nmsz);
54 
55  void setAll(const Coord3& coord,int nmsz);
57 
58  void setDisplayTransformation(const mVisTrans* nt);
59  const mVisTrans* getDisplayTransformation() const
60  { return transformation_; }
61 
62  osg::Array* osgArray() { return osgnormals_; }
63  const osg::Array* osgArray() const { return osgnormals_; }
64 
65 protected:
71 
73 
74  osg::Array* osgnormals_;
75  friend class DoTransformation;
76 
77 };
78 
80 {
81 public:
83  : normals_( n )
84  { normals_.ref(); }
85 
86  int nextID(int previd) const{ return normals_.nextID(previd); }
87 
88  int add(const Coord3& n ) { return normals_.addNormal(n); }
89  void set(int idx,const Coord3& n) { normals_.setNormal(idx,n); }
90  void remove(int idx) { normals_.removeNormal(idx); }
91  Coord3 get(int idx) const { return normals_.getNormal(idx); }
92  void addValue(int idx, const Coord3& n)
93  { normals_.addNormalValue(idx,n ); }
94  bool isDefined(int idx) const
95  { return normals_.getNormal(idx).isDefined(); }
96  void remove(const TypeSet<int>&);
97  int size() const { return normals_.nrNormals(); }
98 
99  Normals* getNormals() { return &normals_; }
100 
101 protected:
102  ~NormalListAdapter() { normals_.unRef(); }
103 
105 };
106 
107 };
108 
visBase::NormalListAdapter::normals_
Normals & normals_
Definition: visnormals.h:104
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visBase::NormalListAdapter::getNormals
Normals * getNormals()
Definition: visnormals.h:99
visBase::Normals::create
static Normals * create()
Definition: visnormals.h:34
visBase::Normals::osgArray
osg::Array * osgArray()
Definition: visnormals.h:62
Threads::Mutex
Is a lock that allows a thread to have exlusive rights to something.
Definition: thread.h:45
visBase::Normals::osgnormals_
osg::Array * osgnormals_
Definition: visnormals.h:74
visBase
Definition: visannot.h:43
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
viscoord.h
visBase::NormalListAdapter
Definition: visnormals.h:80
visBase::Normals::unusednormals_
TypeSet< int > unusednormals_
Definition: visnormals.h:69
visBase::DataObject
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:63
visBase::NormalListAdapter::addValue
void addValue(int idx, const Coord3 &n)
Adds value to existing value at id.
Definition: visnormals.h:92
visBase::NormalListAdapter::NormalListAdapter
NormalListAdapter(Normals &n)
Definition: visnormals.h:82
visBase::NormalListAdapter::remove
void remove(int idx)
Definition: visnormals.h:90
visBase::NormalListAdapter::nextID
int nextID(int previd) const
Definition: visnormals.h:86
visBase::Normals::mutex_
Threads::Mutex & mutex_
Definition: visnormals.h:70
visBase::NormalListAdapter::get
Coord3 get(int idx) const
Definition: visnormals.h:91
visBase::NormalListAdapter::add
int add(const Coord3 &n)
Return new id, or -1 if unsuccessful.
Definition: visnormals.h:88
visBase::Normals::transformation_
const visBase::Transformation * transformation_
Definition: visnormals.h:72
visBase::NormalListAdapter::remove
void remove(const TypeSet< int > &)
May contain duplicates.
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visdata.h
positionlist.h
visBase::Normals::~Normals
~Normals()
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
visBase::NormalListAdapter::set
void set(int idx, const Coord3 &n)
Definition: visnormals.h:89
Coord3List
Interface for a list of Coord3 with automatically maintained IDs.
Definition: positionlist.h:72
visBase::NormalListAdapter::~NormalListAdapter
~NormalListAdapter()
Definition: visnormals.h:102
visBase::NormalListAdapter::size
int size() const
Definition: visnormals.h:97
visBase::NormalListAdapter::isDefined
bool isDefined(int idx) const
Definition: visnormals.h:94
Threads
interface to threads that should be portable.
Definition: atomic.h:23
visBase::Normals
Definition: visnormals.h:32
StrmOper::clear
void clear(std::ios &)
visBase::Normals::osgArray
const osg::Array * osgArray() const
Definition: visnormals.h:63
TypeSet< int >

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