Code

GSoC C++-ificiation merge and cleanup.
[inkscape.git] / src / helper / geom-nodetype.h
1 #ifndef INKSCAPE_HELPER_GEOM_NODETYPE_H
2 #define INKSCAPE_HELPER_GEOM_NODETYPE_H
4 /**
5  * Specific nodetype geometry functions for Inkscape, not provided my lib2geom.
6  *
7  * Author:
8  *   Johan Engelen <goejendaagh@zonnet.nl>
9  *
10  * Copyright (C) 2008 Johan Engelen
11  *
12  * Released under GNU GPL
13  */
15 #include <2geom/forward.h>
17 namespace Geom {
19 /**
20  *  What kind of node is this?  This is the value for the node->type
21  *  field.  NodeType indicates the degree of continuity required for
22  *  the node.  I think that the corresponding integer indicates which
23  *  derivate is connected. (Thus 2 means that the node is continuous
24  *  to the second derivative, i.e. has matching endpoints and tangents)
25  */
26 typedef enum {
27 /**  Discontinuous node, usually either start or endpoint of a path */
28     NODE_NONE,
29 /**  This node continuously joins two segments, but the unit tangent is discontinuous.*/
30     NODE_CUSP,
31 /**  This node continuously joins two segments, with continuous *unit* tangent. */
32     NODE_SMOOTH,
33 /**  This node is symmetric. I.e. continously joins two segments with continuous derivative */
34     NODE_SYMM
35 } NodeType;
38 NodeType get_nodetype(Curve const &c_incoming, Curve const &c_outgoing);
41 } // namespace Geom
43 #endif  // INKSCAPE_HELPER_GEOM_NODETYPE_H
45 /*
46   Local Variables:
47   mode:c++
48   c-file-style:"stroustrup"
49   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
50   indent-tabs-mode:nil
51   fill-column:99
52   End:
53 */
54 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :