ADTF_DISPLAY_TOOLBOX  3.8.0 (ADTF 3.14.3)
coordinate_systems_intf.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include "mixin_types.h"
10 #include "menu_intf.h"
11 
12 #include <adtfucom3/adtf_ucom3.h>
13 #include <adtfbase/adtf_base.h>
14 #include <a_utils/a_utils.h>
15 
16 
17 namespace osg
18 {
19 
20 class Node;
21 class Vec3d;
22 class Quat;
23 
24 }
25 
26 namespace adtf
27 {
28 
29 namespace disptb
30 {
31 
32 namespace mixinlib
33 {
34 
35 namespace endor
36 {
37 
41 class INodeHandler: public ucom::ant::IObject
42 {
43 public:
45  ADTF_IID(INodeHandler, "node_handler.endor.mixinlib.disptb.adtf.iid");
46 
52  virtual tResult GetName(base::ant::IString&& strName) const = 0;
53 
55  typedef enum
56  {
57  CM_ALT = 1,
58  CM_CTRL = 2,
59  CM_SHIFT = 4,
60  CM_LEFT_MB = 8,
61  CM_RIGHT_MB = 16,
62  CM_MIDDLE_MB = 32
63  } tModifiers;
64 
74  virtual tResult OnPick(tInt32 nPosX,
75  tInt32 nPosY,
76  tUInt32 nFlags,
77  const tNodePath& sNodePath,
78  IMenu& oMenu) = 0;
79 };
80 
84 class ICoordinateSystem: public ucom::ant::IObject
85 {
86 public:
87 
89  ADTF_IID(ICoordinateSystem, "coordinatesystem.endor.mixinlib.disptb.adtf.iid";);
90 
91 public:
97  virtual tResult GetName(base::ant::IString&& strName) const = 0;
98 
104  virtual tResult GetChildren(ucom::ant::iobject_enum<ICoordinateSystem>& oChildren) = 0;
105 
112  virtual tResult AddNode(osg::Node* pNode, INodeHandler* pNodeHandler = nullptr) = 0;
113 
120  virtual tResult CreateChild(const tChar* strName, ucom::ant::iobject_ptr<ICoordinateSystem>& pChild) = 0;
121 
126  virtual tVoid SetPosition(const osg::Vec3d& oPos) = 0;
127 
132  virtual tVoid SetAttitude(const osg::Quat& oQuat) = 0;
133 
138  virtual tVoid SetScale(const osg::Vec3d& oScale) = 0;
139 
144  virtual tVoid SetPivotPoint(const osg::Vec3d& oPivot) = 0;
145 };
146 
147 }
148 
150 using endor::INodeHandler;
151 
152 } // mixinlib
153 
154 } // disptb
155 
156 } // adtf
Interface for managing a (context) menu.
Definition: menu_intf.h:165
virtual tResult CreateChild(const tChar *strName, ucom::ant::iobject_ptr< ICoordinateSystem > &pChild)=0
Creates a new child coordinate system.
virtual tVoid SetAttitude(const osg::Quat &oQuat)=0
Set the attitude of the coordinate system.
virtual tResult GetName(base::ant::IString &&strName) const =0
Returns the name of the coordinate system.
virtual tVoid SetPosition(const osg::Vec3d &oPos)=0
Set the position of the coordinate system.
virtual tVoid SetScale(const osg::Vec3d &oScale)=0
Set the scale of the coordinate system.
ADTF_IID(ICoordinateSystem, "coordinatesystem.endor.mixinlib.disptb.adtf.iid";)
Define an interface id for this class
virtual tResult GetChildren(ucom::ant::iobject_enum< ICoordinateSystem > &oChildren)=0
Returns all child coordinate systems.
virtual tResult AddNode(osg::Node *pNode, INodeHandler *pNodeHandler=nullptr)=0
Adds a node to the coordinate system.
virtual tVoid SetPivotPoint(const osg::Vec3d &oPivot)=0
Set the pivot point of the coordinate system.
Interface for a handler that is responsible for a node and all its children.
virtual tResult GetName(base::ant::IString &&strName) const =0
Returns the name of the handler.
ADTF_IID(INodeHandler, "node_handler.endor.mixinlib.disptb.adtf.iid")
Define an interface id for this class
virtual tResult OnPick(tInt32 nPosX, tInt32 nPosY, tUInt32 nFlags, const tNodePath &sNodePath, IMenu &oMenu)=0
Called when an object has been picked by the user.
tModifiers
Enum values representing key / mouse modifiers.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Main namespace.