ADTF Display Toolbox
Loading...
Searching...
No Matches
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
16namespace osg
17{
18
19class Node;
20class Vec3d;
21class Quat;
22
23} // namespace osg
24
25namespace adtf
26{
27
28namespace disptb
29{
30
31namespace mixinlib
32{
33
34namespace endor
35{
36
40class INodeHandler : public ucom::ant::IObject
41{
42public:
44 ADTF_IID(INodeHandler, "node_handler.endor.mixinlib.disptb.adtf.iid");
45
51 virtual tResult GetName(base::ant::IString&& strName) const = 0;
52
54 typedef enum
55 {
56 CM_ALT = 1,
57 CM_CTRL = 2,
58 CM_SHIFT = 4,
59 CM_LEFT_MB = 8,
60 CM_RIGHT_MB = 16,
61 CM_MIDDLE_MB = 32
62 } tModifiers;
63
73 virtual tResult OnPick(tInt32 nPosX, tInt32 nPosY, tUInt32 nFlags, const tNodePath& sNodePath, IMenu& oMenu) = 0;
74};
75
79class ICoordinateSystem : public ucom::ant::IObject
80{
81public:
83 ADTF_IID(ICoordinateSystem, "coordinatesystem.endor.mixinlib.disptb.adtf.iid";);
84
85public:
91 virtual tResult GetName(base::ant::IString&& strName) const = 0;
92
98 virtual tResult GetChildren(ucom::ant::iobject_enum<ICoordinateSystem>& oChildren) = 0;
99
106 virtual tResult AddNode(osg::Node* pNode, INodeHandler* pNodeHandler = nullptr) = 0;
107
114 virtual tResult CreateChild(const tChar* strName, ucom::ant::iobject_ptr<ICoordinateSystem>& pChild) = 0;
115
120 virtual tVoid SetPosition(const osg::Vec3d& oPos) = 0;
121
126 virtual tVoid SetAttitude(const osg::Quat& oQuat) = 0;
127
132 virtual tVoid SetScale(const osg::Vec3d& oScale) = 0;
133
138 virtual tVoid SetPivotPoint(const osg::Vec3d& oPivot) = 0;
139};
140
141} // namespace endor
142
145
146} // namespace mixinlib
147
148} // namespace disptb
149
150} // namespace adtf
Interface for managing a (context) menu.
Definition menu_intf.h:161
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.
Namespace for functionality provided by the Mixin Library.
Definition baseobject.h:26
Namespace for functionality provided by the Display Toolbox.
Main namespace.