MarkupPartFixedSizeArrow.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: Visualization
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2017, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeVisualization/Base.h"
16 #include "CeeVisualization/MarkupPart.h"
17 
18 #include "CeeCore/RefCountedObject.h"
19 #include "CeeCore/Color3f.h"
20 #include "CeeCore/Vec3d.h"
21 #include "CeeCore/PtrRef.h"
22 
23 namespace cee {
24 namespace vis {
25 
26 //==================================================================================================
27 //
28 //
29 //
30 //==================================================================================================
31 class CEE_VIS_EXPORT MarkupPartFixedSizeArrow : public MarkupPart
32 {
33 public:
35  MarkupPartFixedSizeArrow(const Vec3d& position, const Vec3d& direction, double lengthInPixels, const Color3f& color);
36  virtual ~MarkupPartFixedSizeArrow();
37 
38  virtual PartType type() const;
39  virtual BoundingBox boundingBox() const;
40 
41  virtual void setPriority(int priority);
42  virtual int priority() const;
43 
44  virtual const Mat4d& transformation() const;
45  virtual void setTransformation(const Mat4d& matrix);
46 
47  const Color3f& color() const;
48  void setColor(const Color3f& color);
49 
50  Vec3d position() const;
51  void setPosition(const Vec3d& pos);
52 
53  Vec3d direction() const;
54  void setDirection(const Vec3d& dir);
55 
56  double lengthInPixels() const;
57  void setLengthInPixels(double length);
58 
59  unsigned int numberOfSubDivisions() const;
60  void setNumberOfSubDivisions(unsigned int numSubDivisions);
61 
62 protected:
63  virtual bool internal_preRenderUpdatePart(bool forceUpdate, cvf::OpenGLContext* cvfContext, MarkupClippingData* clippingData);
64  virtual cvf::Part* internal_cvfPart();
65  virtual cvf::Transform* internal_cvfTransform();
66 
67 private:
68  CEE_PRIVATE_IMPL(MarkupPartFixedSizeArrow);
69  CEE_DISALLOW_COPY_AND_ASSIGN(MarkupPartFixedSizeArrow);
70 };
71 
72 } // namespace vis
73 } // namespace cee
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
PartType
Enum specifying the type of MarkupPart.
Definition: MarkupPart.h:39
Base class for MarkupModel Parts.
Definition: MarkupPart.h:35
Axis-aligned bounding box.
Definition: BoundingBox.h:27
A MarkupModel part for drawing an arrow with a constant size independent of the camera settings...
Definition: MarkupPartFixedSizeArrow.h:31
Class for storing an RGB color triplet.
Definition: Color3f.h:25
Vector class for a 3D double vector.
Definition: Vec3d.h:26
4 dimensional matrix.
Definition: Mat4d.h:26