OpendTect  6.6
emeditor.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: A.H. Bril
8  Date: 23-10-1996
9  Contents: Ranges
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "mpeenginemod.h"
16 #include "notify.h"
17 #include "emposid.h"
18 #include "factory.h"
19 #include "coord.h"
20 
21 class BufferStringSet;
22 
23 namespace EM { class EMObject; }
24 namespace Geometry { class ElementEditor; }
25 
26 namespace MPE
27 {
28 
45 mExpClass(MPEEngine) ObjectEditor : public RefCount::Referenced
46  , public CallBacker
47 {
48 public:
50 
51  const EM::EMObject& emObject() const { return *emobject_; }
52 
53  virtual void startEdit( const EM::PosID& );
54  virtual bool setPosition(const Coord3&);
55  virtual void finishEdit();
56 
57  bool canSnapAfterEdit(const EM::PosID&) const;
58  bool getSnapAfterEdit() const;
59  void setSnapAfterEdit(bool yn);
60 
61  void addUser() { nrusers++; }
62  void removeUser() { nrusers--; }
63  int nrUsers() const { return nrusers; }
64 
65  virtual const
71  virtual int getAlongMovingStyle() const { return -1; }
74  virtual void setAlongMovingStyle(int index ) {}
78  virtual void getEditIDs(TypeSet<EM::PosID>&) const;
80  virtual bool addEditID( const EM::PosID& );
83  virtual bool removeEditID( const EM::PosID& );
87  virtual Coord3 getPosition(const EM::PosID&) const;
88  virtual bool mayTranslate1D(const EM::PosID&) const;
89  virtual Coord3 translation1DDirection(const EM::PosID&) const;
90 
91  virtual bool mayTranslate2D(const EM::PosID&) const;
92  virtual Coord3 translation2DNormal(const EM::PosID&) const;
93 
94  virtual bool mayTranslate3D(const EM::PosID&) const;
95 
96  virtual bool maySetNormal(const EM::PosID&) const;
97  virtual Coord3 getNormal(const EM::PosID&) const;
98 
99  virtual bool maySetDirection(const EM::PosID&) const;
100  virtual Coord3 getDirectionPlaneNormal(const EM::PosID&) const;
101  virtual Coord3 getDirection(const EM::PosID&) const;
102 
108  static void enableNodeCloning(bool yn=true);
109 
110 protected:
112 
113  virtual bool setPosition(const EM::PosID&,
114  const Coord3&);
118 
121 
122  virtual void getAlongMovingNodes( const EM::PosID&,
124  TypeSet<float>* ) const;
129  virtual void cloneMovingNode(CallBacker*) {}
130 
138 
139  int nrusers;
140 
141 private:
144 
146 
148 };
149 
150 mDefineFactory1Param( MPEEngine, ObjectEditor, EM::EMObject&, EditorFactory );
151 
152 } // namespace MPE
153 
MPE::ObjectEditor::removeEditID
virtual bool removeEditID(const EM::PosID &)
MPE::ObjectEditor::getDirection
virtual Coord3 getDirection(const EM::PosID &) const
MPE::ObjectEditor::startEdit
virtual void startEdit(const EM::PosID &)
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
MPE::ObjectEditor::cloneMovingNode
virtual void cloneMovingNode(CallBacker *)
Definition: emeditor.h:129
emposid.h
MPE::ObjectEditor::nrUsers
int nrUsers() const
Definition: emeditor.h:63
MPE::ObjectEditor::setAlongMovingStyle
virtual void setAlongMovingStyle(int index)
Definition: emeditor.h:74
MPE::ObjectEditor::movingnode
EM::PosID movingnode
Definition: emeditor.h:132
MPE::ObjectEditor::canSnapAfterEdit
bool canSnapAfterEdit(const EM::PosID &) const
MPE::ObjectEditor::editPosChangeTrigger
void editPosChangeTrigger(CallBacker *)
factory.h
MPE::ObjectEditor::maySetDirection
virtual bool maySetDirection(const EM::PosID &) const
ObjectSet< Geometry::ElementEditor >
MPE::ObjectEditor::emObject
const EM::EMObject & emObject() const
Definition: emeditor.h:51
MPE::ObjectEditor::mayTranslate1D
virtual bool mayTranslate1D(const EM::PosID &) const
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
notify.h
MPE::ObjectEditor::mayTranslate3D
virtual bool mayTranslate3D(const EM::PosID &) const
Geometry
Definition: arraytesselator.h:21
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Geometry::ElementEditor
Definition: geeditor.h:25
MPE::ObjectEditor::setPosition
virtual bool setPosition(const Coord3 &)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
MPE::ObjectEditor::addEditID
virtual bool addEditID(const EM::PosID &)
MPE
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:32
MPE::ObjectEditor::emSectionChange
void emSectionChange(CallBacker *)
MPE::ObjectEditor::alongmovingnodesstart
TypeSet< Coord3 > alongmovingnodesstart
Definition: emeditor.h:136
MPE::ObjectEditor::alongmovingnodesfactors
TypeSet< float > alongmovingnodesfactors
Definition: emeditor.h:137
MPE::ObjectEditor::editpositionchange
Notifier< ObjectEditor > editpositionchange
Definition: emeditor.h:103
MPE::ObjectEditor::ObjectEditor
ObjectEditor(EM::EMObject &)
MPE::ObjectEditor::mayTranslate2D
virtual bool mayTranslate2D(const EM::PosID &) const
MPE::ObjectEditor::addUser
void addUser()
Definition: emeditor.h:61
MPE::ObjectEditor::getSnapAfterEdit
bool getSnapAfterEdit() const
MPE::ObjectEditor::getAlongMovingStyle
virtual int getAlongMovingStyle() const
Definition: emeditor.h:71
MPE::ObjectEditor::getEditIDs
virtual void getEditIDs(TypeSet< EM::PosID > &) const
MPE::ObjectEditor::getDirectionPlaneNormal
virtual Coord3 getDirectionPlaneNormal(const EM::PosID &) const
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
MPE::ObjectEditor::getAlongMovingStyleNames
virtual const BufferStringSet * getAlongMovingStyleNames() const
Definition: emeditor.h:66
MPE::ObjectEditor::snapafteredit
bool snapafteredit
Definition: emeditor.h:147
MPE::ObjectEditor::getPosition
virtual Coord3 getPosition(const EM::PosID &) const
MPE::ObjectEditor::getEditor
Geometry::ElementEditor * getEditor(const EM::SectionID &)
MPE::ObjectEditor::finishEdit
virtual void finishEdit()
MPE::ObjectEditor
Abstraction of EM Object editing. It gives lists of which nodes that may be moved,...
Definition: emeditor.h:47
MPE::ObjectEditor::removeUser
void removeUser()
Definition: emeditor.h:62
MPE::ObjectEditor::getEditor
const Geometry::ElementEditor * getEditor(const EM::SectionID &) const
MPE::ObjectEditor::snapafterthisedit
bool snapafterthisedit
Definition: emeditor.h:145
MPE::ObjectEditor::createEditor
virtual Geometry::ElementEditor * createEditor(const EM::SectionID &)=0
MPE::ObjectEditor::~ObjectEditor
~ObjectEditor()
MPE::ObjectEditor::enableNodeCloning
static void enableNodeCloning(bool yn=true)
MPE::ObjectEditor::getNormal
virtual Coord3 getNormal(const EM::PosID &) const
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
MPE::ObjectEditor::maySetNormal
virtual bool maySetNormal(const EM::PosID &) const
MPE::ObjectEditor::geeditors
ObjectSet< Geometry::ElementEditor > geeditors
Definition: emeditor.h:142
MPE::ObjectEditor::translation1DDirection
virtual Coord3 translation1DDirection(const EM::PosID &) const
MPE::ObjectEditor::startpos
Coord3 startpos
Definition: emeditor.h:133
MPE::ObjectEditor::emobject_
RefMan< EM::EMObject > emobject_
Definition: emeditor.h:131
MPE::ObjectEditor::setSnapAfterEdit
void setSnapAfterEdit(bool yn)
MPE::ObjectEditor::getAlongMovingNodes
virtual void getAlongMovingNodes(const EM::PosID &, TypeSet< EM::PosID > &, TypeSet< float > *) const
MPE::ObjectEditor::nrusers
int nrusers
Definition: emeditor.h:139
MPE::ObjectEditor::alongmovingnodes
TypeSet< EM::PosID > alongmovingnodes
Definition: emeditor.h:135
EM::EMObject
Base class for all EarthModel objects.
Definition: emobject.h:159
MPE::ObjectEditor::changedpids
TypeSet< EM::PosID > changedpids
Definition: emeditor.h:134
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
MPE::ObjectEditor::setPosition
virtual bool setPosition(const EM::PosID &, const Coord3 &)
TypeSet< EM::PosID >
RefMan< EM::EMObject >
MPE::mDefineFactory1Param
mDefineFactory1Param(MPEEngine, ObjectEditor, EM::EMObject &, EditorFactory)
MPE::ObjectEditor::translation2DNormal
virtual Coord3 translation2DNormal(const EM::PosID &) const
coord.h
MPE::ObjectEditor::sections
TypeSet< EM::SectionID > sections
Definition: emeditor.h:143

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