diff options
author | Jacopo Mondi <jacopo.mondi@ideasonboard.com> | 2023-10-19 16:01:24 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2023-10-23 16:05:54 +0300 |
commit | 891720ae8c7c616660a8400855cf8a9f408902cc (patch) | |
tree | edeee67b6b841e1d02f4daaf718aa535ad32ab2b | |
parent | cc65629b68d49d5f2a4d61537584c56ba510a335 (diff) |
Documentation: Add figures to document Orientation
Add figures in Documentation/rotation/ to document the plane
transformations defined by the Orientation enumeration.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | Documentation/Doxyfile.in | 2 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate0.svg | 132 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate0Mirror.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate180.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate180Mirror.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate270.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate270Mirror.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate90.svg | 135 | ||||
-rw-r--r-- | Documentation/images/rotation/rotate90Mirror.svg | 135 | ||||
-rw-r--r-- | src/libcamera/orientation.cpp | 17 |
10 files changed, 1096 insertions, 0 deletions
diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in index 697a14d1..a86ea6c1 100644 --- a/Documentation/Doxyfile.in +++ b/Documentation/Doxyfile.in @@ -78,6 +78,8 @@ EXPAND_ONLY_PREDEF = YES INCLUDE_PATH = "@TOP_SRCDIR@/include/libcamera" INCLUDE_FILE_PATTERNS = *.h +IMAGE_PATH = "@TOP_SRCDIR@/Documentation/images" + PREDEFINED = __DOXYGEN__ \ __cplusplus \ __attribute__(x)= \ diff --git a/Documentation/images/rotation/rotate0.svg b/Documentation/images/rotation/rotate0.svg new file mode 100644 index 00000000..13cde16a --- /dev/null +++ b/Documentation/images/rotation/rotate0.svg @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate0.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="1.4854147" + inkscape:cx="666.48052" + inkscape:cy="448.35962" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;paint-order:markers stroke fill;stroke-dasharray:none" + id="rect1" + width="152.88184" + height="119.41136" + x="77.237244" + y="81.982094" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;paint-order:markers stroke fill;stroke-dasharray:none" + id="rect2" + width="49.755535" + height="36.468258" + x="92.612343" + y="98.912964" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="167.25099" + y="98.912964" /> + <g + id="g4" + transform="translate(-0.98582077)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 244.95942,81.765726 62.444825,81.97209 154.25639,28.65633 Z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 199.76751,33.368887 0.0285,21.581353" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 215.59016,33.189206 0.0959,31.330304" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 194.42835,33.189356 25.2821,-0.220612" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 195.19248,33.096339 -0.0701,-5.375793 23.77787,-0.05613 0.0553,5.315811" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 194.20874,25.616264 25.25485,-0.02536" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 195.03436,26.298566 -0.0455,-5.426692 23.77787,-0.05613 0.0553,5.315811" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate0Mirror.svg b/Documentation/images/rotation/rotate0Mirror.svg new file mode 100644 index 00000000..a7edda87 --- /dev/null +++ b/Documentation/images/rotation/rotate0Mirror.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate0Mirror.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.82900578" + inkscape:cx="599.51331" + inkscape:cy="579.00682" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="-230.13463" + y="81.982094" + transform="scale(-1,1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="-214.75954" + y="98.912964" + transform="scale(-1,1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="-140.12088" + y="98.912964" + transform="scale(-1,1)" /> + <g + id="g4" + transform="matrix(-1,0,0,1,308.35769,0)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 62.412454,81.765726 244.92705,81.97209 153.11548,28.65633 Z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 107.60436,33.368887 -0.0285,21.581353" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 91.781714,33.189206 -0.0959,31.330304" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 112.94352,33.189356 87.661424,32.968744" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 112.17939,33.096339 0.0701,-5.375793 -23.777866,-0.05613 -0.0553,5.315811" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 113.16313,25.616264 87.908284,25.590904" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 112.33751,26.298566 0.0455,-5.426692 -23.777866,-0.05613 -0.0553,5.315811" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate180.svg b/Documentation/images/rotation/rotate180.svg new file mode 100644 index 00000000..d092a532 --- /dev/null +++ b/Documentation/images/rotation/rotate180.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate180.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.79489" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="-230.13461" + y="-140.22527" + transform="scale(-1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="-214.75951" + y="-123.2944" + transform="scale(-1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="-140.12086" + y="-123.2944" + transform="scale(-1)" /> + <g + id="g4" + transform="rotate(180,154.17884,111.10368)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 62.412437,140.44163 182.514593,-0.20636 -91.81156,53.31576 z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 107.60435,188.83847 -0.0285,-21.58135" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 91.781697,189.01815 -0.0959,-31.3303" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 112.94351,189.018 -25.282103,0.22061" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 112.17938,189.11102 0.0701,5.37579 -23.777873,0.0561 -0.0553,-5.31581" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 113.16312,196.59109 -25.254853,0.0254" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 112.3375,195.90879 0.0455,5.42669 -23.777873,0.0561 -0.0553,-5.31581" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate180Mirror.svg b/Documentation/images/rotation/rotate180Mirror.svg new file mode 100644 index 00000000..d4a77d50 --- /dev/null +++ b/Documentation/images/rotation/rotate180Mirror.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate180Mirror.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.79489" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="77.237228" + y="-140.22527" + transform="scale(1,-1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="92.612335" + y="-123.2944" + transform="scale(1,-1)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="167.25098" + y="-123.2944" + transform="scale(1,-1)" /> + <g + id="g4" + transform="matrix(1,0,0,-1,-0.98584226,222.20736)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 244.9594,140.44163 62.444808,140.23527 154.25637,193.55103 Z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 199.76749,188.83847 0.0285,-21.58135" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 215.59014,189.01815 0.0959,-31.3303" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 194.42833,189.018 25.2821,0.22061" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 195.19246,189.11102 -0.0701,5.37579 23.77787,0.0561 0.0553,-5.31581" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 194.20872,196.59109 25.25485,0.0254" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 195.03434,195.90879 -0.0455,5.42669 23.77787,0.0561 0.0553,-5.31581" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate270.svg b/Documentation/images/rotation/rotate270.svg new file mode 100644 index 00000000..13ea1e5d --- /dev/null +++ b/Documentation/images/rotation/rotate270.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate270.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.26451" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="-187.55237" + y="124.56432" + transform="rotate(-90)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="-172.17726" + y="141.49518" + transform="rotate(-90)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="-97.538612" + y="141.49518" + transform="rotate(-90)" /> + <g + id="g4" + transform="rotate(-90,154.17883,111.5966)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 124.34796,19.830188 124.55432,202.34478 71.238559,110.53322 Z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.951119,65.022101 21.58135,-0.0285" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.771439,49.199448 31.330301,-0.0959" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 75.771589,70.361261 75.550979,45.079158" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.678569,69.597131 -5.37579,0.0701 -0.0561,-23.777873 5.31581,-0.0553" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 68.198499,70.580871 -0.0254,-25.254853" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 68.880799,69.755251 -5.42669,0.0455 -0.0561,-23.777873 5.31581,-0.0553" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate270Mirror.svg b/Documentation/images/rotation/rotate270Mirror.svg new file mode 100644 index 00000000..6116f50a --- /dev/null +++ b/Documentation/images/rotation/rotate270Mirror.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate270Mirror.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.79489" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="-187.55237" + y="-182.80751" + transform="matrix(0,-1,-1,0,0,0)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="-172.17726" + y="-165.87666" + transform="matrix(0,-1,-1,0,0,0)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="-97.538612" + y="-165.87666" + transform="matrix(0,-1,-1,0,0,0)" /> + <g + id="g4" + transform="matrix(0,-1,-1,0,264.78961,265.77543)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 183.02388,19.830188 -0.20636,182.514592 53.31576,-91.81156 z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.42072,65.022101 -21.58135,-0.0285" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.6004,49.199448 -31.3303,-0.0959" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.60025,70.361261 0.22061,-25.282103" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.69327,69.597131 5.37579,0.0701 0.0561,-23.777873 -5.31581,-0.0553" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 239.17334,70.580871 0.0254,-25.254853" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 238.49104,69.755251 5.42669,0.0455 0.0561,-23.777873 -5.31581,-0.0553" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate90.svg b/Documentation/images/rotation/rotate90.svg new file mode 100644 index 00000000..af627638 --- /dev/null +++ b/Documentation/images/rotation/rotate90.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate90.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.26451" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="34.65498" + y="-182.80751" + transform="rotate(90)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="50.030079" + y="-165.87665" + transform="rotate(90)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="124.66872" + y="-165.87665" + transform="rotate(90)" /> + <g + id="g4" + transform="rotate(90,154.17885,110.61076)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 183.02388,202.37715 -0.20636,-182.51459 53.31576,91.81156 z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.42072,157.18524 -21.58135,0.0285" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.6004,173.00789 -31.3303,0.0959" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.60025,151.84608 0.22061,25.2821" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 231.69327,152.61021 5.37579,-0.0701 0.0561,23.77787 -5.31581,0.0553" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 239.17334,151.62647 0.0254,25.25485" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 238.49104,152.45209 5.42669,-0.0455 0.0561,23.77787 -5.31581,0.0553" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/Documentation/images/rotation/rotate90Mirror.svg b/Documentation/images/rotation/rotate90Mirror.svg new file mode 100644 index 00000000..1760c462 --- /dev/null +++ b/Documentation/images/rotation/rotate90Mirror.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="297mm" + height="210mm" + viewBox="0 0 297 210" + version="1.1" + id="svg1" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="rotate90Mirror.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + showguides="false" + inkscape:zoom="0.94272086" + inkscape:cx="467.79489" + inkscape:cy="423.24299" + inkscape:window-width="1916" + inkscape:window-height="1040" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="1" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="px" + originx="0" + originy="0" + spacingx="0.26458334" + spacingy="0.26458333" + empcolor="#0000ff" + empopacity="0.25098039" + color="#0000ff" + opacity="0.1254902" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect1" + width="152.88184" + height="119.41136" + x="34.65498" + y="124.56432" + transform="matrix(0,1,1,0,0,0)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2" + width="49.755535" + height="36.468258" + x="50.030079" + y="141.49519" + transform="matrix(0,1,1,0,0,0)" /> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect2-5" + width="49.755535" + height="36.468258" + x="124.66872" + y="141.49519" + transform="matrix(0,1,1,0,0,0)" /> + <g + id="g4" + transform="matrix(0,1,1,0,42.582224,-43.56809)" + style="stroke-width:1.5875;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="rect3" + width="40.994682" + height="43.605846" + x="134.16664" + y="157.24184" /> + <ellipse + style="fill:none;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;paint-order:markers stroke fill" + id="path3" + cx="140.15703" + cy="176.44627" + rx="1.889045" + ry="1.925626" /> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 124.34795,202.37715 124.55431,19.86256 71.238554,111.67412 Z" + id="path4" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.951114,157.18524 21.58135,0.0285" + id="path5" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.771434,173.00789 31.330296,0.0959" + id="path6" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.771584,151.84608 -0.22061,25.2821" + id="path7" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 75.678564,152.61021 -5.37579,-0.0701 -0.0561,23.77787 5.31581,0.0553" + id="path8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 68.198494,151.62647 -0.0254,25.25485" + id="path7-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5875;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 68.880794,152.45209 -5.42669,-0.0455 -0.0561,23.77787 5.31581,0.0553" + id="path8-9" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/src/libcamera/orientation.cpp b/src/libcamera/orientation.cpp index a3465383..965f5a8b 100644 --- a/src/libcamera/orientation.cpp +++ b/src/libcamera/orientation.cpp @@ -37,6 +37,23 @@ namespace libcamera { * For example, Orientation::Rotate90Mirror describes the orientation obtained * by rotating the image 90 degrees clockwise first and then applying a * horizontal mirroring. + * + * \var CameraConfiguration::Rotate0 + * \image html rotation/rotate0.svg + * \var CameraConfiguration::Rotate0Mirror + * \image html rotation/rotate0Mirror.svg + * \var CameraConfiguration::Rotate180 + * \image html rotation/rotate180.svg + * \var CameraConfiguration::Rotate180Mirror + * \image html rotation/rotate180Mirror.svg + * \var CameraConfiguration::Rotate90Mirror + * \image html rotation/rotate90Mirror.svg + * \var CameraConfiguration::Rotate270 + * \image html rotation/rotate270.svg + * \var CameraConfiguration::Rotate270Mirror + * \image html rotation/rotate270Mirror.svg + * \var CameraConfiguration::Rotate90 + * \image html rotation/rotate90.svg */ /** |