1 package org.djutils.draw.curve;
2
3 /**
4 * Additional curve properties.
5 * <p>
6 * Copyright (c) 2023-2025 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
7 * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is
8 * distributed under a three-clause BSD-style license, which can be found at
9 * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>.
10 * </p>
11 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
12 * @author <a href="https://www.tudelft.nl/pknoppers">Peter Knoppers</a>
13 * @author <a href="https://github.com/wjschakel">Wouter Schakel</a>
14 */
15 public interface Curvature
16 {
17 /**
18 * Start curvature of this Curve2d.
19 * @return start curvature of this Curve2d.
20 */
21 double getStartCurvature();
22
23 /**
24 * End curvature of this Curve2d..
25 * @return end curvature of this Curve2d
26 */
27 double getEndCurvature();
28
29 /**
30 * Start radius of this Curve2d.
31 * @return start radius of this Curve2d
32 */
33 default double getStartRadius()
34 {
35 return 1.0 / getStartCurvature();
36 }
37
38 /**
39 * End radius of this Curve2d.
40 * @return end radius of this Curve2d
41 */
42 default double getEndRadius()
43 {
44 return 1.0 / getEndCurvature();
45 }
46
47 }