/usr/share/doc/libghc-diagrams-lib-doc/html/Diagrams-Parametric.html is in libghc-diagrams-lib-doc 0.7.1.1-1build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Diagrams.Parametric</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Diagrams-Parametric.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Diagrams-Parametric.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">diagrams-lib-0.7.1.1: Embedded domain-specific language for declarative graphics</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>diagrams-discuss@googlegroups.com</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Diagrams.Parametric</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Parametric functions
</a></li><li><a href="#g:2">Adjusting
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Type classes for things which are parameterized in some way, <em>e.g.</em>
segments and trails.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:stdTolerance">stdTolerance</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => a</li><li class="src short"><span class="keyword">type family</span> <a href="#t:Codomain">Codomain</a> p :: *</li><li class="src short"><span class="keyword">class</span> <a href="#t:Parametric">Parametric</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:atParam">atParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:DomainBounds">DomainBounds</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:domainLower">domainLower</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:domainUpper">domainUpper</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li></ul></li><li class="src short"><span class="keyword">class</span> (<a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p, <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p) => <a href="#t:EndValues">EndValues</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:atStart">atStart</a> :: p -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li><li><a href="#v:atEnd">atEnd</a> :: p -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p => <a href="#t:Sectionable">Sectionable</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:splitAtParam">splitAtParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> (p, p)</li><li><a href="#v:section">section</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p</li><li><a href="#v:reverseDomain">reverseDomain</a> :: p -> p</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p => <a href="#t:HasArcLength">HasArcLength</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:arcLengthBounded">arcLengthBounded</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-intervals-doc/html/Numeric-Interval.html#t:Interval">Interval</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p))</li><li><a href="#v:arcLength">arcLength</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:stdArcLength">stdArcLength</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:arcLengthToParam">arcLengthToParam</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:stdArcLengthToParam">stdArcLengthToParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li></ul></li><li class="src short"><a href="#v:adjust">adjust</a> :: (<a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a, <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a))) => a -> <a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) -> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:AdjustOpts">AdjustOpts</a> v = <a href="#v:AO">AO</a> {<ul class="subs"><li><a href="#v:adjMethod">adjMethod</a> :: <a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v</li><li><a href="#v:adjSide">adjSide</a> :: <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></li><li><a href="#v:adjEps">adjEps</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v</li><li><a href="#v:adjOptsvProxy__">adjOptsvProxy__</a> :: <a href="Diagrams-Util.html#t:Proxy">Proxy</a> v</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:AdjustMethod">AdjustMethod</a> v<ul class="subs"><li>= <a href="#v:ByParam">ByParam</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) </li><li>| <a href="#v:ByAbsolute">ByAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) </li><li>| <a href="#v:ToAbsolute">ToAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:AdjustSide">AdjustSide</a> <ul class="subs"><li>= <a href="#v:Start">Start</a> </li><li>| <a href="#v:End">End</a> </li><li>| <a href="#v:Both">Both</a> </li></ul></li></ul></div><div id="interface"><h1 id="g:1">Parametric functions
</h1><div class="top"><p class="src"><a name="v:stdTolerance" class="def">stdTolerance</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => a<a href="src/Diagrams-Parametric.html#stdTolerance" class="link">Source</a></p><div class="doc"><p>The standard tolerance used by <code>std...</code> functions (like
<code><a href="Diagrams-Parametric.html#v:stdArcLength">stdArcLength</a></code> and <code><a href="Diagrams-Parametric.html#v:stdArcLengthToParam">stdArcLengthToParam</a></code>, currently set at
<code>1e-6</code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:Codomain" class="def">Codomain</a> p :: *<a href="src/Diagrams-Parametric.html#Codomain" class="link">Source</a></p><div class="doc"><p>Codomain of parametric classes. This is usually either <code>(V p)</code>, for relative
vector results, or <code>(Point (V p))</code>, for functions with absolute coordinates.
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Parametric" class="def">Parametric</a> p <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#Parametric" class="link">Source</a></p><div class="doc"><p>Type class for parametric functions.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:atParam" class="def">atParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atParam" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code> yields a parameterized view of an object as a
continuous function. It is designed to be used infix, like <code>path
`<code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code>` 0.5</code>.
</p></div></div><div class="subs instances"><p id="control.i:Parametric" class="caption collapser" onclick="toggleSection('i:Parametric')">Instances</p><div id="section.i:Parametric" class="show"><table><tr><td class="src">(~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a)), <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> a) => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Segment.html#t:FixedSegment">FixedSegment</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc"><p><code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code> yields a parametrized view of segments as continuous
functions <code>[0,1] -> v</code>, which give the offset from the start of
the segment for each value of the parameter between <code>0</code> and <code>1</code>.
It is designed to be used infix, like <code>seg `<code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code>` 0.5</code>.
</p></td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:DomainBounds" class="def">DomainBounds</a> p <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#DomainBounds" class="link">Source</a></p><div class="doc"><p>Type class for parametric functions with a bounded domain. The
default bounds are <code>[0,1]</code>.
</p><p>Note that this domain indicates the main "interesting" portion of the
function. It must be defined within this range, but for some instances may
still have sensible values outside.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:domainLower" class="def">domainLower</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#domainLower" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:domainLower">domainLower</a></code> defaults to being constantly 0 (for vector spaces with
numeric scalars).
</p></div><p class="src"><a name="v:domainUpper" class="def">domainUpper</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#domainUpper" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:domainUpper">domainUpper</a></code> defaults to being constantly 1 (for vector spaces
with numeric scalars).
</p></div></div><div class="subs instances"><p id="control.i:DomainBounds" class="caption collapser" onclick="toggleSection('i:DomainBounds')">Instances</p><div id="section.i:DomainBounds" class="show"><table><tr><td class="src"><a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a => <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p, <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p) => <a name="t:EndValues" class="def">EndValues</a> p <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#EndValues" class="link">Source</a></p><div class="doc"><p>Type class for querying the values of a parametric object at the
ends of its domain.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:atStart" class="def">atStart</a> :: p -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atStart" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atStart">atStart</a></code> is the value at the start of the domain. That is,
</p><pre> atStart x = x `atParam` domainLower x
</pre><p>This is the default implementation, but some representations will
have a more efficient and/or precise implementation.
</p></div><p class="src"><a name="v:atEnd" class="def">atEnd</a> :: p -> <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atEnd" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atEnd">atEnd</a></code> is the value at the end of the domain. That is,
</p><pre> atEnd x = x `atParam` domainUpper x
</pre><p>This is the default implementation, but some representations will
have a more efficient and/or precise implementation.
</p></div></div><div class="subs instances"><p id="control.i:EndValues" class="caption collapser" onclick="toggleSection('i:EndValues')">Instances</p><div id="section.i:EndValues" class="show"><table><tr><td class="src">(~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a)), <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> a) => <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p => <a name="t:Sectionable" class="def">Sectionable</a> p <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#Sectionable" class="link">Source</a></p><div class="doc"><p>Type class for parametric objects which can be split into
subobjects.
</p><p>Minimal definition: Either <code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> or <code><a href="Diagrams-Parametric.html#v:section">section</a></code>.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:splitAtParam" class="def">splitAtParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> (p, p)<a href="src/Diagrams-Parametric.html#splitAtParam" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> splits an object <code>p</code> into two new objects
<code>(l,r)</code> at the parameter <code>t</code>, where <code>l</code> corresponds to the
portion of <code>p</code> for parameter values from <code>0</code> to <code>t</code> and <code>r</code> for
to that from <code>t</code> to <code>1</code>. The following property should hold:
</p><pre> prop_splitAtParam f t u =
| u < t = atParam f u == atParam l (u / t)
| otherwise = atParam f u == atParam f t ??? atParam l ((u - t) / (domainUpper f - t))
where (l,r) = splitAtParam f t
</pre><p>where <code>(???) = (^+^)</code> if the codomain is a vector type, or
<code>const flip</code> if the codomain is a point type. Stated more
intuitively, all this is to say that the parameterization
scales linearly with splitting.
</p><p><code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> can also be used with parameters outside the
range of the domain. For example, using the parameter <code>2</code> with
a path (where the domain is the default <code>[0,1]</code>) gives two
result paths where the first is the original path extended to
the parameter 2, and the second result path travels <em>backwards</em>
from the end of the first to the end of the original path.
</p></div><p class="src"><a name="v:section" class="def">section</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p<a href="src/Diagrams-Parametric.html#section" class="link">Source</a></p><div class="doc"><p>Extract a particular section of the domain, linearly
reparameterized to the same domain as the original. Should
satisfy the property:
</p><pre> prop_section x l u t =
let s = section x l u
in domainBounds x == domainBounds x
&& (x `atParam` lerp l u t) == (s `atParam` t)
</pre><p>That is, the section should have the same domain as the
original, and the reparameterization should be linear.
</p></div><p class="src"><a name="v:reverseDomain" class="def">reverseDomain</a> :: p -> p<a href="src/Diagrams-Parametric.html#reverseDomain" class="link">Source</a></p><div class="doc"><p>Flip the parameterization on the domain. This has the
following default definition:
</p><pre> reverse x = section x (domainUpper x) (domainLower x)
</pre></div></div><div class="subs instances"><p id="control.i:Sectionable" class="caption collapser" onclick="toggleSection('i:Sectionable')">Instances</p><div id="section.i:Sectionable" class="show"><table><tr><td class="src">(~ * (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a)), <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-AdditiveGroup.html#t:AdditiveGroup">AdditiveGroup</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a), <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> a) => <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc"><p>Note that there is no <code>Sectionable</code> instance for <code>Trail' Loop</code>,
because it does not make sense (splitting a loop at a parameter
results in a single line, not two loops). However, it's
convenient to have a <code>Sectionable</code> instance for <code>Trail</code>; if the
<code>Trail</code> contains a loop the loop will first be cut and then
<code>splitAtParam</code> called on the resulting line. This is
semantically a bit silly, so please don't rely on it. (*E.g.* if
this is really the behavior you want, consider first calling
<code><a href="Diagrams-Trail.html#v:cutLoop">cutLoop</a></code> yourself.)
</p></td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> <a href="Diagrams-Trail.html#t:Line">Line</a> v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p => <a name="t:HasArcLength" class="def">HasArcLength</a> p <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#HasArcLength" class="link">Source</a></p><div class="doc"><p>Type class for parametric things with a notion of arc length.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:arcLengthBounded" class="def">arcLengthBounded</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-intervals-doc/html/Numeric-Interval.html#t:Interval">Interval</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p))<a href="src/Diagrams-Parametric.html#arcLengthBounded" class="link">Source</a></p><div class="doc"><p><code>arcLengthBounded eps x</code> approximates the arc length of <code>x</code>.
The true arc length is guaranteed to lie within the interval
returned, which will have a size of at most <code>eps</code>.
</p></div><p class="src"><a name="v:arcLength" class="def">arcLength</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#arcLength" class="link">Source</a></p><div class="doc"><p><code>arcLength eps s</code> approximates the arc length of <code>x</code> up to the
accuracy <code>eps</code> (plus or minus).
</p></div><p class="src"><a name="v:stdArcLength" class="def">stdArcLength</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#stdArcLength" class="link">Source</a></p><div class="doc"><p>Approximate the arc length up to a standard accuracy of
<code><a href="Diagrams-Parametric.html#v:stdTolerance">stdTolerance</a></code> (<code>1e-6</code>).
</p></div><p class="src"><a name="v:arcLengthToParam" class="def">arcLengthToParam</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#arcLengthToParam" class="link">Source</a></p><div class="doc"><p><code><code><a href="Diagrams-Parametric.html#v:arcLengthToParam">arcLengthToParam</a></code> eps s l</code> converts the absolute arc length
<code>l</code>, measured from the start of the domain, to a parameter on
the object <code>s</code>. The true arc length at the parameter returned
is guaranteed to be within <code>eps</code> of the requested arc length.
</p><p>This should work for <em>any</em> arc length, and may return any
parameter value (not just parameters in the domain).
</p></div><p class="src"><a name="v:stdArcLengthToParam" class="def">stdArcLengthToParam</a> :: p -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -> <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#stdArcLengthToParam" class="link">Source</a></p><div class="doc"><p>A simple interface to convert arc length to a parameter,
guaranteed to be accurate within <code><a href="Diagrams-Parametric.html#v:stdTolerance">stdTolerance</a></code>, or <code>1e-6</code>.
</p></div></div><div class="subs instances"><p id="control.i:HasArcLength" class="caption collapser" onclick="toggleSection('i:HasArcLength')">Instances</p><div id="section.i:HasArcLength" class="show"><table><tr><td class="src">(<a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a)), ~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a))) => <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-AdditiveGroup.html#t:AdditiveGroup">AdditiveGroup</a> v) => <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) => <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">Adjusting
</h1><div class="top"><p class="src"><a name="v:adjust" class="def">adjust</a> :: (<a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a, <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a))) => a -> <a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) -> a<a href="src/Diagrams-Parametric.html#adjust" class="link">Source</a></p><div class="doc"><p>Adjust the length of a parametric object such as a segment or
trail. The second parameter is an option record which controls how
the adjustment should be performed; see <code><a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a></code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:AdjustOpts" class="def">AdjustOpts</a> v <a href="src/Diagrams-Parametric.html#AdjustOpts" class="link">Source</a></p><div class="doc"><p>How should a segment, trail, or path be adjusted?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AO" class="def">AO</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:adjMethod" class="def">adjMethod</a> :: <a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v</dt><dd class="doc empty"> </dd><dt class="src"><a name="v:adjSide" class="def">adjSide</a> :: <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:adjEps" class="def">adjEps</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v</dt><dd class="doc empty"> </dd><dt class="src"><a name="v:adjOptsvProxy__" class="def">adjOptsvProxy__</a> :: <a href="Diagrams-Util.html#t:Proxy">Proxy</a> v</dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:AdjustOpts" class="caption collapser" onclick="toggleSection('i:AdjustOpts')">Instances</p><div id="section.i:AdjustOpts" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> (<a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:AdjustMethod" class="def">AdjustMethod</a> v <a href="src/Diagrams-Parametric.html#AdjustMethod" class="link">Source</a></p><div class="doc"><p>What method should be used for adjusting a segment, trail, or
path?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ByParam" class="def">ByParam</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend by the given parameter value
(use a negative parameter to shrink)
</p></td></tr><tr><td class="src"><a name="v:ByAbsolute" class="def">ByAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend by the given arc length
(use a negative length to shrink)
</p></td></tr><tr><td class="src"><a name="v:ToAbsolute" class="def">ToAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend or shrink to the given
arc length
</p></td></tr></table></div><div class="subs instances"><p id="control.i:AdjustMethod" class="caption collapser" onclick="toggleSection('i:AdjustMethod')">Instances</p><div id="section.i:AdjustMethod" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) => <a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> (<a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:AdjustSide" class="def">AdjustSide</a> <a href="src/Diagrams-Parametric.html#AdjustSide" class="link">Source</a></p><div class="doc"><p>Which side of a segment, trail, or path should be adjusted?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Start" class="def">Start</a></td><td class="doc"><p>Adjust only the beginning
</p></td></tr><tr><td class="src"><a name="v:End" class="def">End</a></td><td class="doc"><p>Adjust only the end
</p></td></tr><tr><td class="src"><a name="v:Both" class="def">Both</a></td><td class="doc"><p>Adjust both sides equally
</p></td></tr></table></div><div class="subs instances"><p id="control.i:AdjustSide" class="caption collapser" onclick="toggleSection('i:AdjustSide')">Instances</p><div id="section.i:AdjustSide" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Bounded">Bounded</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Enum">Enum</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Read.html#t:Read">Read</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty"> </td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>
|