Message ID | 20231019140133.32090-4-jacopo.mondi@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, Thank you for the patch. On Thu, Oct 19, 2023 at 04:01:24PM +0200, Jacopo Mondi via libcamera-devel wrote: > Add figures in Documentation/rotation/ to document the plane > transformations defined by the Orientation enumeration. > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > --- > Documentation/Doxyfile.in | 2 + > Documentation/rotation/rotate0.svg | 132 ++++++++++++++++++++ > Documentation/rotation/rotate0Mirror.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate180.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate180Mirror.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate270.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate270Mirror.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate90.svg | 135 +++++++++++++++++++++ > Documentation/rotation/rotate90Mirror.svg | 135 +++++++++++++++++++++ > src/libcamera/orientation.cpp | 17 +++ > 10 files changed, 1096 insertions(+) > create mode 100644 Documentation/rotation/rotate0.svg > create mode 100644 Documentation/rotation/rotate0Mirror.svg > create mode 100644 Documentation/rotation/rotate180.svg > create mode 100644 Documentation/rotation/rotate180Mirror.svg > create mode 100644 Documentation/rotation/rotate270.svg > create mode 100644 Documentation/rotation/rotate270Mirror.svg > create mode 100644 Documentation/rotation/rotate90.svg > create mode 100644 Documentation/rotation/rotate90Mirror.svg > > diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in > index 697a14d1dfe2..67ee51afb6e3 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" I'll move images to an images/ directory, in order to avoid clashes between Doxygen and Sphinx documentation. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > + > PREDEFINED = __DOXYGEN__ \ > __cplusplus \ > __attribute__(x)= \ > diff --git a/Documentation/rotation/rotate0.svg b/Documentation/rotation/rotate0.svg > new file mode 100644 > index 000000000000..13cde16ada51 > --- /dev/null > +++ b/Documentation/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/rotation/rotate0Mirror.svg b/Documentation/rotation/rotate0Mirror.svg > new file mode 100644 > index 000000000000..a7edda873bf5 > --- /dev/null > +++ b/Documentation/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/rotation/rotate180.svg b/Documentation/rotation/rotate180.svg > new file mode 100644 > index 000000000000..d092a5322fb1 > --- /dev/null > +++ b/Documentation/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/rotation/rotate180Mirror.svg b/Documentation/rotation/rotate180Mirror.svg > new file mode 100644 > index 000000000000..d4a77d500d94 > --- /dev/null > +++ b/Documentation/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/rotation/rotate270.svg b/Documentation/rotation/rotate270.svg > new file mode 100644 > index 000000000000..13ea1e5df918 > --- /dev/null > +++ b/Documentation/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/rotation/rotate270Mirror.svg b/Documentation/rotation/rotate270Mirror.svg > new file mode 100644 > index 000000000000..6116f50aa96e > --- /dev/null > +++ b/Documentation/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/rotation/rotate90.svg b/Documentation/rotation/rotate90.svg > new file mode 100644 > index 000000000000..af6276383c79 > --- /dev/null > +++ b/Documentation/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/rotation/rotate90Mirror.svg b/Documentation/rotation/rotate90Mirror.svg > new file mode 100644 > index 000000000000..1760c46226ab > --- /dev/null > +++ b/Documentation/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 61f26cfda31b..5caf76f73865 100644 > --- a/src/libcamera/orientation.cpp > +++ b/src/libcamera/orientation.cpp > @@ -37,6 +37,23 @@ namespace libcamera { > * In example Orientation::Rotate90Mirror describes the image transformation > * obtained by rotating 90 degrees clockwise first and then applying an > * 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 > */ > > /**
diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in index 697a14d1dfe2..67ee51afb6e3 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" + PREDEFINED = __DOXYGEN__ \ __cplusplus \ __attribute__(x)= \ diff --git a/Documentation/rotation/rotate0.svg b/Documentation/rotation/rotate0.svg new file mode 100644 index 000000000000..13cde16ada51 --- /dev/null +++ b/Documentation/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/rotation/rotate0Mirror.svg b/Documentation/rotation/rotate0Mirror.svg new file mode 100644 index 000000000000..a7edda873bf5 --- /dev/null +++ b/Documentation/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/rotation/rotate180.svg b/Documentation/rotation/rotate180.svg new file mode 100644 index 000000000000..d092a5322fb1 --- /dev/null +++ b/Documentation/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/rotation/rotate180Mirror.svg b/Documentation/rotation/rotate180Mirror.svg new file mode 100644 index 000000000000..d4a77d500d94 --- /dev/null +++ b/Documentation/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/rotation/rotate270.svg b/Documentation/rotation/rotate270.svg new file mode 100644 index 000000000000..13ea1e5df918 --- /dev/null +++ b/Documentation/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/rotation/rotate270Mirror.svg b/Documentation/rotation/rotate270Mirror.svg new file mode 100644 index 000000000000..6116f50aa96e --- /dev/null +++ b/Documentation/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/rotation/rotate90.svg b/Documentation/rotation/rotate90.svg new file mode 100644 index 000000000000..af6276383c79 --- /dev/null +++ b/Documentation/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/rotation/rotate90Mirror.svg b/Documentation/rotation/rotate90Mirror.svg new file mode 100644 index 000000000000..1760c46226ab --- /dev/null +++ b/Documentation/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 61f26cfda31b..5caf76f73865 100644 --- a/src/libcamera/orientation.cpp +++ b/src/libcamera/orientation.cpp @@ -37,6 +37,23 @@ namespace libcamera { * In example Orientation::Rotate90Mirror describes the image transformation * obtained by rotating 90 degrees clockwise first and then applying an * 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 */ /**
Add figures in Documentation/rotation/ to document the plane transformations defined by the Orientation enumeration. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- Documentation/Doxyfile.in | 2 + Documentation/rotation/rotate0.svg | 132 ++++++++++++++++++++ Documentation/rotation/rotate0Mirror.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate180.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate180Mirror.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate270.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate270Mirror.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate90.svg | 135 +++++++++++++++++++++ Documentation/rotation/rotate90Mirror.svg | 135 +++++++++++++++++++++ src/libcamera/orientation.cpp | 17 +++ 10 files changed, 1096 insertions(+) create mode 100644 Documentation/rotation/rotate0.svg create mode 100644 Documentation/rotation/rotate0Mirror.svg create mode 100644 Documentation/rotation/rotate180.svg create mode 100644 Documentation/rotation/rotate180Mirror.svg create mode 100644 Documentation/rotation/rotate270.svg create mode 100644 Documentation/rotation/rotate270Mirror.svg create mode 100644 Documentation/rotation/rotate90.svg create mode 100644 Documentation/rotation/rotate90Mirror.svg