Dash.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libmspub
3  * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License or as specified alternatively below. You may obtain a copy of
8  * the License at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * Major Contributor(s):
16  * Copyright (C) 2012 Brennan Vincent <brennanv@email.arizona.edu>
17  *
18  * All Rights Reserved.
19  *
20  * For minor contributions see the git repository.
21  *
22  * Alternatively, the contents of this file may be used under the terms of
23  * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
24  * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
25  * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
26  * instead of those above.
27  */
28 
29 #ifndef __DASH_H__
30 #define __DASH_H__
31 
32 #include <boost/optional.hpp>
33 #include <vector>
34 
35 namespace libmspub
36 {
38 {
41 };
43 {
55 };
56 struct Dot
57 {
58  boost::optional<double> m_length;
59  unsigned m_count;
60  Dot(unsigned count) : m_length(), m_count(count)
61  {
62  }
63  Dot(unsigned count, double length) : m_length(length), m_count(count)
64  {
65  }
66 };
67 struct Dash
68 {
69  double m_distance;
71  std::vector<Dot> m_dots; // empty vector is interpreted as solid line
72  Dash(double distance, DotStyle dotStyle) : m_distance(distance),
73  m_dotStyle(dotStyle), m_dots()
74  {
75  }
76 };
77 bool operator!=(const Dot &lhs, const Dot &rhs);
78 bool operator==(const Dot &lhs, const Dot &rhs);
79 bool operator==(const Dash &lhs, const Dash &rhs);
80 Dash getDash(MSPUBDashStyle style, unsigned shapeLineWidthInEmu,
81  DotStyle dotStyle);
82 } // namespace libmspub
83 
84 #endif /* __DASH_H__ */
85 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Dot(unsigned count, double length)
Definition: Dash.h:63
boost::optional< double > m_length
Definition: Dash.h:58
Definition: Dash.h:39
Definition: Dash.h:51
Definition: Dash.h:54
DotStyle
Definition: Dash.h:37
Definition: Dash.h:48
Definition: Dash.h:49
Definition: Dash.h:67
std::vector< Dot > m_dots
Definition: Dash.h:71
Definition: Dash.h:47
Definition: Dash.h:46
unsigned m_count
Definition: Dash.h:59
Dash(double distance, DotStyle dotStyle)
Definition: Dash.h:72
Definition: Dash.h:52
Dash getDash(MSPUBDashStyle style, unsigned shapeLineWidthInEmu, DotStyle dotStyle)
Definition: Dash.cpp:59
Definition: Dash.h:45
Definition: Dash.h:56
bool operator!=(const Dot &lhs, const Dot &rhs)
Definition: Dash.cpp:37
Definition: Dash.h:53
Dot(unsigned count)
Definition: Dash.h:60
bool operator==(const libmspub::ColorReference &l, const libmspub::ColorReference &r)
Definition: ColorReference.cpp:42
Definition: Dash.h:50
MSPUBDashStyle
Definition: Dash.h:42
Definition: Dash.h:44
DotStyle m_dotStyle
Definition: Dash.h:70
Definition: Dash.h:40
double m_distance
Definition: Dash.h:69

Generated for libmspub by doxygen 1.8.6