• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
  • graphicsview
ScreenGraphicsItem_p.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2009-2010 Bastian Holst <bastianholst@gmx.de>
9 //
10 
11 #ifndef MARBLE_SCREENGRAPHICSITEMPRIVATE_H
12 #define MARBLE_SCREENGRAPHICSITEMPRIVATE_H
13 
14 #include "MarbleGraphicsItem_p.h"
15 #include "MarbleDebug.h"
16 
17 #include "BillboardGraphicsItem.h"
18 #include "ScreenGraphicsItem.h"
19 #include "ViewportParams.h"
20 
21 namespace Marble
22 {
23 
24 class ScreenGraphicsItemPrivate : public MarbleGraphicsItemPrivate
25 {
26  public:
27  ScreenGraphicsItemPrivate( ScreenGraphicsItem *screenGraphicsItem,
28  MarbleGraphicsItem *parent )
29  : MarbleGraphicsItemPrivate( screenGraphicsItem, parent ),
30  m_position(),
31  m_viewportSize(),
32  m_floatItemMoving( false ),
33  m_flags( 0 )
34  {
35  }
36 
37  virtual ~ScreenGraphicsItemPrivate()
38  {
39  }
40 
41  QList<QPointF> positions() const
42  {
43  QList<QPointF> list;
44 
45  list.append( positivePosition() );
46  return list;
47  }
48 
49  QPointF positivePosition() const
50  {
51  const QSizeF parentSize = m_parent ? m_parent->size() : m_viewportSize;
52  if ( !parentSize.isValid() ) {
53  mDebug() << "Invalid parent size";
54  return m_position;
55  }
56  QPointF position;
57  qreal x = m_position.x();
58  qreal y = m_position.y();
59 
60  position.setX( ( x >= 0 ) ? x : parentSize.width() + x - m_size.width() );
61  position.setY( ( y >= 0 ) ? y : parentSize.height() + y - m_size.height() );
62 
63  return position;
64  }
65 
66  QList<QPointF> absolutePositions() const
67  {
68  if( m_parent == 0 ) {
69  return positions();
70  }
71 
72  QList<QPointF> parentPositions;
73 
74  if( ScreenGraphicsItem *screenItem = dynamic_cast<ScreenGraphicsItem*>( m_parent ) ) {
75  parentPositions = screenItem->absolutePositions();
76  }
77  else if ( BillboardGraphicsItem *geoLabelItem = dynamic_cast<BillboardGraphicsItem *>( m_parent ) ) {
78  parentPositions = geoLabelItem->positions();
79  }
80 
81  QPointF relativePosition = positivePosition();
82 
83  QList<QPointF> absolutePositions;
84  foreach( QPointF point, parentPositions ) {
85  absolutePositions.append( point + relativePosition );
86  }
87 
88  return absolutePositions;
89  }
90 
91  void setProjection( const ViewportParams *viewport )
92  {
93  // If we have no parent
94  if( m_parent == 0 ) {
95  // Saving the screen size needed for positions()
96  m_viewportSize = viewport->size();
97  }
98  }
99 
100  bool isMovable() const
101  {
102  return ( m_flags & ScreenGraphicsItem::ItemIsMovable ) ? true : false;
103  }
104 
105  QPointF m_position;
106  // The size of the parent, or if no parent exists the size of the viewport.
107  QSizeF m_viewportSize;
108 
109  QPoint m_floatItemMoveStartPos;
110  bool m_floatItemMoving;
111 
112  ScreenGraphicsItem::GraphicsItemFlags m_flags;
113 };
114 
115 }
116 
117 #endif
BillboardGraphicsItem.h
Marble::ScreenGraphicsItemPrivate::~ScreenGraphicsItemPrivate
virtual ~ScreenGraphicsItemPrivate()
Definition: ScreenGraphicsItem_p.h:37
Marble::ScreenGraphicsItemPrivate::m_floatItemMoving
bool m_floatItemMoving
Definition: ScreenGraphicsItem_p.h:110
Marble::ViewportParams::size
QSize size() const
Definition: ViewportParams.cpp:260
Marble::BillboardGraphicsItem
Base class for all 2D labels (a.k.a.
Definition: BillboardGraphicsItem.h:32
Marble::ScreenGraphicsItemPrivate
Definition: ScreenGraphicsItem_p.h:24
Marble::ScreenGraphicsItemPrivate::m_floatItemMoveStartPos
QPoint m_floatItemMoveStartPos
Definition: ScreenGraphicsItem_p.h:109
MarbleGraphicsItem_p.h
QSizeF::isValid
bool isValid() const
Marble::MarbleGraphicsItem::size
QSizeF size() const
Returns the size of the item.
Definition: MarbleGraphicsItem.cpp:136
QPoint
MarbleDebug.h
Marble::ScreenGraphicsItemPrivate::m_flags
ScreenGraphicsItem::GraphicsItemFlags m_flags
Definition: ScreenGraphicsItem_p.h:112
QPointF
Marble::MarbleGraphicsItemPrivate::m_parent
MarbleGraphicsItem *const m_parent
Definition: MarbleGraphicsItem_p.h:107
Marble::ScreenGraphicsItemPrivate::positivePosition
QPointF positivePosition() const
Definition: ScreenGraphicsItem_p.h:49
QPointF::x
qreal x() const
QPointF::y
qreal y() const
QList::append
void append(const T &value)
Marble::MarbleGraphicsItem
Definition: MarbleGraphicsItem.h:34
QList< QPointF >
ScreenGraphicsItem.h
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
Marble::ScreenGraphicsItemPrivate::m_viewportSize
QSizeF m_viewportSize
Definition: ScreenGraphicsItem_p.h:107
ViewportParams.h
This file contains the headers for ViewportParams.
Marble::ScreenGraphicsItemPrivate::setProjection
void setProjection(const ViewportParams *viewport)
Definition: ScreenGraphicsItem_p.h:91
Marble::ScreenGraphicsItemPrivate::positions
QList< QPointF > positions() const
Definition: ScreenGraphicsItem_p.h:41
Marble::ScreenGraphicsItem::ItemIsMovable
Definition: ScreenGraphicsItem.h:34
QSizeF
Marble::ScreenGraphicsItemPrivate::m_position
QPointF m_position
Definition: ScreenGraphicsItem_p.h:105
QPointF::setX
void setX(qreal x)
QPointF::setY
void setY(qreal y)
Marble::ScreenGraphicsItem
Definition: ScreenGraphicsItem.h:30
Marble::MarbleGraphicsItemPrivate::m_size
QSizeF m_size
Definition: MarbleGraphicsItem_p.h:96
Marble::MarbleGraphicsItemPrivate
Definition: MarbleGraphicsItem_p.h:30
QSizeF::height
qreal height() const
Marble::ScreenGraphicsItemPrivate::isMovable
bool isMovable() const
Definition: ScreenGraphicsItem_p.h:100
Marble::mDebug
QDebug mDebug()
a function to replace qDebug() in Marble library code
Definition: MarbleDebug.cpp:36
Marble::ScreenGraphicsItemPrivate::absolutePositions
QList< QPointF > absolutePositions() const
Definition: ScreenGraphicsItem_p.h:66
QSizeF::width
qreal width() const
Marble::ScreenGraphicsItemPrivate::ScreenGraphicsItemPrivate
ScreenGraphicsItemPrivate(ScreenGraphicsItem *screenGraphicsItem, MarbleGraphicsItem *parent)
Definition: ScreenGraphicsItem_p.h:27
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal