The Gnome Chemistry Utils
0.14.0
Main Page
Namespaces
Classes
Files
File List
File Members
libs
gcp
gcp/arrow.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
3
/*
4
* GChemPaint library
5
* arrow.h
6
*
7
* Copyright (C) 2002-2012 Jean Bréfort <jean.brefort@normalesup.org>
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License as
11
* published by the Free Software Foundation; either version 3 of the
12
* License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
22
* USA
23
*/
24
25
#ifndef GCHEMPAINT_ARROW_H
26
#define GCHEMPAINT_ARROW_H
27
28
#include <
gcu/object.h
>
29
#include <
gccv/item-client.h
>
30
32
namespace
gcp {
33
34
class
Step;
35
39
enum
ArrowTypes
40
{
44
SimpleArrow
,
48
ReversibleArrow
,
52
FullReversibleArrow
,
53
};
54
57
class
Arrow
:
public
gcu::Object
,
public
gccv::ItemClient
58
{
59
public
:
66
Arrow
(
gcu::TypeId
Type);
70
virtual
~Arrow
();
71
80
bool
Load
(xmlNodePtr node);
88
void
SetSelected
(
int
state);
97
void
SetCoords
(
double
xstart,
double
ystart,
double
xend,
double
yend);
106
bool
GetCoords
(
double
* xstart,
double
* ystart,
double
* xend,
double
* yend)
const
;
115
bool
GetCoords
(
double
*x,
double
*y,
double
*z = NULL)
const
;
123
void
Move
(
double
x,
double
y,
double
z = 0);
131
void
Transform2D
(
gcu::Matrix2D
& m,
double
x,
double
y);
136
double
GetYAlign
();
146
bool
SetProperty
(
unsigned
property,
char
const
*value);
153
void
SetStartStep
(
Step
*step) {m_Start = step;}
157
Step
**
GetStartStepPtr
() {
return
&m_Start;}
161
Step
*
GetStartStep
()
const
{
return
m_Start;}
168
void
SetEndStep
(
Step
*step) {m_End = step;}
172
Step
*
GetEndStep
()
const
{
return
m_End;}
176
Step
**
GetEndStepPtr
() {
return
&m_End;}
180
void
Reverse
();
187
void
RemoveStep
(
Step
*step);
188
189
protected
:
197
bool
Save
(xmlDocPtr xml, xmlNodePtr node)
const
;
198
202
std::string
Name
();
203
207
void
OnLoaded
();
208
209
protected
:
213
double
m_x
;
217
double
m_y
;
221
double
m_width
;
225
double
m_height
;
226
227
private
:
228
Step
*m_Start, *m_End;
229
233
GCU_RO_PROP
(
double
, Length)
234
};
235
236
}
// namespace gcp
237
238
#endif //GCHEMPAINT_ARROW_H
Generated on Tue Jan 1 2013 22:29:22 for The Gnome Chemistry Utils by
1.8.1.2