0 | module CyBy.Draw.Internal.CoreDims
 1 |
 2 | import Data.Nat
 3 | import Text.Measure
 4 |
 5 | %default total
 6 |
 7 | ||| Core drawing settings used for computing the geometric properties of
 8 | ||| drawn molecules.
 9 | public export
10 | record CoreDims where
11 |   [noHints]
12 |   constructor CD
13 |   radiusAtom        : Double
14 |   bondWidth         : Double
15 |   bondBGWidth       : Double
16 |   selectBufferSize  : Double
17 |   angleSteps        : Nat
18 |   font              : String
19 |   fontSize          : Nat
20 |   subscriptSize     : Nat
21 |
22 |   ||| Gap between two bars of a downward facing wedge
23 |   downWedgeGap      : Double
24 |
25 |   ||| Width of the narrow end of a wedge
26 |   wedgeNarrowEnd    : Double
27 |
28 |   ||| Width of the wide end of a wedge
29 |   wedgeWideEnd      : Double
30 |
31 |   ||| Half the wavelength of a wavy bond
32 |   halfWaveLength    : Double
33 |
34 |   ||| Amplitude of a wavy bond
35 |   waveAmplitude     : Double
36 |
37 |   ||| Utility used for measuring text
38 |   measure           : Measure
39 |
40 |   0 stepsPrf        : IsSucc angleSteps
41 |
42 | export
43 | defaultCore : CoreDims
44 | defaultCore =
45 |   CD
46 |     { radiusAtom        = 5.0
47 |     , bondWidth         = 1.0
48 |     , bondBGWidth       = 4.0
49 |     , selectBufferSize  = 10.0
50 |     , angleSteps        = 24
51 |     , stepsPrf          = ItIsSucc
52 |     , font              = "Arial, Helvetica, 'Liberation Sans', sans-serif"
53 |     , fontSize          = 11
54 |     , subscriptSize     = 7
55 |     , downWedgeGap      = 2.0
56 |     , wedgeNarrowEnd    = 0.1
57 |     , wedgeWideEnd      = 5
58 |     , halfWaveLength    = 2.5
59 |     , waveAmplitude     = 1.5
60 |     , measure           = defaultMeasure
61 |     }
62 |