6 @brief Doxygen content -- not part of the library.@EOL
7 @copyright
8 @parblock
9 Copyright (c) 1988-2015, Mitchell Jay Richling <https://www.mitchr.me> All rights reserved.
10
11 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12
13 1. Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
14
15 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation
16 and/or other materials provided with the distribution.
17
18 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software
19 without specific prior written permission.
20
21 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
87 Several aspects of the colorTpl template are not included in the Doxygen documentation because Doxygen has trouble
88 with complex meta-programming constructs. In particular:
89 - Types
90 - maskType - Unsigned integer mask to cover the channel array without wasting too much space.
91 - channelArithDType - Arithmetic type for differences of clrChanT values.
92 - channelArithSPType - Arithmetic type for sums and products of clrChanT values.
93 - channelArithSDPType - Arithmetic type for sums, differences, and products of clrChanT values.
94 - channelArithFltType - Floating point type suitable for arithmetic of clrChanT values.
95 - channelArithLogType - Arithmetic type suitable for for logical operations of clrChanT values.
96 - csIntType - Integer type used to select colors from a color scheme
97 - csFltType - Floating point type used to select colors from a color scheme
98 - csNatType - A type used to select colors from a color scheme (it will be integral when clrChanT is integral, and floating point otherwise)
99 - Predefined color scheme classes are documented here: http://richmit.github.io/mraster/ColorSchemes.html
100
101 Drawing
102 =======
103
104 Primitive drawing functions generally come in several forms:
105
106 - foo(<integer_coords>, <color>)
107 - foo(<integer_coords>)
108 - foo()
109 - foo(<float_coords>, <color>)
110 - foo(<float_coords>)
111 - foo(<integer_points>, <color>)
112 - foo(<integer_points>)
113 - foo(<float_points>, <color>)
114 - foo(<float_points>)
115 - foo(<array_of_integer_points>, <color>)
116 - foo(<array_of_integer_points>)
117 - foo(<array_of_float_points>, <color>)
118 - foo(<array_of_float_points>)
119
120 This library supports both the "moveTo/lineTo" paradigm (i.e. move to A, draw line to B), and the "absolute" paradigm (i.e. draw a line from A to B).
121 Because of this, some primitive drawing functions also have forms with fewer coordinates specified. For example, we have a point drawing function that takes
122 no arguments. Just with fewer coordinates. Some primitives, like circles, require extra parameters to describe the primitive. Such parameters right before
123 the color arguments or last in the argument list if no color is specified.