<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFOR508</article-id>
<article-id pub-id-type="doi">10.15388/23-INFOR508</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>A Brief Survey of Clipping and Intersection Algorithms with a List of References (including Triangle-Triangle Intersections)<xref ref-type="fn" rid="j_infor508_fn_001"><sup>✩</sup></xref></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-8886-4281</contrib-id>
<name><surname>Skala</surname><given-names>Vaclav</given-names></name><email xlink:href="skala@kiv.zcu.cz">skala@kiv.zcu.cz</email><xref ref-type="aff" rid="j_infor508_aff_001"/><bio>
<p><bold>V. Skala</bold> is a full professor of computer science at the University of West Bohemia, Pilsen, Czech Republic. He received his Ing. (equivalent of MSc) degree in 1975 from the Institute of Technology in Pilsen, CSc. (equivalent of PhD) degree from the Czech Technical University in Prague, in 1981. In 1996, he became a full professor in computer science. He is a Fellow of the Eurographics Association, member of several editorial boards of international research journals and the editor-in-chief of the <italic>Journal of WSCG</italic> and <italic>Computer Science Research Notes</italic>. He is the organizer of the WSCG conferences on computer graphics, visualization and computer vision (<ext-link ext-link-type="uri" xlink:href="http://www.wscg.eu">www.wscg.eu</ext-link>) held annually since 1992.</p>
<p>His current research interests are computer graphics and visualization, applied mathematics, especially geometrical algebra, algorithms, and data structures.</p></bio>
</contrib>
<aff id="j_infor508_aff_001"><institution>University of West Bohemia</institution>, Faculty of Applied Sciences, Department of Computer Science and Engineering, Pilsen, CZ 301 00, <country>Czech Republic</country></aff>
</contrib-group>
<author-notes>
<fn id="j_infor508_fn_001"><label>✩</label>
<p>The research was supported by the University of West Bohemia – Institutional research support.</p></fn>
</author-notes>
<pub-date pub-type="ppub"><year>2023</year></pub-date><pub-date pub-type="epub"><day>27</day><month>1</month><year>2023</year></pub-date><volume>34</volume><issue>1</issue><fpage>169</fpage><lpage>198</lpage><history><date date-type="received"><month>6</month><year>2022</year></date><date date-type="accepted"><month>1</month><year>2023</year></date></history>
<permissions><copyright-statement>© 2023 Vilnius University</copyright-statement><copyright-year>2023</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>This contribution presents a brief survey of clipping and intersection algorithms in <inline-formula id="j_infor508_ineq_001"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_002"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> with a nearly complete list of relevant references. Some algorithms use the projective extension of the Euclidean space and <italic>vector-vector</italic> operations, which support GPU and SSE use.</p>
<p>This survey is intended to help researchers, students, and practitioners dealing with intersection and clipping algorithms.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>intersection algorithms</kwd>
<kwd>line clipping</kwd>
<kwd>line segment clipping</kwd>
<kwd>polygon clipping</kwd>
<kwd>triangle-triangle intersection</kwd>
<kwd>homogeneous coordinates</kwd>
<kwd>projective space</kwd>
<kwd>duality</kwd>
<kwd>computer graphics</kwd>
<kwd>geometry</kwd>
<kwd>convex polygon</kwd>
<kwd>convex polyhedron</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor508_s_001">
<label>1</label>
<title>Introduction</title>
<p>Intersection algorithms are key algorithms in many areas, e.g. in geometry intersection algorithms of two lines in <inline-formula id="j_infor508_ineq_003"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> or three planes in <inline-formula id="j_infor508_ineq_004"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula>, CAD/CAM systems, etc. Many of those algorithms are part of standard courses and based on formulations in the Euclidean geometry, e.g. Schneider and Eberly (<xref ref-type="bibr" rid="j_infor508_ref_155">2003</xref>). However, there is a problem with results in infinity or close to infinity. Some of those can be solved using the projective extension of the Euclidean space and the principle of duality (Johnson, <xref ref-type="bibr" rid="j_infor508_ref_076">1996</xref>; Skala, <xref ref-type="bibr" rid="j_infor508_ref_177">2010</xref>). The projective extension of the Euclidean space enables representation of points in infinity and the application of the principle of duality to solve dual problems by the same algorithm (Coxeter and Beck, <xref ref-type="bibr" rid="j_infor508_ref_026">1992</xref>; Johnson, <xref ref-type="bibr" rid="j_infor508_ref_076">1996</xref>; Skala, <xref ref-type="bibr" rid="j_infor508_ref_176">2008b</xref>). Such approach leads to formulations using <italic>vector-vector</italic> operations, which is convenient for GPU and SSE instructions.</p>
<p>Algorithms for intersection computation of different geometric entities in <inline-formula id="j_infor508_ineq_005"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_006"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> are studied for a long time from various aspects. Their robustness and precision of numerical calculations is severely influenced by the limited numerical accuracy available on today’s computer system. It is well known that <inline-formula id="j_infor508_ineq_007"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>∗</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$(1/3)\ast 3\ne 1$]]></tex-math></alternatives></inline-formula> in “the computer world”. Even a simple summation <inline-formula id="j_infor508_ineq_008"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$S={\textstyle\sum _{i=1}^{n}}{a_{i}}$]]></tex-math></alternatives></inline-formula> is not easy in the case of large-range data (Skala, <xref ref-type="bibr" rid="j_infor508_ref_180">2013b</xref>).</p>
<p>It should be noted that, not only in geometry oriented algorithms, a special care has to be devoted to the cases where differences between mathematics with infinite precision and mathematics with a limited precision might cause problems leading to the unexpected and incorrect results, sometimes also leading to disasters.</p>
<p>Unfortunately, programmers and computer scientists are mostly targeted at “the technology of implementation”. They have a limited understanding of numerical aspects of today’s numerical data representation, limited more or less to the IEEE-754 floating-point representation (Wikipedia, <xref ref-type="bibr" rid="j_infor508_ref_226">2021b</xref>). Despite the technological progress, the binary128 and binary256 precision are not supported in hardware. It appears that there is no possibility to represent rational, irrational and transcendental numbers used in mathematics, where unlimited accuracy is expected, e.g. what is the difference between the value of <inline-formula id="j_infor508_ineq_009"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">π</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\pi ^{\pi }}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_010"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">long</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">real</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">long</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">real</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${(\mathbf{long}\hspace{2.5pt}\mathbf{real}\hspace{2.5pt}pi)^{(\mathbf{long}\hspace{2.5pt}\mathbf{real}\hspace{2.5pt}pi)}}$]]></tex-math></alternatives></inline-formula> if the IEEE-754 representation is used?</p>
<p>Line, half-line (ray), line segment and triangle-triangle intersection algorithms are considered fundamental in nearly all algorithms dealing with geometrical aspects (Skala, <xref ref-type="bibr" rid="j_infor508_ref_187">2022</xref>).</p>
</sec>
<sec id="j_infor508_s_002">
<label>2</label>
<title>Projective Space and Principle of Duality</title>
<p>The majority of intersection algorithms have been developed for the Euclidean space representation in spite of the fact that geometric transformations, i.e. projection, translation, rotation, scaling and Window-Viewport etc., use homogeneous coordinates, i.e. projective representation. This results into the necessity to convert the results of the geometric transformations to the Euclidean space using division operation.</p>
<sec id="j_infor508_s_003">
<label>2.1</label>
<title>Projective Extension of the Euclidean Space</title>
<p>The conversion of a point <inline-formula id="j_infor508_ineq_011"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y:w]^{T}}$]]></tex-math></alternatives></inline-formula> from the homogeneous coordinates to the Euclidean representation <inline-formula id="j_infor508_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{X}=(X,Y)$]]></tex-math></alternatives></inline-formula> is given as: 
<disp-formula id="j_infor508_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mspace width="1em"/>
<mml:mi mathvariant="normal">&amp;</mml:mi>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ X=x/w,\hspace{2em}Y=y/w\hspace{1em}\& \hspace{1em}w\ne 0,\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>w</italic> is the homogeneous coordinate.<xref ref-type="fn" rid="j_infor508_fn_002">1</xref><fn id="j_infor508_fn_002"><label><sup>1</sup></label>
<p>In mathematics, a different notation <inline-formula id="j_infor508_ineq_013"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[{x_{0}}:{x_{1}},\dots ,{x_{n}}]^{T}}$]]></tex-math></alternatives></inline-formula> is used; where <inline-formula id="j_infor508_ineq_014"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{0}}$]]></tex-math></alternatives></inline-formula> represents the homogeneous coordinate <italic>w</italic>.</p></fn></p>
<p>It means that a point <inline-formula id="j_infor508_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{X}\in {E^{2}}$]]></tex-math></alternatives></inline-formula> is represented by a line in the projective space <inline-formula id="j_infor508_ineq_016"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${[x,y:w]^{T}}$]]></tex-math></alternatives></inline-formula> without the origin, which represents a point in infinity, see Fig. <xref rid="j_infor508_fig_001">1</xref>.</p>
<p>The extension to the <inline-formula id="j_infor508_ineq_017"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case is straightforward (Foley <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor508_ref_053">1990</xref>). 
<disp-formula id="j_infor508_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mspace width="1em"/>
<mml:mi mathvariant="normal">&amp;</mml:mi>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ X=x/w,\hspace{2em}Y=y/w,\hspace{2em}Z=z/w\hspace{1em}\& \hspace{1em}w\ne 0,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y,z:w]^{T}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>The use of the projective extension of the Euclidean space is convenient not only for geometric transformations, as it replaces addition by multiplication in the case of translation operation, but it enables to represent a point in infinity. Also, it enables to express some geometric entities in a more compact form, e.g. a line in the <inline-formula id="j_infor508_ineq_019"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> case as: 
<disp-formula id="j_infor508_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ aX+bY+c=0,\hspace{2em}ax+by+cw=0,\hspace{2em}{\mathbf{a}^{T}}\mathbf{x}=0,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_020"><alternatives><mml:math>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{a}={[a,b:c]^{T}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_infor508_ineq_021"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y:w]^{T}}$]]></tex-math></alternatives></inline-formula>.</p>
<fig id="j_infor508_fig_001">
<label>Fig. 1</label>
<caption>
<p>Projective space and its dual.</p>
</caption>
<graphic xlink:href="infor508_g001.jpg"/>
</fig>
<p>It is necessary to note that <inline-formula id="j_infor508_ineq_022"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(a,b)$]]></tex-math></alternatives></inline-formula> represents the normal vector<xref ref-type="fn" rid="j_infor508_fn_003">2</xref><fn id="j_infor508_fn_003"><label><sup>2</sup></label>
<p>Actually, it is a bivector (Vince, <xref ref-type="bibr" rid="j_infor508_ref_211">2008</xref>).</p></fn> of a line, while <italic>c</italic> is related to the distance of a line from the origin of the Euclidean coordinate system. Similarly, a plane in the <inline-formula id="j_infor508_ineq_023"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case is defined as: 
<disp-formula id="j_infor508_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ aX+bY+cZ+d=0,\hspace{2em}ax+by+cz+dw=0,\hspace{2em}{\mathbf{a}^{T}}\mathbf{x}=0,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{a}={[a,b,c:d]^{T}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y,z:w]^{T}}$]]></tex-math></alternatives></inline-formula>. However, it is necessary to distinguish vectors, as “movable” entities, from “frames”, which have the origin as the reference point. It is necessary to note that metric is not defined in the projective space.</p>
<p>In many cases, the principle of duality can be used to derive a solution of a dual problem and have only one programming sequence for both problems, i.e. the primary one and the dual. Figure <xref rid="j_infor508_fig_001">1</xref> presents the duality in <inline-formula id="j_infor508_ineq_026"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> – the line <italic>p</italic> is represented as a point <inline-formula id="j_infor508_ineq_027"><alternatives><mml:math>
<mml:mi mathvariant="italic">D</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$D(p)$]]></tex-math></alternatives></inline-formula> in the dual space (Stolfi, <xref ref-type="bibr" rid="j_infor508_ref_197">1991</xref>). Unfortunately, the principle of duality is not usually part of the standard computer science curricula.</p>
</sec>
<sec id="j_infor508_s_004">
<label>2.2</label>
<title>Principle of Duality</title>
<p>The principle of duality is one of essential principles in mathematics. In our case of geometric problems described by linear equations, see Eq. (<xref rid="j_infor508_eq_003">3</xref>) and Eq. (<xref rid="j_infor508_eq_004">4</xref>), the principle of duality states that any theorem remains true when we interchange the words: 
<list>
<list-item id="j_infor508_li_001">
<label>•</label>
<p>“point” and “line” in the <inline-formula id="j_infor508_ineq_028"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> case, resp. “point” and “plane” in the <inline-formula id="j_infor508_ineq_029"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case,</p>
</list-item>
<list-item id="j_infor508_li_002">
<label>•</label>
<p>“lie on” and “pass through”, “join” and “intersection” and so on.</p>
</list-item>
</list> 
Once the theorem has been established, the dual theorem is obtained as described (Johnson, <xref ref-type="bibr" rid="j_infor508_ref_076">1996</xref>).</p>
<p>In other words, the principle of duality in the <inline-formula id="j_infor508_ineq_030"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> case says that in all theorems it is possible to substitute the term “point” by the term “line” and term “line” by the term “point” and the given theorem remains valid. This helps a lot in the solution of some geometrical problems, similarly in the <inline-formula id="j_infor508_ineq_031"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case. It means that the intersection computation of two lines is dual to the computation of a line given by two points in the <inline-formula id="j_infor508_ineq_032"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> case. 
<disp-formula id="j_infor508_eq_005">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>i.e.</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">b</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>i.e.</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c}{a_{1}}& {b_{1}}\\ {} {a_{2}}& {b_{2}}\end{array}\right]\left[\begin{array}{c}X\\ {} Y\end{array}\right]=\left[\begin{array}{c}-{c_{1}}\\ {} -{c_{2}}\end{array}\right],\hspace{1em}\text{i.e.}\hspace{2.5pt}\mathbf{Ax}=\mathbf{b},\hspace{1em}\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}{X_{1}}& {Y_{1}}& 1\\ {} {X_{2}}& {Y_{2}}& 1\end{array}\right]\left[\begin{array}{c}a\\ {} b\\ {} c\end{array}\right]=\left[\begin{array}{c}0\\ {} 0\end{array}\right],\hspace{1em}\text{i.e.}\hspace{2.5pt}\mathbf{Ax}=\mathbf{0}.\]]]></tex-math></alternatives>
</disp-formula> 
It is strange as the usual solution in the first case leads to formulation <inline-formula id="j_infor508_ineq_033"><alternatives><mml:math>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">b</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Ax}=\mathbf{b}$]]></tex-math></alternatives></inline-formula>, while in the second case, the parameters of a line are determined as <inline-formula id="j_infor508_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{Ax}=\mathbf{0}$]]></tex-math></alternatives></inline-formula>. However, if the projective representation is used, both cases are solved as <inline-formula id="j_infor508_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{Ax}=\mathbf{0}$]]></tex-math></alternatives></inline-formula> (Skala, <xref ref-type="bibr" rid="j_infor508_ref_176">2008b</xref>). Similarly, the intersection computation of three planes is dual to the computation of a plane given by three points in the <inline-formula id="j_infor508_ineq_036"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case.</p>
<p>Generally, a system of linear equations <inline-formula id="j_infor508_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="bold">Ax</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{Ax}=\mathbf{0}$]]></tex-math></alternatives></inline-formula> can be solved as: 
<disp-formula id="j_infor508_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∧</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∧</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>∧</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{x}={\mathbf{a}_{1}}\wedge {\mathbf{a}_{2}}\wedge \cdots \wedge {\mathbf{a}_{n}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{a}_{i}}$]]></tex-math></alternatives></inline-formula> are rows of the matrix <bold>A</bold>, ∧ is the outer product, i.e. extended cross product, and <inline-formula id="j_infor508_ineq_039"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[{x_{1}},\dots ,{x_{n}}:w]^{T}}$]]></tex-math></alternatives></inline-formula> is the solution in the homogeneous coordinates. It means that a line given by two points <inline-formula id="j_infor508_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{x}_{A}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor508_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{x}_{B}}$]]></tex-math></alternatives></inline-formula>, resp. an intersection of two lines <inline-formula id="j_infor508_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{p}_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor508_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{p}_{2}}$]]></tex-math></alternatives></inline-formula> is given in <inline-formula id="j_infor508_ineq_044"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> as <inline-formula id="j_infor508_ineq_045"><alternatives><mml:math>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∧</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{p}={\mathbf{x}_{A}}\wedge {\mathbf{x}_{B}}$]]></tex-math></alternatives></inline-formula>, resp. <inline-formula id="j_infor508_ineq_046"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∧</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{x}={\mathbf{p}_{1}}\wedge {\mathbf{p}_{2}}$]]></tex-math></alternatives></inline-formula>, due to the principle of duality.</p>
<p>It should be noted that a line in <inline-formula id="j_infor508_ineq_047"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> can be expressed as: 
<disp-formula id="j_infor508_eq_007">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mtext>in the implicit form or</mml:mtext>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mspace width="1em"/>
<mml:mtext>in the parametric or</mml:mtext>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>resp.</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mspace width="1em"/>
<mml:mtext>in the explicit form</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& aX+bY+c=0\hspace{1em}\text{in the implicit form or}\\ {} & X(t)={X_{A}}+{S_{x}}t,\hspace{2em}Y(t)={Y_{A}}+{S_{y}}t\hspace{1em}\text{in the parametric or}\\ {} & Y=kX+q,\hspace{1em}\text{resp.}\hspace{2.5pt}X=mY+p\hspace{1em}\text{in the explicit form}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
In the case of <inline-formula id="j_infor508_ineq_048"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> a line cannot be expressed in the implicit form, but as an intersection of two planes or in the parametric form as: 
<disp-formula id="j_infor508_eq_008">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable displaystyle="true" columnspacing="0pt" columnalign="right left">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mi mathvariant="normal">&amp;</mml:mi>
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mtext>in the implicit form or</mml:mtext>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mspace width="1em"/>
<mml:mtext>in the parametric form</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{aligned}{}& {a_{1}}X+{b_{1}}Y+{c_{1}}=0\hspace{1em}\& \hspace{1em}{a_{2}}X+{b_{2}}Y+{c_{2}}=0\hspace{1em}\text{in the implicit form or}\\ {} & X(t)={X_{A}}+{S_{x}}t,\hspace{2em}Y(t)={Y_{A}}+{S_{y}}t,\\ {} & Z(t)={Z_{A}}+{S_{z}}t\hspace{1em}\text{in the parametric form}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
There is a special parametric form of the line in <inline-formula id="j_infor508_ineq_049"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula>, which uses the Plücker coordinates. It has a specific property as the point <inline-formula id="j_infor508_ineq_050"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({X_{A}},{Y_{A}},{Z_{A}})$]]></tex-math></alternatives></inline-formula> is the closest point to the origin of the coordinate system (Blinn, <xref ref-type="bibr" rid="j_infor508_ref_012">1977</xref>; Mahovsky and Wyvill, <xref ref-type="bibr" rid="j_infor508_ref_108">2004</xref>; Platis and Theoharis, <xref ref-type="bibr" rid="j_infor508_ref_134">2003</xref>; Wikipedia, <xref ref-type="bibr" rid="j_infor508_ref_224">2020</xref>).</p>
<p>In computer graphics, some intersection algorithms are called clipping algorithms and serve to determine a part of one geometric entity inside the second one.</p>
<p>In the following, a brief classification of intersection algorithms in 2D and 3D will be presented with short characteristics; a short overview can be found in Wikipedia (<xref ref-type="bibr" rid="j_infor508_ref_225">2021a</xref>).</p>
<p>There are many variants of fundamental algorithms that differ in some aspects; mainly, the timing factor is the primary motivation. However, the claimed speed up mostly depends on the hardware properties (memory caching, processor used, etc.), programmer’s skill and actual language and compiler used.</p>
</sec>
</sec>
<sec id="j_infor508_s_005">
<label>3</label>
<title>Intersection Algorithms in 2D</title>
<p>Algorithms for intersections of different 2D geometric entities have been studied for a long time from various aspects, primarily due to the computation speed, robustness and limited numerical precision of the floating-point representation. The majority of 2D algorithms deal with an intersection of a line or a half-line (ray) or a line segment with 2D geometric entity, e.g. a rectangle, convex polygon (Cyrus and Beck, <xref ref-type="bibr" rid="j_infor508_ref_028">1978</xref>; Rappoport, <xref ref-type="bibr" rid="j_infor508_ref_137">1991</xref>), non-convex polygon (Weiler and Atherton, <xref ref-type="bibr" rid="j_infor508_ref_222">1977</xref>), quadric and cubic curves, parametric curves (Skala, <xref ref-type="bibr" rid="j_infor508_ref_184">2021a</xref>) and areas with quadratic arcs (Skala, <xref ref-type="bibr" rid="j_infor508_ref_182">2015</xref>, <xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>, <xref ref-type="bibr" rid="j_infor508_ref_164">1990a</xref>), etc.</p>
<p>There are two main strategies, which are “dual” in some sense: 
<list>
<list-item id="j_infor508_li_003">
<label>•</label>
<p>a position of the window, resp. polygon edges against the intersected line, resp. line segment, etc.,</p>
</list-item>
<list-item id="j_infor508_li_004">
<label>•</label>
<p>a position of the vertices of the window, resp. polygon against the intersected line, resp. line segment, etc.</p>
</list-item>
</list>
</p>
<sec id="j_infor508_s_006">
<label>3.1</label>
<title>Intersection with a Rectangular Area</title>
<fig id="j_infor508_fig_002">
<label>Fig. 2</label>
<caption>
<p>Cohen-Sutherland coding.</p>
</caption>
<graphic xlink:href="infor508_g002.jpg"/>
</fig>
<p>Intersection algorithms with a rectangular area (window) are well known as the line clipping or as the line segment clipping algorithms. The first algorithm was developed and used for the flight simulator project led by Cohen (<xref ref-type="bibr" rid="j_infor508_ref_023">1969</xref>) in 1967. Efficient coding of the line segment position coding leading to significant computational reduction was introduced in Sproull and Sutherland (<xref ref-type="bibr" rid="j_infor508_ref_196">1968</xref>) and patented in 1972 (Sutherland, <xref ref-type="bibr" rid="j_infor508_ref_199">1972</xref>). The Cohen-Sutherland algorithm is described in Newman and Sproull (<xref ref-type="bibr" rid="j_infor508_ref_125">1979</xref>), Comninos (<xref ref-type="bibr" rid="j_infor508_ref_025">2006</xref>), Matthes and Drakopoulos (<xref ref-type="bibr" rid="j_infor508_ref_114">2019a</xref>, <xref ref-type="bibr" rid="j_infor508_ref_115">2019b</xref>), etc. The Cohen-Sutherland algorithm generates a bit-code LRTB, i.e. [Left, Right, Top, Bottom], for each end-point of the line segment, see Fig. <xref rid="j_infor508_fig_002">2</xref>. The coding is redundant. However, it enables simple identification of the cases, when the line segment is totally inside or outside as follows: 
<list>
<list-item id="j_infor508_li_005">
<label>•</label>
<p><bold>if</bold> <inline-formula id="j_infor508_ineq_051"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">lor</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0000</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$({\mathbf{c}_{A}}\hspace{2.5pt}\mathbf{lor}\hspace{2.5pt}{\mathbf{c}_{B}})=[0000]$]]></tex-math></alternatives></inline-formula> <bold>then</bold> the line segment is totally inside,</p>
</list-item>
<list-item id="j_infor508_li_006">
<label>•</label>
<p><bold>if</bold> <inline-formula id="j_infor508_ineq_052"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="bold">land</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0000</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$({\mathbf{c}_{A}}\hspace{2.5pt}\mathbf{land}\hspace{2.5pt}{\mathbf{c}_{B}})\ne [0000]$]]></tex-math></alternatives></inline-formula> <bold>then</bold> the line segment is totally outside,</p>
</list-item>
</list> 
where <bold>land</bold>, resp. <bold>or</bold> mean bit-wise <italic>and</italic>, resp. <italic>or</italic> operations.</p>
<p>The ultimately deep classification of all the possible cases using arithmetic operation with the codes was described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_185">2021b</xref>), see Table <xref rid="j_infor508_tab_001">1</xref> and Fig. <xref rid="j_infor508_fig_003">3</xref>. The <inline-formula id="j_infor508_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{AB}}$]]></tex-math></alternatives></inline-formula> value is the index to the <bold>array of functions</bold> representing each case.</p>
<table-wrap id="j_infor508_tab_001">
<label>Table 1</label>
<caption>
<p>Numerical summation codes <inline-formula id="j_infor508_ineq_054"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{AB}}={C_{A}}+{C_{B}}$]]></tex-math></alternatives></inline-formula>, IN – inside area, C – corner area, S – side area, n/a – non-applicable cases or outside case.</p>
</caption>
<table>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor508_ineq_055"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{AB}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor508_ineq_056"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{B}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor508_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{A}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">0000</td>
<td style="vertical-align: top; text-align: left">0101</td>
<td style="vertical-align: top; text-align: left">0100</td>
<td style="vertical-align: top; text-align: left">0110</td>
<td style="vertical-align: top; text-align: left">0010</td>
<td style="vertical-align: top; text-align: left">1010</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">1001</td>
<td style="vertical-align: top; text-align: left">0001</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0000</td>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0101</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">15</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0100</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">14</td>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0110</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">14</td>
<td style="vertical-align: top; text-align: left">15</td>
<td style="vertical-align: top; text-align: left">7</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0010</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">11</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">1010</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">15</td>
<td style="vertical-align: top; text-align: left">14</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">11</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">14</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">9</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1001</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">15</td>
<td style="vertical-align: top; text-align: left">11</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0001</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">11</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_infor508_fig_003">
<label>Fig. 3</label>
<caption>
<p>Two specific situations – SS-SnCS: side-side and side-neighbour corner-side.</p>
</caption>
<graphic xlink:href="infor508_g003.jpg"/>
</fig>
<p>Distinguishing all the cases leads to more efficient coding and efficient implementation (Skala, <xref ref-type="bibr" rid="j_infor508_ref_185">2021b</xref>); specific cases are presented in Table <xref rid="j_infor508_tab_002">2</xref>.</p>
<table-wrap id="j_infor508_tab_002">
<label>Table 2</label>
<caption>
<p>Possible cases: n/a – non-applicable or solved by the C-S coding, C – corner area, S – side area, IN – inside area, End-points: IC – inside-corner, IS – inside-side; Cases: SS – side-side, SnCS – side-near corner-side, SdC – side-distant corner-side, CoC – corner-opposite corner, id – case re-indexing.</p>
</caption>
<table>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">id</td>
<td style="vertical-align: top; text-align: left">−1</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">7</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><italic>Case</italic></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">S</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor508_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{B}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor508_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{A}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">0000</td>
<td style="vertical-align: top; text-align: left">0101</td>
<td style="vertical-align: top; text-align: left">0100</td>
<td style="vertical-align: top; text-align: left">0110</td>
<td style="vertical-align: top; text-align: left">0010</td>
<td style="vertical-align: top; text-align: left">1010</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">1001</td>
<td style="vertical-align: top; text-align: left">0001</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0000</td>
<td style="vertical-align: top; text-align: left">IN</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">IS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0101</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">CoC</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0100</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0110</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">CoC</td>
<td style="vertical-align: top; text-align: left">SdC</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0010</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">1010</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">CoC</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SdC</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">C</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1001</td>
<td style="vertical-align: top; text-align: left">IC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">CoC</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">S</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0001</td>
<td style="vertical-align: top; text-align: left">IS</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SS</td>
<td style="vertical-align: top; text-align: left">SdC</td>
<td style="vertical-align: top; text-align: left">SnCS</td>
<td style="vertical-align: top; text-align: left">n/a</td>
<td style="vertical-align: top; text-align: left">n/a</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The Cohen-Sutherland algorithm can also be extended to the 3D case, i.e. intersection of a line segment with a cube or right-angled parallelepiped.</p>
<fig id="j_infor508_fig_004">
<label>Fig. 4</label>
<caption>
<p>Nicholl-Lee-Nicholl algorithm – window corners position evaluation.</p>
</caption>
<graphic xlink:href="infor508_g004.jpg"/>
</fig>
<p>The Cohen-Sutherland algorithm was improved by Nicholl <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_126">1987</xref>). It uses the window corners position classification in relation to the line segment position, see Fig. <xref rid="j_infor508_fig_004">4</xref>. The Nicholl-Lee-Nicholl algorithm was improved by Bui and Skala (<xref ref-type="bibr" rid="j_infor508_ref_017">1998</xref>) using some additional classification of possible cases and extended to the <inline-formula id="j_infor508_ineq_060"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case in Skala and Bui (<xref ref-type="bibr" rid="j_infor508_ref_189">2001</xref>).</p>
<p>The algorithms (Liang and Barsky, <xref ref-type="bibr" rid="j_infor508_ref_101">1983</xref>) and (Dörr, <xref ref-type="bibr" rid="j_infor508_ref_046">1990</xref>) are based on the direct intersection computation of a line with the polygon edges in the parametric form. Analysis of the Nicholl-Lee-Nicholl and Liang-Barsky algorithms was given in Devai (<xref ref-type="bibr" rid="j_infor508_ref_037">2005</xref>). Simple and robust line and line segment clipping algorithms in <inline-formula id="j_infor508_ineq_061"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> was described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_173">2004</xref>, <xref ref-type="bibr" rid="j_infor508_ref_174">2005</xref>, <xref ref-type="bibr" rid="j_infor508_ref_178">2012</xref>, <xref ref-type="bibr" rid="j_infor508_ref_183">2020</xref>). They are based on the projective representation and homogeneous coordinates using a separation of the convex polygon vertices by the given line, see Fig. <xref rid="j_infor508_fig_005">5</xref>. The sign of the function values <inline-formula id="j_infor508_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$F(\mathbf{x})$]]></tex-math></alternatives></inline-formula>, which represents the given line, for each window corner gives a 4-bit code identifying the edges intersected by the given line. The algorithm can be extended for the convex polygon case.</p>
<fig id="j_infor508_fig_005">
<label>Fig. 5</label>
<caption>
<p>Clipping against the rectangular window in <inline-formula id="j_infor508_ineq_063"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<graphic xlink:href="infor508_g005.jpg"/>
</fig>
</sec>
<sec id="j_infor508_s_007">
<label>3.2</label>
<title>S-L-Clip Algorithm</title>
<p>Let us consider an implicit function <inline-formula id="j_infor508_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi></mml:math><tex-math><![CDATA[$F(\mathbf{x})={\mathbf{a}^{T}}\mathbf{x}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor508_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{a}={[a,b:c]^{T}}$]]></tex-math></alternatives></inline-formula> are coefficients of the given line <italic>p</italic>, <inline-formula id="j_infor508_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y:w]^{T}}$]]></tex-math></alternatives></inline-formula> means a point on this line. Then the equation <inline-formula id="j_infor508_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$F(\mathbf{x})=0$]]></tex-math></alternatives></inline-formula> represents the given line <italic>p</italic> in <inline-formula id="j_infor508_ineq_068"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> using the projective extension of the Euclidean space.</p>
<p>The clipping operation should determine the intersection points <inline-formula id="j_infor508_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{x}_{i}}={[{x_{i}},{y_{i}}:{w_{i}}]^{T}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor508_ineq_070"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$i=1,2$]]></tex-math></alternatives></inline-formula> of the given line with the window, if any. The line splits the plane into two parts, see Fig. <xref rid="j_infor508_fig_005">5</xref>. The corners of the window are split into two groups according to the sign of the function <inline-formula id="j_infor508_ineq_071"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$F(\mathbf{x})$]]></tex-math></alternatives></inline-formula> value. This results into Smart-Line-Clip (S-L-Clip) algorithm, see Algorithm <xref rid="j_infor508_fig_006">1</xref>. It means that each corner can be classified by a bit value <inline-formula id="j_infor508_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{i}}$]]></tex-math></alternatives></inline-formula> as: 
<disp-formula id="j_infor508_eq_009">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>otherwise</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {c_{i}}=\left\{\begin{array}{l@{\hskip4.0pt}l}1,\hspace{1em}& F({\mathbf{x}_{i}})\geqslant 0,\\ {} 0,\hspace{1em}& \text{otherwise},\end{array}\right.\hspace{1em}i=0,\dots ,3,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{a}={[a,b:c]^{T}}$]]></tex-math></alternatives></inline-formula> are coefficients of the given line <italic>p</italic>, <inline-formula id="j_infor508_ineq_074"><alternatives><mml:math>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{x}={[x,y:w]^{T}}$]]></tex-math></alternatives></inline-formula> means a point on this line. Table <xref rid="j_infor508_tab_003">3</xref> shows the codes for all situations (some of those are not possible). The <inline-formula id="j_infor508_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="bold">TAB</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{TAB}\mathbf{1}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="bold">TAB</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{TAB}\mathbf{2}$]]></tex-math></alternatives></inline-formula> contain indices of edges of the window intersected by the given line (values in the <inline-formula id="j_infor508_ineq_077"><alternatives><mml:math>
<mml:mi mathvariant="bold">MASK</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{MASK}$]]></tex-math></alternatives></inline-formula> is used in the line segment algorithm).</p>
<table-wrap id="j_infor508_tab_003">
<label>Table 3</label>
<caption>
<p>All cases; N/A – non-applicable (impossible) cases.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">c</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><bold>c</bold></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">TAB1</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">TAB2</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">MASK</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0000</td>
<td style="vertical-align: top; text-align: left">None</td>
<td style="vertical-align: top; text-align: left">None</td>
<td style="vertical-align: top; text-align: left">None</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0001</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0010</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0011</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0010</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">0100</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0010</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">0101</td>
<td style="vertical-align: top; text-align: left">N/A</td>
<td style="vertical-align: top; text-align: left">N/A</td>
<td style="vertical-align: top; text-align: left">N/A</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">0110</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0111</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1000</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">c</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><bold>c</bold></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">TAB1</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">TAB2</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">MASK</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">15</td>
<td style="vertical-align: top; text-align: left">1111</td>
<td style="vertical-align: top; text-align: left">None</td>
<td style="vertical-align: top; text-align: left">None</td>
<td style="vertical-align: top; text-align: left">None</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">14</td>
<td style="vertical-align: top; text-align: left">1110</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">None</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">1101</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">01</td>
<td style="vertical-align: top; text-align: left">0100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">1100</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0010</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">11</td>
<td style="vertical-align: top; text-align: left">1011</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">0010</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">10</td>
<td style="vertical-align: top; text-align: left">1010</td>
<td style="vertical-align: top; text-align: left">N/A</td>
<td style="vertical-align: top; text-align: left">N/A</td>
<td style="vertical-align: top; text-align: left">N/A</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">1001</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left">0100</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1000</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1000</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_infor508_fig_006">
<label>Algorithm 1</label>
<caption>
<p>S-L-Clip – line clipping algorithm by the rectangular window</p>
</caption>
<graphic xlink:href="infor508_g006.jpg"/>
</fig>
<p>It can be seen, that the S-L-Clip Algorithm <xref rid="j_infor508_fig_006">1</xref> is quite simple and easily extensible for the convex polygon clipping case as well. Table <xref rid="j_infor508_tab_003">3</xref> can be generated synthetically. It is significantly more straightforward than the algorithm (Liang and Barsky, <xref ref-type="bibr" rid="j_infor508_ref_102">1984</xref>). It also supports SSE4 and GPU use directly and leads to simple implementations, as the cross-product and dot-product operations, are supported in hardware. It should be noted, that the algorithm is designed for a very general case, as the window corners and the points defining the line, are generally in the projective representation, i.e. <inline-formula id="j_infor508_ineq_078"><alternatives><mml:math>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$w\ne 0$]]></tex-math></alternatives></inline-formula>. Therefore, the S-L-Clip algorithm has further potential for optimization, especially for the case when the corner points of the window are given in the Euclidean coordinates, i.e. <inline-formula id="j_infor508_ineq_079"><alternatives><mml:math>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$w=1$]]></tex-math></alternatives></inline-formula>, and clipping is made in the Normalized Device Coordinate (NDC) system (Skala, <xref ref-type="bibr" rid="j_infor508_ref_183">2020</xref>).</p>
<p>The modification of the S-L-Clip algorithm for a line segment clipping is simple and described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_173">2004</xref>). The advantage of it is that the end-points and the window corners might be given generally in the projective space, i.e. <inline-formula id="j_infor508_ineq_080"><alternatives><mml:math>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$w\ne 0$]]></tex-math></alternatives></inline-formula>. The cross-product is used for the intersection computation using SSE4 or GPU acceleration.</p>
<p>Other proposed modifications of algorithms can be found in Bui (<xref ref-type="bibr" rid="j_infor508_ref_016">1999</xref>), Andreev and Sofianska (<xref ref-type="bibr" rid="j_infor508_ref_006">1991</xref>), Bao and Peng (<xref ref-type="bibr" rid="j_infor508_ref_010">1996</xref>), Devai (<xref ref-type="bibr" rid="j_infor508_ref_037">2005</xref>, <xref ref-type="bibr" rid="j_infor508_ref_038">2006</xref>, <xref ref-type="bibr" rid="j_infor508_ref_036">1998</xref>), Duvalenko <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_043">1990</xref>, <xref ref-type="bibr" rid="j_infor508_ref_044">1993</xref>, <xref ref-type="bibr" rid="j_infor508_ref_045">1996</xref>), Cai <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_018">2001</xref>), Day (<xref ref-type="bibr" rid="j_infor508_ref_031">1992a</xref>, <xref ref-type="bibr" rid="j_infor508_ref_032">1992b</xref>), Evangeline and Anitha (<xref ref-type="bibr" rid="j_infor508_ref_051">2014</xref>), Kaijian <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_078">1990</xref>), Kodituwakku <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_082">2013</xref>), Kong and Yin (<xref ref-type="bibr" rid="j_infor508_ref_087">2001</xref>), Maillot (<xref ref-type="bibr" rid="j_infor508_ref_110">1992</xref>), Wei <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_220">2013</xref>), Slater and Barsky (<xref ref-type="bibr" rid="j_infor508_ref_194">1994</xref>), Ray (<xref ref-type="bibr" rid="j_infor508_ref_138">2012a</xref>, <xref ref-type="bibr" rid="j_infor508_ref_139">2012b</xref>, <xref ref-type="bibr" rid="j_infor508_ref_140">2014</xref>, <xref ref-type="bibr" rid="j_infor508_ref_141">2015</xref>), Li (<xref ref-type="bibr" rid="j_infor508_ref_096">2016</xref>), Singh and Lumar (<xref ref-type="bibr" rid="j_infor508_ref_162">2016</xref>), Dev and Saharan (<xref ref-type="bibr" rid="j_infor508_ref_035">2019</xref>).</p>
<p>Some additional modifications of algorithms were published in Brackenbury (<xref ref-type="bibr" rid="j_infor508_ref_015">1984</xref>), Chao <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_021">2009</xref>), Cheng and Yen (<xref ref-type="bibr" rid="j_infor508_ref_022">1989</xref>), Dimri (<xref ref-type="bibr" rid="j_infor508_ref_040">2015</xref>), Dimri <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_041">2022</xref>), Elliriki <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_049">2019</xref>), Hattab and Yusof (<xref ref-type="bibr" rid="j_infor508_ref_062">2014</xref>), Iraji <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_073">2011</xref>), Jiang and Han (<xref ref-type="bibr" rid="j_infor508_ref_074">2013</xref>), Jianrong (<xref ref-type="bibr" rid="j_infor508_ref_075">2006</xref>), Kumar and Awasthi (<xref ref-type="bibr" rid="j_infor508_ref_090">2011</xref>), Kuzmin (<xref ref-type="bibr" rid="j_infor508_ref_092">1995</xref>), Li <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_100">2014</xref>), Li and Lei (<xref ref-type="bibr" rid="j_infor508_ref_098">2012</xref>), Meriaux (<xref ref-type="bibr" rid="j_infor508_ref_120">1984</xref>), Molla <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_121">2003</xref>), Nisha (<xref ref-type="bibr" rid="j_infor508_ref_129">2017b</xref>, <xref ref-type="bibr" rid="j_infor508_ref_128">2017a</xref>), Sobkow <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_195">1987</xref>), Sharma and Manohar (<xref ref-type="bibr" rid="j_infor508_ref_159">1993</xref>), Wang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_213">1998a</xref>, <xref ref-type="bibr" rid="j_infor508_ref_214">1998b</xref>, <xref ref-type="bibr" rid="j_infor508_ref_216">2012</xref>, <xref ref-type="bibr" rid="j_infor508_ref_217">2001</xref>), Yang (<xref ref-type="bibr" rid="j_infor508_ref_234">1988</xref>), Pandey and Jain (<xref ref-type="bibr" rid="j_infor508_ref_131">2013</xref>), Bhuiyan (<xref ref-type="bibr" rid="j_infor508_ref_011">2009</xref>). The hardware FPGA implementation was proposed in Dawod (<xref ref-type="bibr" rid="j_infor508_ref_030">2011</xref>).</p>
<p>Analysis and comparisons of some clipping algorithms were published recently in Krammer (<xref ref-type="bibr" rid="j_infor508_ref_088">1992</xref>), Skala and Huy (<xref ref-type="bibr" rid="j_infor508_ref_190">2000</xref>), Skala <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_192">1995</xref>), Nisha (<xref ref-type="bibr" rid="j_infor508_ref_128">2017a</xref>, <xref ref-type="bibr" rid="j_infor508_ref_129">2017b</xref>), Matthes and Drakopoulos (<xref ref-type="bibr" rid="j_infor508_ref_116">2022</xref>), Ray (<xref ref-type="bibr" rid="j_infor508_ref_139">2012b</xref>).</p>
</sec>
<sec id="j_infor508_s_008">
<label>3.3</label>
<title>Intersection with Polygons</title>
<p>Generic solutions for polygon clipping were developed by Weiler and Atherton (<xref ref-type="bibr" rid="j_infor508_ref_222">1977</xref>), Rappoport (<xref ref-type="bibr" rid="j_infor508_ref_137">1991</xref>), Vatti (<xref ref-type="bibr" rid="j_infor508_ref_207">1992</xref>), Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_231">2004</xref>), Xie <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_233">2010</xref>), Zhang and Sabharwal (<xref ref-type="bibr" rid="j_infor508_ref_236">2002</xref>), Zhang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_237">2022</xref>). Boolean operations with polygons were introduced by Rivero and Feito (<xref ref-type="bibr" rid="j_infor508_ref_145">2000</xref>), Martinez <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_113">2009</xref>).</p>
<p>Algorithms for a line clipping <inline-formula id="j_infor508_ineq_081"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> by a polygon depend on the polygon property, i.e. if the polygon is convex or non-convex. In the case of convex polygons, the convexity property and ordering of vertices enables to decrease complexity from <inline-formula id="j_infor508_ineq_082"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_infor508_ineq_083"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo movablelimits="false">lg</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(\lg N)$]]></tex-math></alternatives></inline-formula> (Skala, <xref ref-type="bibr" rid="j_infor508_ref_167">1994</xref>). It should be noted that a similar complexity decrease is not possible in the <inline-formula id="j_infor508_ineq_084"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case as there is no ordering.</p>
<p>In the non-convex polygon cases, when the polygon can be self-intersecting, etc., problems with robustness of computation can be expected. Also, in some cases a three-value logic is to be used in order to solve specific cases properly, e.g. a line passes a vertex, a line touches a vertex, a line lies on an edge, etc. (Mccoid and Gander, <xref ref-type="bibr" rid="j_infor508_ref_117">2022</xref>; Skala, <xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>, <xref ref-type="bibr" rid="j_infor508_ref_164">1990a</xref>).</p>
</sec>
<sec id="j_infor508_s_009">
<label>3.4</label>
<title>Convex Polygons</title>
<p>The Cyrus-Beck’s algorithm (Cyrus and Beck, <xref ref-type="bibr" rid="j_infor508_ref_028">1978</xref>) is probably the famous algorithm for line-convex polygon clipping. It is based on a computation of the parameter <italic>t</italic> of the given line in the parametric form with edges of the given convex polygon, Fig. <xref rid="j_infor508_fig_007">6</xref>. The algorithm is of <inline-formula id="j_infor508_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> computational complexity and can be extended for the <inline-formula id="j_infor508_ineq_086"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case.</p>
<fig id="j_infor508_fig_007">
<label>Fig. 6</label>
<caption>
<p>Cyrus-Beck line clipping algorithm.</p>
</caption>
<graphic xlink:href="infor508_g007.jpg"/>
</fig>
<p>The Cyrus-Beck’s algorithm is based on direct intersection computation of the given line <italic>p</italic> in the parametric form and a line on which the polygon edge <inline-formula id="j_infor508_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{i}}$]]></tex-math></alternatives></inline-formula> lies, see Fig. <xref rid="j_infor508_fig_007">6</xref>, in the implicit form, i.e. on a solution of two linear equations (vector notation is used): 
<disp-formula id="j_infor508_eq_010">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable displaystyle="true" columnspacing="0pt" columnalign="right left">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>:</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mspace width="1em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{aligned}{}& p:\hspace{1em}\mathbf{x}(t)={\mathbf{x}_{A}}+\mathbf{s}\hspace{0.1667em}t,\\ {} & {e_{i}}:\hspace{1em}{\mathbf{n}_{i}^{T}}\mathbf{x}+{c_{i}}=0,\hspace{1em}i=0,\dots ,N-1,\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor508_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{x}_{A}}={[{x_{A}},{y_{A}}]^{T}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor508_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{s}={[{s_{x}},{s_{y}}]^{T}}$]]></tex-math></alternatives></inline-formula> is the directional vector of the line <italic>p</italic>, <inline-formula id="j_infor508_ineq_090"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{n}_{i}}={[{n_{x}},{n_{y}}]^{T}}$]]></tex-math></alternatives></inline-formula> is the normal vector of the edge <inline-formula id="j_infor508_ineq_091"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{i}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Solving those equations, the parameter <italic>t</italic> for the intersection point is obtained as: 
<disp-formula id="j_infor508_eq_011">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbf{n}_{i}^{T}}{\mathbf{x}_{A}}+{\mathbf{n}_{i}^{T}}\mathbf{s}\hspace{0.1667em}t+{c_{i}}=0.\]]]></tex-math></alternatives>
</disp-formula> 
Then <inline-formula id="j_infor508_ineq_092"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> is the parameter <italic>t</italic> value for the intersection of the line <italic>p</italic> and the line on which the edge <inline-formula id="j_infor508_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{i}}$]]></tex-math></alternatives></inline-formula> lies, see Fig. <xref rid="j_infor508_fig_007">6</xref>.
<disp-formula id="j_infor508_eq_012">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t_{i}}=-\frac{{\mathbf{n}_{i}^{T}}{\mathbf{x}_{A}}+{c_{i}}}{{\mathbf{n}_{i}^{T}}\mathbf{s}}.\]]]></tex-math></alternatives>
</disp-formula> 
It can be seen that the algorithm is not robust as if the line <italic>p</italic> is parallel or nearly parallel to the edge <inline-formula id="j_infor508_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{i}}$]]></tex-math></alternatives></inline-formula>, the expression <inline-formula id="j_infor508_ineq_095"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[${\mathbf{n}_{i}^{T}}\mathbf{s}\to 0$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor508_ineq_096"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo>±</mml:mo>
<mml:mi>∞</mml:mi></mml:math><tex-math><![CDATA[${t_{i}}\to \pm \infty $]]></tex-math></alternatives></inline-formula>. The fraction computation might cause an overflow or high imprecision of the computed parameter <italic>t</italic> value, see Fig. <xref rid="j_infor508_fig_007">6</xref>.</p>
<p>It is hard to detect and solve such cases reliably and programmers usually use a sequence like
<disp-formula id="j_infor508_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="bold">if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mtext mathvariant="italic">eps</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="bold">then</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mtext mathvariant="italic">a singular case</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textbf{if}\hspace{2.5pt}\big|{\mathbf{n}_{i}^{T}}\mathbf{s}\big|<\textit{eps}\hspace{2.5pt}\textbf{then}\hspace{2.5pt}\textit{a singular case}\]]]></tex-math></alternatives>
</disp-formula> 
which is an incorrect solution as the value <inline-formula id="j_infor508_ineq_097"><alternatives><mml:math>
<mml:mtext mathvariant="italic">eps</mml:mtext></mml:math><tex-math><![CDATA[$\textit{eps}$]]></tex-math></alternatives></inline-formula> is the programmer’s choice and the value of <inline-formula id="j_infor508_ineq_098"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">s</mml:mi></mml:math><tex-math><![CDATA[${\mathbf{n}_{i}^{T}}\mathbf{s}$]]></tex-math></alternatives></inline-formula> might also be close to the value of <inline-formula id="j_infor508_ineq_099"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{n}_{i}^{T}}{\mathbf{x}_{A}}+{c_{i}}$]]></tex-math></alternatives></inline-formula>, see Eq. (<xref rid="j_infor508_eq_012">12</xref>).</p>
<p>However, textbooks do not point out such dangerous construction as far as robustness and computational stability are concerned.</p>
<p>The modification of the Cyrus-Beck’s algorithm using the cross product for more reliable detection of the “close to singular” cases was described by Skala (<xref ref-type="bibr" rid="j_infor508_ref_166">1993</xref>). Probably the most reliable modification of the Cyrus-Beck’s algorithm is to use:</p>
<list>
<list-item id="j_infor508_li_007">
<label>•</label>
<p>a separation implicit function <inline-formula id="j_infor508_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$F(\mathbf{x})=0$]]></tex-math></alternatives></inline-formula> representing the given line <italic>p</italic> defined as</p>
<p><inline-formula id="j_infor508_ineq_101"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi></mml:math><tex-math><![CDATA[$F(\mathbf{x})={\mathbf{n}^{T}}{\mathbf{x}_{A}}+c$]]></tex-math></alternatives></inline-formula> for intersection detection as in Skala (<xref ref-type="bibr" rid="j_infor508_ref_174">2005</xref>),</p>
</list-item>
<list-item id="j_infor508_li_008">
<label>•</label>
<p>the parametric form of the given line for intersection computation with the found edges intersected, see Eq. (<xref rid="j_infor508_eq_012">12</xref>).</p>
</list-item>
</list>
<fig id="j_infor508_fig_008">
<label>Algorithm 2</label>
<caption>
<p>Cyrus-Beck’s line clipping algorithm</p>
</caption>
<graphic xlink:href="infor508_g008.jpg"/>
</fig>
<p>The Cyrus-Beck’s algorithm for a line clipping is described by Algorithm <xref rid="j_infor508_fig_008">2</xref>. It can be easily modified for the line segment clipping just restricting the range of the parameter <italic>t</italic> to <inline-formula id="j_infor508_ineq_102"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">⟩</mml:mo></mml:math><tex-math><![CDATA[$\langle 0,1\rangle $]]></tex-math></alternatives></inline-formula>, i.e. 
<disp-formula id="j_infor508_eq_014">
<label>(13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">⟩</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">⟩</mml:mo>
<mml:mo>∩</mml:mo>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">⟩</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \langle {t_{\min }},{t_{\max }}\rangle :=\langle {t_{\min }},{t_{\max }}\rangle \cap \langle 0,1\rangle .\]]]></tex-math></alternatives>
</disp-formula> 
It can be seen that the algorithm complexity is <inline-formula id="j_infor508_ineq_103"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> and the division operation, which is the most consuming time operation in the floating-point representation, is used <italic>N</italic> times.<xref ref-type="fn" rid="j_infor508_fn_004">3</xref><fn id="j_infor508_fn_004"><label><sup>3</sup></label>
<p>There is a possibility to postpone division operations if the homogeneous coordinates are used, but comparison operations must be modified appropriately (Skala, <xref ref-type="bibr" rid="j_infor508_ref_183">2020</xref>, <xref ref-type="bibr" rid="j_infor508_ref_186">2021c</xref>).</p></fn></p>
<p>However, only 2 values (<inline-formula id="j_infor508_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{\min }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor508_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{\max }}$]]></tex-math></alternatives></inline-formula>) of the parameter <italic>t</italic> are valid, i.e. <inline-formula id="j_infor508_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$N-2$]]></tex-math></alternatives></inline-formula> computations of the parameter <italic>t</italic> are lost. Also, reliable detection of the “singular or close to singular” cases is difficult and time-consuming, especially in the <inline-formula id="j_infor508_ineq_107"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> case.</p>
<p>Some improvements and modifications were described by Skala (<xref ref-type="bibr" rid="j_infor508_ref_166">1993</xref>). As the edges of the convex polygon are ordered, the algorithm with the <inline-formula id="j_infor508_ineq_108"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo movablelimits="false">lg</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(\lg N)$]]></tex-math></alternatives></inline-formula> complexity was derived by Skala (<xref ref-type="bibr" rid="j_infor508_ref_167">1994</xref>). An algorithm based on space subdivision was described in Slater and Barsky (<xref ref-type="bibr" rid="j_infor508_ref_194">1994</xref>).</p>
<p>Another approach based on the implicit form of the given line and convex polygon vertices classification, the S-Clip algorithm, was developed in Skala (<xref ref-type="bibr" rid="j_infor508_ref_186">2021c</xref>) and modified by Konashkova (<xref ref-type="bibr" rid="j_infor508_ref_085">2014</xref>, <xref ref-type="bibr" rid="j_infor508_ref_086">2015</xref>). Another algorithm based on the S-Clip algorithm was described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_186">2021c</xref>). An algorithm for a line segment clipping based on the line segment end-points evaluation with the <inline-formula id="j_infor508_ineq_109"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> complexity was described by Matthes and Drakopoulos (<xref ref-type="bibr" rid="j_infor508_ref_116">2022</xref>).</p>
<p>The Liang-Barsky algorithm (Liang and Barsky, <xref ref-type="bibr" rid="j_infor508_ref_102">1984</xref>, <xref ref-type="bibr" rid="j_infor508_ref_101">1983</xref>) based on direct intersection computation of a line with the convex polygon edges in the parametric form has the <inline-formula id="j_infor508_ineq_110"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> computational complexity, too.</p>
<p>The algorithm with the run-time <inline-formula id="j_infor508_ineq_111"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(1)$]]></tex-math></alternatives></inline-formula> complexity using pre-computation was developed by Skala (<xref ref-type="bibr" rid="j_infor508_ref_169">1996b</xref>, <xref ref-type="bibr" rid="j_infor508_ref_171">1996d</xref>). The algorithm was motivated by the scan-line raster conversion used recently for solving visibility in rendering. The memory requirements depend on the geometrical properties of the given convex polygon. A comparison of the <inline-formula id="j_infor508_ineq_112"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(1)$]]></tex-math></alternatives></inline-formula> algorithm with the Cyrus-Beck algorithm is presented in Skala and Lederbuch (<xref ref-type="bibr" rid="j_infor508_ref_191">1996</xref>), Skala <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_193">1996</xref>).</p>
<p>Other related algorithms or modifications of existing ones were published by: Li (<xref ref-type="bibr" rid="j_infor508_ref_097">2005</xref>), Nishita and Johan (<xref ref-type="bibr" rid="j_infor508_ref_130">1999</xref>), Raja (<xref ref-type="bibr" rid="j_infor508_ref_135">2019</xref>), Sun <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_198">2006</xref>), Vatti (<xref ref-type="bibr" rid="j_infor508_ref_207">1992</xref>), Wang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_215">2005</xref>), Wijeweera <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_223">2019</xref>), Sharma and Kaur (<xref ref-type="bibr" rid="j_infor508_ref_157">2016</xref>), Sharma and Manohar (<xref ref-type="bibr" rid="j_infor508_ref_158">1992</xref>) use the affine transformation.</p>
</sec>
<sec id="j_infor508_s_010">
<label>3.5</label>
<title>Non-Convex Polygons</title>
<p>Probably, the first algorithm dealing with the non-convex polygon clipping was published in the Reentrant polygon clipping algorithm paper (Sutherland and Hodgman, <xref ref-type="bibr" rid="j_infor508_ref_200">1974</xref>), followed by the Weiler-Atherton algorithm for polygon-polygon clipping (Weiler, <xref ref-type="bibr" rid="j_infor508_ref_221">1980</xref>; Weiler and Atherton, <xref ref-type="bibr" rid="j_infor508_ref_222">1977</xref>; Rappoport, <xref ref-type="bibr" rid="j_infor508_ref_137">1991</xref>).</p>
<p>Intersections with arbitrary non-convex polygons were described in Greiner and Hormann (<xref ref-type="bibr" rid="j_infor508_ref_057">1998</xref>) and solutions of “the singular” (degenerated) cases were described in Foster <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_054">2019</xref>). The algorithm (Skala, <xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>) uses a three-value logic.</p>
<p>A robust solution of triangle-triangle intersection in <inline-formula id="j_infor508_ineq_113"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{2}}$]]></tex-math></alternatives></inline-formula> is described in Mccoid and Gander (<xref ref-type="bibr" rid="j_infor508_ref_117">2022</xref>). Other algorithms or modifications are described in Dimri (<xref ref-type="bibr" rid="j_infor508_ref_040">2015</xref>), Evangeline and Anitha (<xref ref-type="bibr" rid="j_infor508_ref_051">2014</xref>), Lu and Wu (<xref ref-type="bibr" rid="j_infor508_ref_105">2002</xref>), Lu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_106">2002a</xref>), Tang and He (<xref ref-type="bibr" rid="j_infor508_ref_201">2009</xref>). The affine transformations are used in Huang (<xref ref-type="bibr" rid="j_infor508_ref_069">2013</xref>), Huang and Wangyong (<xref ref-type="bibr" rid="j_infor508_ref_070">2009</xref>), Huang and Liu (<xref ref-type="bibr" rid="j_infor508_ref_071">2002</xref>).</p>
<p>Algorithms that also handle arcs and use a three-value logic to handle singular cases properly, including self-intersecting non-convex polygons, were described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_182">2015</xref>, <xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>, <xref ref-type="bibr" rid="j_infor508_ref_164">1990a</xref>), Wang and Chong (<xref ref-type="bibr" rid="j_infor508_ref_212">2016</xref>), Tran (<xref ref-type="bibr" rid="j_infor508_ref_204">1986</xref>).</p>
<sec id="j_infor508_s_011">
<title>Non-Polygonal Window</title>
<fig id="j_infor508_fig_009">
<label>Fig. 7</label>
<caption>
<p>Line clipping by an area with circular segments (taken from Skala, <xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>).</p>
</caption>
<graphic xlink:href="infor508_g009.jpg"/>
</fig>
<p>The algorithm for circular arc was described in Van Wyk (<xref ref-type="bibr" rid="j_infor508_ref_206">1984</xref>), Gupta <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_060">2016</xref>), for overlapping areas by Li <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_099">2012</xref>) and for circular window in Lu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_107">2002b</xref>), Kumar <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_091">2018</xref>), Wu and Li (<xref ref-type="bibr" rid="j_infor508_ref_230">2022</xref>), Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_229">2006</xref>), Skala (<xref ref-type="bibr" rid="j_infor508_ref_163">1989</xref>), see Fig. <xref rid="j_infor508_fig_009">7</xref>. The above-mentioned algorithms lead to algorithms for set operations with polygons, i.e. union, intersection etc. of polygons described, e.g. Kui Liu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_089">2007</xref>), Martinez <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_113">2009</xref>).</p>
</sec>
</sec>
<sec id="j_infor508_s_012">
<label>3.6</label>
<title>Clipping Using Homogeneous Coordinates</title>
<p>Homogeneous coordinates are used in computer graphics not only for geometric transformations. Sproull and Sutherland (<xref ref-type="bibr" rid="j_infor508_ref_196">1968</xref>) used the homogeneous coordinates in the Clipping divider in 1968. Arokiasamy (<xref ref-type="bibr" rid="j_infor508_ref_008">1989</xref>) used them with duality in 1989, Blinn (<xref ref-type="bibr" rid="j_infor508_ref_013">1991</xref>), Blinn and Newell (<xref ref-type="bibr" rid="j_infor508_ref_014">1978</xref>) described the clipping pipeline using the projective extension of the Euclidean space and Nielsen (<xref ref-type="bibr" rid="j_infor508_ref_127">1995</xref>) described the use of semi-homogeneous coordinates for clipping. New approach to 2D clipping based on the separation of the convex polygon vertices by the given line was presented in Kolingerová (<xref ref-type="bibr" rid="j_infor508_ref_083">1994</xref>, <xref ref-type="bibr" rid="j_infor508_ref_084">1997</xref>) and Skala (<xref ref-type="bibr" rid="j_infor508_ref_173">2004</xref>, <xref ref-type="bibr" rid="j_infor508_ref_174">2005</xref>, <xref ref-type="bibr" rid="j_infor508_ref_178">2012</xref>, <xref ref-type="bibr" rid="j_infor508_ref_183">2020</xref>).</p>
<p>In the following, algorithms related to the intersection in 3D will be briefly mentioned in a short introductory overview.</p>
</sec>
</sec>
<sec id="j_infor508_s_013">
<label>4</label>
<title>Intersection Algorithms in 3D</title>
<p>Intersection algorithms in 3D are widely used in many applications. An overview of the clipping algorithms is given in the Bui’s PhD (Bui, <xref ref-type="bibr" rid="j_infor508_ref_016">1999</xref>). The intersection of a line segment with a polygon in 3D was studied in Segura and Feito (<xref ref-type="bibr" rid="j_infor508_ref_156">1998</xref>) and the intersection of polygonal models was analysed by Melero <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_119">2019</xref>). Algorithms for 3D clipping were overviewed in Skala (<xref ref-type="bibr" rid="j_infor508_ref_165">1990b</xref>) and reliable intersection tests with geometrical objects were published by Held (<xref ref-type="bibr" rid="j_infor508_ref_066">1998</xref>). Boolean operations with polygonal and polyhedral meshes were described by Landier (<xref ref-type="bibr" rid="j_infor508_ref_094">2017</xref>).</p>
<sec id="j_infor508_s_014">
<title>Line-Viewing Pyramid</title>
<p>Special attention was recently given to a line clipping by a pyramid in 3D due to the perspective pyramid clipping. The problem was analysed recently by Cohen (<xref ref-type="bibr" rid="j_infor508_ref_023">1969</xref>), Sproull and Sutherland (<xref ref-type="bibr" rid="j_infor508_ref_196">1968</xref>), Blinn (<xref ref-type="bibr" rid="j_infor508_ref_013">1991</xref>), Blinn and Newell (<xref ref-type="bibr" rid="j_infor508_ref_014">1978</xref>), Skala and Bui (<xref ref-type="bibr" rid="j_infor508_ref_188">2000</xref>, <xref ref-type="bibr" rid="j_infor508_ref_189">2001</xref>).</p>
</sec>
<sec id="j_infor508_s_015">
<title>Convex Polyhedron Case</title>
<p>The Cyrus-Beck’s algorithm (Cyrus and Beck, <xref ref-type="bibr" rid="j_infor508_ref_028">1978</xref>) is probably the famous algorithm for the line-convex polyhedron clipping in <inline-formula id="j_infor508_ineq_114"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula>. It computes a parameter <italic>t</italic> of a line in the parametric form and plane of the given face of the convex polyhedron. The algorithm is of the <inline-formula id="j_infor508_ineq_115"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(N)$]]></tex-math></alternatives></inline-formula> computational complexity given by the fact that in the <inline-formula id="j_infor508_ineq_116"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> space there is “no order” of the polyhedron facets defined. Rogers and Rybak (<xref ref-type="bibr" rid="j_infor508_ref_146">1985</xref>) published a more general clipping algorithm in 3D in 1995.</p>
<p>The algorithm with the <inline-formula id="j_infor508_ineq_117"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">exp</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msqrt>
<mml:mspace width="0.1667em"/>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O_{\exp }}(\sqrt{N}\hspace{0.1667em})$]]></tex-math></alternatives></inline-formula> complexity was described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_172">1997</xref>, <xref ref-type="bibr" rid="j_infor508_ref_181">2014</xref>). It assumes a triangular mesh, i.e. there is info on the neighbour triangles available. The algorithm is based on two planes representing the given line in <inline-formula id="j_infor508_ineq_118"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> and testing of the neighbours in the triangular mesh of the given polyhedron. The algorithm was modified by Konashkova (<xref ref-type="bibr" rid="j_infor508_ref_086">2015</xref>). An interesting approach using the vertex connection table was published in Konashkova (<xref ref-type="bibr" rid="j_infor508_ref_085">2014</xref>).</p>
<p>Using pre-computation, the algorithm in <inline-formula id="j_infor508_ineq_119"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${E^{3}}$]]></tex-math></alternatives></inline-formula> with a run-time <inline-formula id="j_infor508_ineq_120"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(1)$]]></tex-math></alternatives></inline-formula> complexity was developed by Skala (<xref ref-type="bibr" rid="j_infor508_ref_170">1996c</xref>). Comparison was presented in Skala <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_193">1996</xref>).</p>
</sec>
<sec id="j_infor508_s_016">
<title>Ray-Convex Polyhedron</title>
<p>The Moeller-Trumbore algorithm for a ray-triangle intersection was published in Möller and Trumbore (<xref ref-type="bibr" rid="j_infor508_ref_124">1997</xref>). Since then many modifications and approaches have been published, e.g. Xiao <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_232">2020</xref>) using GPUs, Skala (<xref ref-type="bibr" rid="j_infor508_ref_177">2010</xref>, <xref ref-type="bibr" rid="j_infor508_ref_175">2008a</xref>) uses the computation of the barycentric coordinates in the homogeneous coordinates, Rajan <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_136">2020</xref>) uses dual-precision fixed-point arithmetic for low-power ray-triangle intersections. Platis and Theoharis (<xref ref-type="bibr" rid="j_infor508_ref_134">2003</xref>) published an algorithm for a ray-tetrahedron intersection using the Plücker coordinates. The intersection with the AABBox is described in Eisemann <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_048">2007</xref>), Kodituwakku and Wijeweera (<xref ref-type="bibr" rid="j_infor508_ref_081">2012</xref>), Maonica <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_111">2017</xref>) and Mahovsky and Wyvill (<xref ref-type="bibr" rid="j_infor508_ref_108">2004</xref>). Other algorithms are available in Sharma and Manohar (<xref ref-type="bibr" rid="j_infor508_ref_159">1993</xref>), Skala (<xref ref-type="bibr" rid="j_infor508_ref_168">1996a</xref>), Williams <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_228">2005</xref>), Llanas and Sainz (<xref ref-type="bibr" rid="j_infor508_ref_103">2012</xref>). The 3D line segment-triangle intersection algorithm is described in Jokanovic (<xref ref-type="bibr" rid="j_infor508_ref_077">2019</xref>), Amanatides and Choi (<xref ref-type="bibr" rid="j_infor508_ref_004">1995</xref>), Lagae and Dutré (<xref ref-type="bibr" rid="j_infor508_ref_093">2005</xref>) (in 2D only) and a ray/convex polyhedron intersection was described in Zheng and Millham (<xref ref-type="bibr" rid="j_infor508_ref_238">1991</xref>). Intersection of a line or a ray with a triangle using the SSE4 instructions was developed and described in Havel and Herout (<xref ref-type="bibr" rid="j_infor508_ref_063">2010</xref>). An extensive list of relevant publications can be found via Wikipedia (<xref ref-type="bibr" rid="j_infor508_ref_227">2021c</xref>).</p>
</sec>
<sec id="j_infor508_s_017">
<title>Intersection with Complex Objects</title>
<p>The intersection computation with implicitly defined objects was published by Petrie and Mills (<xref ref-type="bibr" rid="j_infor508_ref_132">2020</xref>), intersection with a torus was published by Cychosz (<xref ref-type="bibr" rid="j_infor508_ref_027">1991</xref>) and alternative formulations were given in Skala (<xref ref-type="bibr" rid="j_infor508_ref_179">2013a</xref>). Reshetov (<xref ref-type="bibr" rid="j_infor508_ref_144">2022</xref>) published an efficient algorithm for a ray/ribbon intersections computation, ray tracing of 3D Bézier curves given by Reshetov (<xref ref-type="bibr" rid="j_infor508_ref_142">2017</xref>) and a ray/bilinear patch intersection (Reshetov, <xref ref-type="bibr" rid="j_infor508_ref_143">2019</xref>). The intersection with general quadrics using the homogeneous coordinates was described in Skala (<xref ref-type="bibr" rid="j_infor508_ref_182">2015</xref>) and clipping by a spherical window was published by Deng <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_034">2006</xref>).</p>
<p>However, as polygonal models are mostly formed by triangular surfaces, a special attention is also targeted to <italic>triangle-triangle</italic> intersections.</p>
</sec>
<sec id="j_infor508_s_018">
<title>Triangle-Triangle Intersection in 3D</title>
<p>The computation of the intersection of triangles is probably the most important, as nearly all Computer Aided Design (CAD) systems depend on efficient, robust and reliable computation. Figures <xref rid="j_infor508_fig_010">8</xref> and <xref rid="j_infor508_fig_011">9</xref> present the non-trivial cases, when triangles are split into a set of triangles, which potentially leads to an explosion of small triangles and numerical and robustness problems.</p>
<fig id="j_infor508_fig_010">
<label>Fig. 8</label>
<caption>
<p>Triangle-triangle intersection case-1.</p>
</caption>
<graphic xlink:href="infor508_g010.jpg"/>
</fig>
<fig id="j_infor508_fig_011">
<label>Fig. 9</label>
<caption>
<p>Triangle-triangle intersection case-2.</p>
</caption>
<graphic xlink:href="infor508_g011.jpg"/>
</fig>
<p>In the CAD systems, two different data sets are usually used: 
<list>
<list-item id="j_infor508_li_009">
<label>•</label>
<p>set of triangles – there is no connection between triangles; typical example is the STL format for the 3D print,</p>
</list-item>
<list-item id="j_infor508_li_010">
<label>•</label>
<p>triangular mesh – there is information on the neighbours of the given triangles and triangles sharing the given vertex; a typical example is the winged edge or the half-edge data structures, etc.</p>
</list-item>
</list> 
An efficient triangle-triangle intersection algorithm was developed by Möller (<xref ref-type="bibr" rid="j_infor508_ref_123">1997</xref>). It is based on the mutual triangle intersection with the plane of the other. Other methods or approaches were described by Chang and Kim (<xref ref-type="bibr" rid="j_infor508_ref_020">2009</xref>), Danaei <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_029">2017</xref>), Devillers and Guigue (<xref ref-type="bibr" rid="j_infor508_ref_039">2002</xref>), Elsheikh and Elsheikh (<xref ref-type="bibr" rid="j_infor508_ref_050">2014</xref>), Guigue and Devillers (<xref ref-type="bibr" rid="j_infor508_ref_058">2003</xref>), Held (<xref ref-type="bibr" rid="j_infor508_ref_066">1998</xref>), Sabharwal and Leopold (<xref ref-type="bibr" rid="j_infor508_ref_151">2016</xref>), Sabharwal <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_149">2013</xref>), Sabharwal and Leopold (<xref ref-type="bibr" rid="j_infor508_ref_150">2015</xref>), Shen <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_160">2003</xref>), Tropp <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_205">2006</xref>), Roy and Dasari (<xref ref-type="bibr" rid="j_infor508_ref_148">1998</xref>), Wei (<xref ref-type="bibr" rid="j_infor508_ref_219">2014</xref>), Ye <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_235">2015</xref>). A deep analysis of possible situations is given in Lo and Wang (<xref ref-type="bibr" rid="j_infor508_ref_104">2004</xref>). Robust and reliable solution of the triangle-triangle intersection was developed by Mccoid and Gander (<xref ref-type="bibr" rid="j_infor508_ref_117">2022</xref>).</p>
<p>Clipping triangular strips using homogeneous coordinates was described by Maillot (<xref ref-type="bibr" rid="j_infor508_ref_109">1991</xref>) in GEM II (Arvo, <xref ref-type="bibr" rid="j_infor508_ref_009">1991</xref>). Parallel exact algorithm for the intersection of large 3D triangular meshes was described in de Magalhães <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_033">2020</xref>) and a comparison of triangle-triangle tests on GPU was described in Xiao <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_232">2020</xref>). Triangular mesh repair was described by McLaurin <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_118">2013</xref>).</p>
</sec>
</sec>
<sec id="j_infor508_s_019">
<label>5</label>
<title>Conclusion</title>
<p>This contribution briefly summarizes known clipping algorithms with some extent to the intersection in 3D and ray-tracing related algorithms. The list of published papers related to clipping algorithms should be complete to the author’s knowledge and extensive search via Web of Science, Scopus, Research Gate and WEB search with the related topics. The relevant DOIs were included, if found. If other source was found, the relevant URL was included.</p>
<p>There is hope that this summary will help researchers, students and software developers to find relevant papers easily.</p>
<p>However, developers are urged to consider a limited precision of the floating-point representation (Wikipedia, <xref ref-type="bibr" rid="j_infor508_ref_226">2021b</xref>) and handle numerical robustness issues properly for near <italic>singular</italic> cases in the actual implementations.</p>
<p>Surprisingly, during this summary preparation it was found that there are still some problems to be addressed and explored more deeply, like a robust and efficient intersection of triangular meshes as application of triangle-triangle intersection algorithms tend to lead to inconsistencies, inefficiency and unreliability, in general.</p>
<p>A short list of relevant books and research journals is given in Appendix A.</p>
</sec>
</body>
<back>
<app-group> 
<app id="j_infor508_app_001">
<title>Appendix A</title>
<p>There are many books published related to intersection algorithms, clipping and computer graphics, which give more context and deeper understanding, e.g.:</p>
<p>
<list>
<list-item id="j_infor508_li_011">
<label>•</label>
<p>Salomon, D.: The Computer Graphics Manual – Salomon (<xref ref-type="bibr" rid="j_infor508_ref_154">2011</xref>),</p>
</list-item>
<list-item id="j_infor508_li_012">
<label>•</label>
<p>Salomon, D.: Computer Graphics and Geometric Modelling – Salomon (<xref ref-type="bibr" rid="j_infor508_ref_152">1999</xref>),</p>
</list-item>
<list-item id="j_infor508_li_013">
<label>•</label>
<p>Agoston, M.K.: Computer Graphics and Geometric Modelling: Mathematics – Agoston (<xref ref-type="bibr" rid="j_infor508_ref_002">2005</xref>),</p>
</list-item>
<list-item id="j_infor508_li_014">
<label>•</label>
<p>Agoston, M.K.: Computer Graphics and Geometric Modelling: Implementation &amp; Algorithms – Agoston (<xref ref-type="bibr" rid="j_infor508_ref_001">2004</xref>),</p>
</list-item>
<list-item id="j_infor508_li_015">
<label>•</label>
<p>Lengyel, E.: Mathematics for 3D Game Programming and Computer Graphics – Lengyel (<xref ref-type="bibr" rid="j_infor508_ref_095">2011</xref>),</p>
</list-item>
<list-item id="j_infor508_li_016">
<label>•</label>
<p>Vince, J.: Introduction to the Mathematics for Computer Graphics – Vince (<xref ref-type="bibr" rid="j_infor508_ref_209">2010</xref>)</p>
<p>(basic mathematical description of mathematics for undergraduates),</p>
</list-item>
<list-item id="j_infor508_li_017">
<label>•</label>
<p>Foley, J.D., van Dam, A., Feiner, S., Hughes, J.F.: Computer graphics – principles and practice – Foley <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_053">1990</xref>),</p>
</list-item>
<list-item id="j_infor508_li_018">
<label>•</label>
<p>Hughes, J.F., van Dam, A., McGuire, M., Sklar, D.F., Foley, J.D., Feiner, S.K., Akeley, K.: Computer Graphics – Principles and Practice – Hughes <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_072">2014</xref>),</p>
</list-item>
<list-item id="j_infor508_li_019">
<label>•</label>
<p>Ferguson, R.S.: Practical Algorithms for 3D Computer Graphics – Ferguson (<xref ref-type="bibr" rid="j_infor508_ref_052">2013</xref>),</p>
</list-item>
<list-item id="j_infor508_li_020">
<label>•</label>
<p>Shirley, P., Marschner, S.: Fundamentals of Computer Graphics – Shirley and Marschner (<xref ref-type="bibr" rid="j_infor508_ref_161">2009</xref>),</p>
</list-item>
<list-item id="j_infor508_li_021">
<label>•</label>
<p>Marschner, S., Shirley, P.: Fundamentals of Computer Graphics – Marschner and Shirley (<xref ref-type="bibr" rid="j_infor508_ref_112">2016</xref>),</p>
</list-item>
<list-item id="j_infor508_li_022">
<label>•</label>
<p>Theoharis, T., Platis, N., Papaioannou, G., Patrikalakis, N.: Graphics and Visualization: Principles &amp; Algorithms – Theoharis <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_202">2008</xref>),</p>
</list-item>
<list-item id="j_infor508_li_023">
<label>•</label>
<p>Comninos, P.: Mathematical and Computer Programming Techniques for Computer Graphics – Comninos (<xref ref-type="bibr" rid="j_infor508_ref_024">2005</xref>),</p>
</list-item>
<list-item id="j_infor508_li_024">
<label>•</label>
<p>Schneider, P.J., Eberly, D.H.: Geometric Tools for Computer Graphics – Schneider and Eberly (<xref ref-type="bibr" rid="j_infor508_ref_155">2003</xref>),</p>
</list-item>
<list-item id="j_infor508_li_025">
<label>•</label>
<p>Ammeraal, L., Zhang, K.: Computer graphics for Java programmers – Ammeraal and Zhang (<xref ref-type="bibr" rid="j_infor508_ref_005">2017</xref>),</p>
</list-item>
<list-item id="j_infor508_li_026">
<label>•</label>
<p>Vince, J.: Matrix Transforms for Computer Games and Animation – Vince (<xref ref-type="bibr" rid="j_infor508_ref_210">2012</xref>).</p>
</list-item>
</list> 
There are also computer graphics books using OpenGL interface, e.g.: 
<list>
<list-item id="j_infor508_li_027">
<label>•</label>
<p>Hill, F.S., Kelley, S.M.: Computer Graphics Using OpenGL – Hill and Kelley (<xref ref-type="bibr" rid="j_infor508_ref_068">2006</xref>),</p>
</list-item>
<list-item id="j_infor508_li_028">
<label>•</label>
<p>Angel, E., Shreiner, D.: Interactive Computer Graphics – Angel and Shreiner (<xref ref-type="bibr" rid="j_infor508_ref_007">2011</xref>),</p>
</list-item>
<list-item id="j_infor508_li_029">
<label>•</label>
<p>Hearn, D.D., Baker, M.P., Carithers, W.: Computer Graphics with OpenGL – Hearn <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_064">2010</xref>),</p>
</list-item>
<list-item id="j_infor508_li_030">
<label>•</label>
<p>Govil-Pai, S.: Principles of Computer Graphics: Theory and Practice Using OpenGL and Maya – Govil-Pai (<xref ref-type="bibr" rid="j_infor508_ref_056">2005</xref>).</p>
</list-item>
</list> 
More advanced books using Geometric Algebra and Conformal Geometric Algebra approaches are recommended for a deeper study, e.g.: 
<list>
<list-item id="j_infor508_li_031">
<label>•</label>
<p>Vince, J.: Geometric Algebra: An Algebraic System for Computer Games and Animation – Vince (<xref ref-type="bibr" rid="j_infor508_ref_208">2009</xref>),</p>
</list-item>
<list-item id="j_infor508_li_032">
<label>•</label>
<p>Vince, J.: Geometric Algebra for Computer Graphics – Vince (<xref ref-type="bibr" rid="j_infor508_ref_211">2008</xref>),</p>
</list-item>
<list-item id="j_infor508_li_033">
<label>•</label>
<p>Dorst, L., Fontijne, D., Mann, S.: Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry – Dorst <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_042">2009</xref>),</p>
</list-item>
<list-item id="j_infor508_li_034">
<label>•</label>
<p>Hildenbrand, D.: Foundations of Geometric Algebra Computing – Hildenbrand (<xref ref-type="bibr" rid="j_infor508_ref_067">2012</xref>),</p>
</list-item>
<list-item id="j_infor508_li_035">
<label>•</label>
<p>Kanatani, K.: Understanding Geometric Algebra: Hamilton, Grassmann, and Clifford for Computer Vision and Graphics – Kanatani (<xref ref-type="bibr" rid="j_infor508_ref_079">2015</xref>),</p>
</list-item>
<list-item id="j_infor508_li_036">
<label>•</label>
<p>Calvet, R.G.: Treatise of Plane Geometry through Geometric Algebra – Calvet (<xref ref-type="bibr" rid="j_infor508_ref_019">2007</xref>),</p>
</list-item>
<list-item id="j_infor508_li_037">
<label>•</label>
<p>Guo, H.: Modern Mathematics and Applications in Computer Graphics and Vision – Guo (<xref ref-type="bibr" rid="j_infor508_ref_059">2014</xref>),</p>
</list-item>
<list-item id="j_infor508_li_038">
<label>•</label>
<p>Lengyel, E: Mathematics for 3D Game Programming and Computer Graphics – Lengyel (<xref ref-type="bibr" rid="j_infor508_ref_095">2011</xref>),</p>
</list-item>
<list-item id="j_infor508_li_039">
<label>•</label>
<p>Salomon, D.: Transformations and Projections in Computer Graphics – Salomon (<xref ref-type="bibr" rid="j_infor508_ref_153">2006</xref>),</p>
</list-item>
<list-item id="j_infor508_li_040">
<label>•</label>
<p>Salomon, D.: The Computer Graphics Manual – Salomon (<xref ref-type="bibr" rid="j_infor508_ref_153">2006</xref>),</p>
</list-item>
<list-item id="j_infor508_li_041">
<label>•</label>
<p>Pharr, M., Jakob, W., Humphreys, G.: Physically Based Rendering: From Theory to Implementation – Pharr <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_133">2016</xref>),</p>
</list-item>
<list-item id="j_infor508_li_042">
<label>•</label>
<p>Thomas, A.: Integrated Graphic and Computer Modelling – Thomas (<xref ref-type="bibr" rid="j_infor508_ref_203">2008</xref>) – describes the implementation of algorithms with examples with assembler codes.</p>
</list-item>
</list> 
It is also recommended to study “the historical” books, e.g.: 
<list>
<list-item id="j_infor508_li_043">
<label>•</label>
<p>Newman, W.M., Sproull, R.F.: Principles of Interactive Computer Graphics – Newman and Sproull (<xref ref-type="bibr" rid="j_infor508_ref_125">1979</xref>),</p>
</list-item>
<list-item id="j_infor508_li_044">
<label>•</label>
<p>Harrington, S.: Computer Graphics: A Programming Approach – Harrington (<xref ref-type="bibr" rid="j_infor508_ref_061">1987</xref>),</p>
</list-item>
<list-item id="j_infor508_li_045">
<label>•</label>
<p>Mortenson, M.E.: Computer Graphics: An Introduction to the Mathematics and Geometry – Mortenson (<xref ref-type="bibr" rid="j_infor508_ref_122">1988</xref>),</p>
</list-item>
<list-item id="j_infor508_li_046">
<label>•</label>
<p>Watt, A.: Fundamentals of Three-Dimensional Computer Graphics – Watt (<xref ref-type="bibr" rid="j_infor508_ref_218">1993</xref>),</p>
</list-item>
<list-item id="j_infor508_li_047">
<label>•</label>
<p>Akenine-Moller, T., Haines, E., Hoffman, N.: Real-Time Rendering – Akenine-Moller <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor508_ref_003">2008</xref>),</p>
</list-item>
<list-item id="j_infor508_li_048">
<label>•</label>
<p>Eberly, D.H.: Game Physics – Eberly (<xref ref-type="bibr" rid="j_infor508_ref_047">2003</xref>),</p>
</list-item>
<list-item id="j_infor508_li_049">
<label>•</label>
<p>Rogers, D.F., Adams, J.A.: Mathematical Elements for Computer Graphics – Rogers and Adams (<xref ref-type="bibr" rid="j_infor508_ref_147">1989</xref>).</p>
</list-item>
</list> 
Many algorithms with codes are presented in GEMS books: 
<list>
<list-item id="j_infor508_li_050">
<label>•</label>
<p>Graphics Gems, Ed. Glassner, A. – Glassner (<xref ref-type="bibr" rid="j_infor508_ref_055">1990</xref>),</p>
</list-item>
<list-item id="j_infor508_li_051">
<label>•</label>
<p>Graphics Gems II, Ed. Arvo, J. – Arvo (<xref ref-type="bibr" rid="j_infor508_ref_009">1991</xref>),</p>
</list-item>
<list-item id="j_infor508_li_052">
<label>•</label>
<p>Graphics Gems III, Ed. Kirk, D. – Kirk (<xref ref-type="bibr" rid="j_infor508_ref_080">1992</xref>),</p>
</list-item>
<list-item id="j_infor508_li_053">
<label>•</label>
<p>Graphics Gems IV, Ed. Heckbert, P.S. – Heckbert (<xref ref-type="bibr" rid="j_infor508_ref_065">1994</xref>).</p>
</list-item>
</list> 
and in the leading computer graphics journals: 
<list>
<list-item id="j_infor508_li_054">
<label>•</label>
<p>ACM Transactions on Graphics (TOG),</p>
</list-item>
<list-item id="j_infor508_li_055">
<label>•</label>
<p>Computer Graphics Forum (CGF),</p>
</list-item>
<list-item id="j_infor508_li_056">
<label>•</label>
<p>Computers &amp; Graphics (C&amp;G),</p>
</list-item>
<list-item id="j_infor508_li_057">
<label>•</label>
<p>IEEE Trans. on Visualization and Computer Graphics (TVCG),</p>
</list-item>
<list-item id="j_infor508_li_058">
<label>•</label>
<p>The Visual Computer (TVC),</p>
</list-item>
<list-item id="j_infor508_li_059">
<label>•</label>
<p>Computer Animation and Virtual Worlds (CAVW),</p>
</list-item>
<list-item id="j_infor508_li_060">
<label>•</label>
<p>Journal of Graphics Tools (JGT),</p>
</list-item>
<list-item id="j_infor508_li_061">
<label>•</label>
<p>Graphical Models.</p>
</list-item>
</list> 
The books mentioned above present a wide variety of intersection algorithm principles and applications.</p></app></app-group>
<ack id="j_infor508_ack_001">
<title>Acknowledgements</title>
<p>The author would like to thank colleagues and students at the University of West Bohemia in Pilsen, VSB-Technical University and Ostrava University in Ostrava for their comments and recommendations, anonymous reviewers for hints and constructive suggestions.</p>
<p>The author is also grateful to several authors of recently published relevant papers for sharing their views and hints provided.</p></ack>
<ref-list id="j_infor508_reflist_001">
<title>References</title>
<ref id="j_infor508_ref_001">
<mixed-citation publication-type="book"><string-name><surname>Agoston</surname>, <given-names>M.K.</given-names></string-name> (<year>2004</year>). <source>Computer Graphics and Geometric Modelling: Implementation &amp; Algorithms</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>1852338180</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_002">
<mixed-citation publication-type="book"><string-name><surname>Agoston</surname>, <given-names>M.K.</given-names></string-name> (<year>2005</year>). <source>Computer Graphics and Geometric Modelling: Mathematics</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>1852338172</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_003">
<mixed-citation publication-type="book"><string-name><surname>Akenine-Moller</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Haines</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Hoffman</surname>, <given-names>N.</given-names></string-name> (<year>2008</year>). <source>Real-Time Rendering</source>, <edition>3rd</edition> ed. <publisher-name>A. K. Peters, Ltd.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1568814240</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_004">
<mixed-citation publication-type="other"><string-name><surname>Amanatides</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Choi</surname>, <given-names>K.Y.</given-names></string-name> (1995). Ray Tracing Triangular Meshes. <uri>http://www.cs.yorku.ca/~amana/research/mesh.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_005">
<mixed-citation publication-type="book"><string-name><surname>Ammeraal</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>K.</given-names></string-name> (<year>2017</year>). <source>Computer Graphics for Java Programmers</source>. <publisher-name>Springer Cham</publisher-name>. <isbn>978-3-319-63356-5</isbn> <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-319-63357-2" xlink:type="simple">https://doi.org/10.1007/978-3-319-63357-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Andreev</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Sofianska</surname>, <given-names>E.</given-names></string-name> (<year>1991</year>). <article-title>New algorithm for two-dimensional line clipping</article-title>. <source>Computers and Graphics</source>, <volume>15</volume>(<issue>4</issue>), <fpage>519</fpage>–<lpage>526</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(91)90051-I" xlink:type="simple">https://doi.org/10.1016/0097-8493(91)90051-I</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_007">
<mixed-citation publication-type="book"><string-name><surname>Angel</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Shreiner</surname>, <given-names>D.</given-names></string-name> (<year>2011</year>). <source>Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL</source>, <edition>6th</edition> ed. <publisher-name>Addison-Wesley Publishing Company</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0132545233</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Arokiasamy</surname>, <given-names>A.</given-names></string-name> (<year>1989</year>). <article-title>Homogeneous coordinates and the principle of duality in two dimensional clipping</article-title>. <source>Computers and Graphics</source>, <volume>13</volume>(<issue>1</issue>), <fpage>99</fpage>–<lpage>100</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(89)90045-9" xlink:type="simple">https://doi.org/10.1016/0097-8493(89)90045-9</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_009">
<mixed-citation publication-type="book"><string-name><surname>Arvo</surname>, <given-names>J.</given-names></string-name> (<year>1991</year>). <source>Graphics Gems II</source>. <publisher-name>Academic Press Professional, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0120644800</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Bao</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Peng</surname>, <given-names>Q.</given-names></string-name> (<year>1996</year>). <article-title>Efficient polygon clipping algorithm</article-title>. <source>Zidonghua Xuebao/Acta Automatica Sinica</source>, <volume>22</volume>(<issue>6</issue>), <fpage>741</fpage>–<lpage>744</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Bhuiyan</surname>, <given-names>M.I.</given-names></string-name> (<year>2009</year>). <chapter-title>Designing a line-clipping algorithm by categorizing line dynamically and using intersection point method</chapter-title>. In: <source>2009 International Conference on Electronic Computer Technology</source>, <conf-loc>Macau, China</conf-loc>, pp. <fpage>22</fpage>–<lpage>25</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICECT.2009.79" xlink:type="simple">https://doi.org/10.1109/ICECT.2009.79</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Blinn</surname>, <given-names>J.F.</given-names></string-name> (<year>1977</year>). <article-title>A homogeneous formulation for lines in 3 space</article-title>. <source>ACM SIGGRAPH Computer Graphics</source>, <volume>11</volume>(<issue>2</issue>), <fpage>237</fpage>–<lpage>241</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/965141.563900" xlink:type="simple">https://doi.org/10.1145/965141.563900</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Blinn</surname>, <given-names>J.F.</given-names></string-name> (<year>1991</year>). <article-title>A trip down the graphics pipeline: line clipping</article-title>. <source>IEEE Computer Graphics and Applications</source>, <volume>11</volume>(<issue>1</issue>), <fpage>98</fpage>–<lpage>105</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/38.67707" xlink:type="simple">https://doi.org/10.1109/38.67707</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>Blinn</surname>, <given-names>J.F.</given-names></string-name>, <string-name><surname>Newell</surname>, <given-names>M.E.</given-names></string-name> (<year>1978</year>). <chapter-title>Clipping using homogeneous coordinates</chapter-title>. In: <source>Proceedings of the 5th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH 1978</source>, pp. <fpage>245</fpage>–<lpage>251</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/800248.807398" xlink:type="simple">https://doi.org/10.1145/800248.807398</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Brackenbury</surname>, <given-names>I.F.</given-names></string-name> (<year>1984</year>). <article-title>Line clipping in interactive computer graphics</article-title>. <source>IBM Technical Disclosure Bulletin</source>, <volume>27</volume>(<issue>1B</issue>), <fpage>549</fpage>–<lpage>552</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_016">
<mixed-citation publication-type="other"><string-name><surname>Bui</surname>, <given-names>D.H.</given-names></string-name> (1999). <italic>Algorithms for Line Clipping and Their Complexity</italic> (supervisor: V. Skala). PhD thesis, University of West Bohemia, Pilsen. <uri>http://graphics.zcu.cz/files/DIS_1999_Bui_Duc_Huy.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Bui</surname>, <given-names>D.H.</given-names></string-name>, <string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1998</year>). <article-title>Fast algorithms for clipping lines and line segments in E2</article-title>. <source>Visual Computer</source>, <volume>14</volume>(<issue>1</issue>), <fpage>31</fpage>–<lpage>37</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s003710050121" xlink:type="simple">https://doi.org/10.1007/s003710050121</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Cai</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Yuan</surname>, <given-names>C.-F.</given-names></string-name>, <string-name><surname>Song</surname>, <given-names>J.-Q.</given-names></string-name>, <string-name><surname>Cai</surname>, <given-names>S.-J.</given-names></string-name> (<year>2001</year>). <article-title>A fast line clipping algorithm for circular windows</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>13</volume>(<issue>12</issue>), <fpage>1063</fpage>–<lpage>1067</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5121/ijcga.2018.8201" xlink:type="simple">https://doi.org/10.5121/ijcga.2018.8201</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_019">
<mixed-citation publication-type="book"><string-name><surname>Calvet</surname>, <given-names>R.G.</given-names></string-name> (<year>2007</year>). <source>Treatise of Plane Geometry Through Geometric Algebra</source>. <publisher-name>Cerdanyola del Valles</publisher-name>, <publisher-loc>Spain</publisher-loc>. <isbn>978-84-611-9149-9</isbn>. <uri>http://www.xtec.cat/~rgonzal1/treatise-sample.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Chang</surname>, <given-names>J.-W.</given-names></string-name>, <string-name><surname>Kim</surname>, <given-names>M.-S.</given-names></string-name> (<year>2009</year>). <article-title>Technical section: efficient triangle-triangle intersection test for OBB-based collision detection</article-title>. <source>Computers &amp; Graphics</source>, <volume>33</volume>(<issue>3</issue>), <fpage>235</fpage>–<lpage>240</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cag.2009.03.009" xlink:type="simple">https://doi.org/10.1016/j.cag.2009.03.009</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_021">
<mixed-citation publication-type="chapter"><string-name><surname>Chao</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Zhaoyin</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Changsong</surname>, <given-names>S.</given-names></string-name> (<year>2009</year>). <chapter-title>A midpoint segmentation clipping algorithm of circular window against line</chapter-title>. In: <source>2009 International Forum on Computer Science-Technology and Applications</source>, <conf-loc>Chongqing, China</conf-loc>, pp. <fpage>15</fpage>–<lpage>19</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/IFCSTA.2009.10" xlink:type="simple">https://doi.org/10.1109/IFCSTA.2009.10</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_022">
<mixed-citation publication-type="chapter"><string-name><surname>Cheng</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Yen</surname>, <given-names>Y.-k.</given-names></string-name> (<year>1989</year>). <chapter-title>A parallel line clipping algorithm and its implementation</chapter-title>. In: <string-name><surname>Dew</surname>, <given-names>P.M.</given-names></string-name>, <string-name><surname>Heywood</surname>, <given-names>T.R.</given-names></string-name>, <string-name><surname>Earnshaw</surname>, <given-names>R.A.</given-names></string-name> (Eds.), <source>Parallel Processing for Computer Vision and Display</source>. <publisher-name>Addison-Wesley</publisher-name>, <publisher-loc>USA</publisher-loc>, pp. <fpage>338</fpage>–<lpage>350</lpage>. <isbn>978-0201416053</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_023">
<mixed-citation publication-type="other"><string-name><surname>Cohen</surname>, <given-names>D.</given-names></string-name> (1969). <italic>Incremental Methods for Computer Graphics</italic>. Technical report, Harvard University, Cambridge, Massachusetts, USA. <uri>https://apps.dtic.mil/sti/pdfs/AD0694550.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_024">
<mixed-citation publication-type="book"><string-name><surname>Comninos</surname>, <given-names>P.</given-names></string-name> (<year>2005</year>). <source>Mathematical and Computer Programming Techniques for Computer Graphics</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>1852339020</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-84628-292-8" xlink:type="simple">https://doi.org/10.1007/978-1-84628-292-8</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_025">
<mixed-citation publication-type="chapter"><string-name><surname>Comninos</surname>, <given-names>P.</given-names></string-name> (<year>2006</year>). <chapter-title>Two-dimensional clipping</chapter-title>. In: <source>Mathematical and Computer Programming Techniques for Computer Graphics</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>London</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-84628-292-8_6" xlink:type="simple">https://doi.org/10.1007/978-1-84628-292-8_6</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_026">
<mixed-citation publication-type="book"><string-name><surname>Coxeter</surname>, <given-names>H.S.M.</given-names></string-name>, <string-name><surname>Beck</surname>, <given-names>G.</given-names></string-name> (<year>1992</year>). <source>The Real Projective Plane</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>0387978895</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_027">
<mixed-citation publication-type="chapter"><string-name><surname>Cychosz</surname>, <given-names>J.M.</given-names></string-name> (<year>1991</year>). <chapter-title>Intersecting a ray with an elliptical torus</chapter-title>. In: <source>Graphics Gems II</source>. <publisher-name>Morgan Kaufmann</publisher-name>, pp. <fpage>251</fpage>–<lpage>256</lpage>. <isbn>9780080507545</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/B978-0-08-050754-5.50054-2" xlink:type="simple">https://doi.org/10.1016/B978-0-08-050754-5.50054-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_028">
<mixed-citation publication-type="journal"><string-name><surname>Cyrus</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Beck</surname>, <given-names>J.</given-names></string-name> (<year>1978</year>). <article-title>Generalized two- and three-dimensional clipping</article-title>. <source>Computers and Graphics</source>, <volume>3</volume>(<issue>1</issue>), <fpage>23</fpage>–<lpage>28</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(78)90021-3" xlink:type="simple">https://doi.org/10.1016/0097-8493(78)90021-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_029">
<mixed-citation publication-type="journal"><string-name><surname>Danaei</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Karbasizadeh</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Tale Masouleh</surname>, <given-names>M.</given-names></string-name> (<year>2017</year>). <article-title>A general approach on collision-free workspace determination via triangle-to-triangle intersection test</article-title>. <source>Robotics and Computer-Integrated Manufacturing</source>, <volume>44</volume>, <fpage>230</fpage>–<lpage>241</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.rcim.2016.08.013" xlink:type="simple">https://doi.org/10.1016/j.rcim.2016.08.013</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_030">
<mixed-citation publication-type="journal"><string-name><surname>Dawod</surname>, <given-names>A.I.</given-names></string-name> (<year>2011</year>). <article-title>Hardware implementation of line clipping algorithm by using FPGA</article-title>. <source>Tikrit Journal of Engineering Science</source>, <volume>18</volume>, <fpage>89</fpage>–<lpage>105</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_031">
<mixed-citation publication-type="journal"><string-name><surname>Day</surname>, <given-names>J.D.</given-names></string-name> (<year>1992</year>a). <article-title>An algorithm for clipping lines in object and image space</article-title>. <source>Computers and Graphics</source>, <volume>16</volume>(<issue>4</issue>), <fpage>421</fpage>–<lpage>426</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(92)90029-U" xlink:type="simple">https://doi.org/10.1016/0097-8493(92)90029-U</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_032">
<mixed-citation publication-type="journal"><string-name><surname>Day</surname>, <given-names>J.D.</given-names></string-name> (<year>1992</year>b). <article-title>A new two dimensional line clipping algorithm for small windows</article-title>. <source>Computer Graphics Forum</source>, <volume>11</volume>(<issue>4</issue>), <fpage>241</fpage>–<lpage>245</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.1140241" xlink:type="simple">https://doi.org/10.1111/1467-8659.1140241</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_033">
<mixed-citation publication-type="journal"><string-name><surname>de Magalhães</surname>, <given-names>S.V.G.</given-names></string-name>, <string-name><surname>Franklin</surname>, <given-names>W.R.</given-names></string-name>, <string-name><surname>Andrade</surname>, <given-names>M.V.A.</given-names></string-name> (<year>2020</year>). <article-title>An efficient and exact parallel algorithm for intersecting large 3-D triangular meshes using arithmetic filters</article-title>. <source>Computer-Aided Design</source>, <volume>120</volume>, <fpage>102801</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cad.2019.102801" xlink:type="simple">https://doi.org/10.1016/j.cad.2019.102801</ext-link>. <ext-link ext-link-type="uri" xlink:href="https://www.sciencedirect.com/science/article/pii/S0010448519305330">https://www.sciencedirect.com/science/article/pii/S0010448519305330</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_034">
<mixed-citation publication-type="chapter"><string-name><surname>Deng</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Lu</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>L.</given-names></string-name> (<year>2006</year>). <chapter-title>New 3D line clipping algorithm against spherical surface window</chapter-title>. In: <source>International Technology and Innovation Conference 2006 (ITIC 2006)</source>. <publisher-name>IET</publisher-name>, <publisher-loc>USA</publisher-loc>, pp. <fpage>894</fpage>–<lpage>898</lpage>. <isbn>0-86341-696-9</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1049/cp:20060886" xlink:type="simple">https://doi.org/10.1049/cp:20060886</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_035">
<mixed-citation publication-type="journal"><string-name><surname>Dev</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Saharan</surname>, <given-names>P.</given-names></string-name> (<year>2019</year>). <article-title>Implementation of efficient line clipping algorithm</article-title>. <source>International Journal of Innovative Technology and Exploring Engineering</source>, <volume>8</volume>(<issue>7</issue>), <fpage>295</fpage>–<lpage>298</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_036">
<mixed-citation publication-type="chapter"><string-name><surname>Devai</surname>, <given-names>F.</given-names></string-name> (<year>1998</year>). <chapter-title>An analysis technique and an algorithm for line clipping</chapter-title>. In: <source>Proceedings. 1998 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics</source>, <conf-loc>London, UK</conf-loc>, <conf-date>1998</conf-date>, pp. <fpage>157</fpage>–<lpage>165</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/IV.1998.694214" xlink:type="simple">https://doi.org/10.1109/IV.1998.694214</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_037">
<mixed-citation publication-type="chapter"><string-name><surname>Devai</surname>, <given-names>F.</given-names></string-name> (<year>2005</year>). <chapter-title>Analysis of the Nicholl-Lee-Nicholl algorithm</chapter-title>. In: <source>Computational Science and Its Applications– ICCSA 2005</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3480</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/11424758_75" xlink:type="simple">https://doi.org/10.1007/11424758_75</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_038">
<mixed-citation publication-type="chapter"><string-name><surname>Devai</surname>, <given-names>F.</given-names></string-name> (<year>2006</year>). <chapter-title>A speculative approach to clipping line segments</chapter-title>. In: <source>Computational Science and Its Applications – ICCSA 2006</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3980</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/11751540_15" xlink:type="simple">https://doi.org/10.1007/11751540_15</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_039">
<mixed-citation publication-type="other"><string-name><surname>Devillers</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Guigue</surname>, <given-names>P.</given-names></string-name> (2002). <italic>Faster Triangle-Triangle Intersection Tests</italic>. Technical Report RR-4488, INRIA. <uri>https://hal.inria.fr/inria-00072100</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_040">
<mixed-citation publication-type="journal"><string-name><surname>Dimri</surname>, <given-names>S.C.</given-names></string-name> (<year>2015</year>). <article-title>Article: a simple and efficient algorithm for line and polygon clipping in 2-D computer graphics</article-title>. <source>International Journal of Computers and Applications</source>, <volume>127</volume>(<issue>3</issue>), <fpage>31</fpage>–<lpage>34</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5120/ijca2015906352" xlink:type="simple">https://doi.org/10.5120/ijca2015906352</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_041">
<mixed-citation publication-type="journal"><string-name><surname>Dimri</surname>, <given-names>S.C.</given-names></string-name>, <string-name><surname>Tiwari</surname>, <given-names>U.K.</given-names></string-name>, <string-name><surname>Ram</surname>, <given-names>M.</given-names></string-name> (<year>2022</year>). <article-title>An efficient algorithm to clip a 2D-polygon against a rectangular clip window</article-title>. <source>Applied Mathematics-A Journal of Chinese Universities</source>, <volume>37</volume>, <fpage>147</fpage>–<lpage>158</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s11766-022-4556-0" xlink:type="simple">https://doi.org/10.1007/s11766-022-4556-0</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_042">
<mixed-citation publication-type="book"><string-name><surname>Dorst</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Fontijne</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Mann</surname>, <given-names>S.</given-names></string-name> (<year>2009</year>). <source>Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry</source>. <publisher-name>Morgan Kaufmann Publishers Inc.</publisher-name>, <publisher-loc>San Francisco, CA, USA</publisher-loc>. <isbn>9780080553108</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/B978-0-12-374942-0.X0000-0" xlink:type="simple">https://doi.org/10.1016/B978-0-12-374942-0.X0000-0</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_043">
<mixed-citation publication-type="journal"><string-name><surname>Duvalenko</surname>, <given-names>V.J.</given-names></string-name>, <string-name><surname>Robbins</surname>, <given-names>W.E.</given-names></string-name>, <string-name><surname>Gyurcsik</surname>, <given-names>R.S.</given-names></string-name> (<year>1990</year>). <article-title>Improving line segment clipping</article-title>. <source>Dr Dobb’s Journal</source>, <volume>15</volume>(<issue>7</issue>), <fpage>36</fpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_044">
<mixed-citation publication-type="journal"><string-name><surname>Duvanenko</surname>, <given-names>V.J.</given-names></string-name>, <string-name><surname>Gyurcsik</surname>, <given-names>R.S.</given-names></string-name>, <string-name><surname>Robbins</surname>, <given-names>W.E.</given-names></string-name> (<year>1993</year>). <article-title>Simple and efficient 2D and 3D span clipping algorithms</article-title>. <source>Computers and Graphics</source>, <volume>17</volume>(<issue>1</issue>), <fpage>39</fpage>–<lpage>54</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(93)90050-J" xlink:type="simple">https://doi.org/10.1016/0097-8493(93)90050-J</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_045">
<mixed-citation publication-type="journal"><string-name><surname>Duvanenko</surname>, <given-names>V.J.</given-names></string-name>, <string-name><surname>Robbins</surname>, <given-names>W.E.</given-names></string-name>, <string-name><surname>Gyurcsik</surname>, <given-names>R.S.</given-names></string-name> (<year>1996</year>). <article-title>Line-segment clipping revisited</article-title>. <source>Dr Dobb’s Journal</source>, <volume>21</volume>(<issue>1</issue>), <fpage>107</fpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_046">
<mixed-citation publication-type="journal"><string-name><surname>Dörr</surname>, <given-names>M.</given-names></string-name> (<year>1990</year>). <article-title>A new approach to parametric line clipping</article-title>. <source>Computer Graphics (Pergamon)</source>, <volume>14</volume>(<issue>3–4</issue>), <fpage>449</fpage>–<lpage>464</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(90)90067-8" xlink:type="simple">https://doi.org/10.1016/0097-8493(90)90067-8</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_047">
<mixed-citation publication-type="book"><string-name><surname>Eberly</surname>, <given-names>D.H.</given-names></string-name> (<year>2003</year>). <source>Game Physics</source>. <publisher-name>Elsevier Science Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1558607404</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_048">
<mixed-citation publication-type="journal"><string-name><surname>Eisemann</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Magnor</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Grosch</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Müller</surname>, <given-names>S.</given-names></string-name> (<year>2007</year>). <article-title>Fast ray/axis-aligned bounding box overlap tests using ray slopes</article-title>. <source>Journal of Graphics Tools</source>, <volume>12</volume>(<issue>4</issue>), <fpage>35</fpage>–<lpage>46</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/2151237X.2007.10129248" xlink:type="simple">https://doi.org/10.1080/2151237X.2007.10129248</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_049">
<mixed-citation publication-type="journal"><string-name><surname>Elliriki</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Reddy</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Anand</surname>, <given-names>K.</given-names></string-name> (<year>2019</year>). <article-title>An efficient line clipping algorithm in 2D space</article-title>. <source>International Arab Journal of Information Technology</source>, <volume>16</volume>(<issue>5</issue>), <fpage>798</fpage>–<lpage>807</lpage>. <uri>https://iajit.org/PDF/September%202019,%20No.%205/11103.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_050">
<mixed-citation publication-type="journal"><string-name><surname>Elsheikh</surname>, <given-names>A.H.</given-names></string-name>, <string-name><surname>Elsheikh</surname>, <given-names>M.</given-names></string-name> (<year>2014</year>). <article-title>A reliable triangular mesh intersection algorithm and its application in geological modelling</article-title>. <source>Engineering with Computers</source>, <volume>30</volume>(<issue>1</issue>), <fpage>143</fpage>–<lpage>157</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00366-012-0297-3" xlink:type="simple">https://doi.org/10.1007/s00366-012-0297-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_051">
<mixed-citation publication-type="chapter"><string-name><surname>Evangeline</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Anitha</surname>, <given-names>S.</given-names></string-name> (<year>2014</year>). <chapter-title>2D polygon clipping using shear transformation: an extension of shear based 2D line clipping</chapter-title>. In: <source>2014 IEEE IEEE International Conference on Advanced Communications, Control and Computing Technologies</source>, pp. <fpage>1379</fpage>–<lpage>1383</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICACCCT.2014.7019326" xlink:type="simple">https://doi.org/10.1109/ICACCCT.2014.7019326</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_052">
<mixed-citation publication-type="book"><string-name><surname>Ferguson</surname>, <given-names>R.S.</given-names></string-name> (<year>2013</year>). <source>Practical Algorithms for 3D Computer Graphics</source>, <edition>2nd</edition> ed. <publisher-name>A. K. Peters, Ltd.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1466582529</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_053">
<mixed-citation publication-type="book"><string-name><surname>Foley</surname>, <given-names>J.D.</given-names></string-name>, <string-name><surname>van Dam</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Feiner</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Hughes</surname>, <given-names>J.F.</given-names></string-name> (<year>1990</year>). <source>Computer Graphics – Principles and Practice</source>, <edition>2nd</edition> ed. <publisher-name>Addison-Wesley</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>978-0-201-12110-0</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_054">
<mixed-citation publication-type="journal"><string-name><surname>Foster</surname>, <given-names>E.L.</given-names></string-name>, <string-name><surname>Hormann</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Popa</surname>, <given-names>R.T.</given-names></string-name> (<year>2019</year>). <article-title>Clipping simple polygons with degenerate intersections</article-title>. <source>Computers &amp; Graphics: X</source>, <volume>2</volume>, <elocation-id>100007</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cagx.2019.100007" xlink:type="simple">https://doi.org/10.1016/j.cagx.2019.100007</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_055">
<mixed-citation publication-type="book"><string-name><surname>Glassner</surname>, <given-names>A.S.</given-names></string-name> (Ed.) (<year>1990</year>). <source>Graphics Gems</source>. <publisher-name>Academic Press Professional, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <uri>http://inis.jinr.ru/sl/vol1/CMC/Graphics_Gems_1,ed_A.Glassner.pdf</uri>. <isbn>0122861695</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_056">
<mixed-citation publication-type="book"><string-name><surname>Govil-Pai</surname>, <given-names>S.</given-names></string-name> (<year>2005</year>). <source>Principles of Computer Graphics: Theory and Practice Using OpenGL and Maya</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>0387955046</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_057">
<mixed-citation publication-type="journal"><string-name><surname>Greiner</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Hormann</surname>, <given-names>K.</given-names></string-name> (<year>1998</year>). <article-title>Efficient clipping of arbitrary polygons</article-title>. <source>ACM Transactions on Graphics</source>, <volume>17</volume>(<issue>2</issue>), <fpage>71</fpage>–<lpage>83</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/274363.274364" xlink:type="simple">https://doi.org/10.1145/274363.274364</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_058">
<mixed-citation publication-type="journal"><string-name><surname>Guigue</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Devillers</surname>, <given-names>O.</given-names></string-name> (<year>2003</year>). <article-title>Fast and robust triangle-triangle overlap test using orientation predicates</article-title>. <source>Journal of Graphics Tools</source>, <volume>8</volume>(<issue>1</issue>), <fpage>25</fpage>–<lpage>32</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.2003.10487580" xlink:type="simple">https://doi.org/10.1080/10867651.2003.10487580</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_059">
<mixed-citation publication-type="book"><string-name><surname>Guo</surname>, <given-names>H.</given-names></string-name> (<year>2014</year>). <source>Modern Mathematics and Applications in Computer Graphics and Vision</source>. <publisher-name>World Scientific Publ.</publisher-name>, <publisher-loc>Singapore</publisher-loc>. <isbn>978-9814449328</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/0.1142/8703" xlink:type="simple">https://doi.org/0.1142/8703</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_060">
<mixed-citation publication-type="chapter"><string-name><surname>Gupta</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Tripathi</surname>, <given-names>V.K.</given-names></string-name>, <string-name><surname>Singh</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Pathak</surname>, <given-names>N.K.</given-names></string-name>, <string-name><surname>Rastogi</surname>, <given-names>R.</given-names></string-name> (<year>2016</year>). <chapter-title>An innovative and easy approach for clipping curves along a circular window</chapter-title>. In: <source>2016 Second International Conference on Computational Intelligence &amp; Communication Technology (CICT)</source>, <conf-loc>Ghaziabad, India</conf-loc>, <conf-date>2016</conf-date>, pp. <fpage>638</fpage>–<lpage>643</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/CICT.2016.132" xlink:type="simple">https://doi.org/10.1109/CICT.2016.132</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_061">
<mixed-citation publication-type="book"><string-name><surname>Harrington</surname>, <given-names>S.</given-names></string-name> (<year>1987</year>). <source>Computer Graphics: A Programming Approach</source>, <edition>2nd</edition> ed. <publisher-name>McGraw-Hill, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0070267537</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_062">
<mixed-citation publication-type="journal"><string-name><surname>Hattab</surname>, <given-names>A.S.A.</given-names></string-name>, <string-name><surname>Yusof</surname>, <given-names>Y.</given-names></string-name> (<year>2014</year>). <article-title>Line clipping based on parallelism approach and midpoint intersection</article-title>. <source>AIP Conference Proceedings</source>, <volume>1602</volume>, <fpage>371</fpage>–<lpage>374</lpage>. <isbn>9780735412361</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1063/1.4882513" xlink:type="simple">https://doi.org/10.1063/1.4882513</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_063">
<mixed-citation publication-type="journal"><string-name><surname>Havel</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Herout</surname>, <given-names>A.</given-names></string-name> (<year>2010</year>). <article-title>Yet faster ray-triangle intersection (using SSE4)</article-title>. <source>IEEE Transactions on Visualization and Computer Graphics</source>, <volume>16</volume>(<issue>3</issue>), <fpage>434</fpage>–<lpage>438</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/TVCG.2009.73" xlink:type="simple">https://doi.org/10.1109/TVCG.2009.73</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_064">
<mixed-citation publication-type="book"><string-name><surname>Hearn</surname>, <given-names>D.D.</given-names></string-name>, <string-name><surname>Baker</surname>, <given-names>M.P.</given-names></string-name>, <string-name><surname>Carithers</surname>, <given-names>W.</given-names></string-name> (<year>2010</year>). <source>Computer Graphics with OpenGL</source>, <edition>4th</edition> ed. <publisher-name>Prentice Hall Press</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0136053580</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_065">
<mixed-citation publication-type="book"><string-name><surname>Heckbert</surname>, <given-names>P.S.</given-names></string-name> (Ed.) (<year>1994</year>). <source>Graphics Gems IV</source>. <publisher-name>Academic Press Professional, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0123361559</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_066">
<mixed-citation publication-type="journal"><string-name><surname>Held</surname>, <given-names>M.</given-names></string-name> (<year>1998</year>). <article-title>ERIT: a collection of efficient and reliable intersection tests</article-title>. <source>Journal of Graphics Tools</source>, <volume>2</volume>(<issue>4</issue>), <fpage>25</fpage>–<lpage>44</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.1997.10487482" xlink:type="simple">https://doi.org/10.1080/10867651.1997.10487482</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_067">
<mixed-citation publication-type="book"><string-name><surname>Hildenbrand</surname>, <given-names>D.</given-names></string-name> (<year>2012</year>). <source>Foundations of Geometric Algebra Computing</source>. <publisher-name>Springer Publishing Company, Inc.</publisher-name>, <publisher-loc>London</publisher-loc>. <isbn>3642317936</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-84628-997-2" xlink:type="simple">https://doi.org/10.1007/978-1-84628-997-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_068">
<mixed-citation publication-type="book"><string-name><surname>Hill</surname>, <given-names>F.S.</given-names></string-name>, <string-name><surname>Kelley</surname>, <given-names>S.M.</given-names></string-name> (<year>2006</year>). <source>Computer Graphics Using OpenGL</source>, <edition>3rd</edition> ed. <publisher-name>Prentice-Hall, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0131496700</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_069">
<mixed-citation publication-type="chapter"><string-name><surname>Huang</surname>, <given-names>W.</given-names></string-name> (<year>2013</year>). <chapter-title>Line clipping algorithm of affine transformation for polygon</chapter-title>. In: <source>Intelligent Computing Theories, ICIC 2013</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>7995</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>55</fpage>–<lpage>60</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-642-39479-9_7" xlink:type="simple">https://doi.org/10.1007/978-3-642-39479-9_7</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_070">
<mixed-citation publication-type="chapter"><string-name><surname>Huang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wangyong</surname></string-name> (<year>2009</year>). <chapter-title>A novel algorithm for line clipping</chapter-title>. In: <source>Proceedings – 2009 International Conference on Computational Intelligence and Software Engineering, CiSE 2009</source>, pp. <fpage>1</fpage>–<lpage>5</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/CISE.2009.5366550" xlink:type="simple">https://doi.org/10.1109/CISE.2009.5366550</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_071">
<mixed-citation publication-type="journal"><string-name><surname>Huang</surname>, <given-names>Y.Q.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>Y.K.</given-names></string-name> (<year>2002</year>). <article-title>An algorithm for line clipping against a polygon based on shearing transformation</article-title>. <source>Computer Graphics Forum</source>, <volume>21</volume>(<issue>4</issue>), <fpage>683</fpage>–<lpage>688</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.00626" xlink:type="simple">https://doi.org/10.1111/1467-8659.00626</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_072">
<mixed-citation publication-type="book"><string-name><surname>Hughes</surname>, <given-names>J.F.</given-names></string-name>, <string-name><surname>van Dam</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>McGuire</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Sklar</surname>, <given-names>D.F.</given-names></string-name>, <string-name><surname>Foley</surname>, <given-names>J.D.</given-names></string-name>, <string-name><surname>Feiner</surname>, <given-names>S.K.</given-names></string-name>, <string-name><surname>Akeley</surname>, <given-names>K.</given-names></string-name> (<year>2014</year>). <source>Computer Graphics – Principles and Practice</source>, <edition>3rd ed.</edition> <publisher-name>Addison-Wesley</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>978-0-321-39952-6</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_073">
<mixed-citation publication-type="journal"><string-name><surname>Iraji</surname>, <given-names>M.S.</given-names></string-name>, <string-name><surname>Mazandarani</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Motameni</surname>, <given-names>H.</given-names></string-name> (<year>2011</year>). <article-title>An efficient line clipping algorithm based on Cohen-Sutherland line clipping algorithm</article-title>. <source>American Journal of Scientific Research</source>, <volume>14</volume>(<issue>1</issue>), <fpage>65</fpage>–<lpage>71</lpage>. <uri>https://www.researchgate.net/publication/275964580_An_Efficient_Line_Clipping_Algorithm_based_on_Cohen-Sutherland_Line_Clipping_Algorithm</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_074">
<mixed-citation publication-type="chapter"><string-name><surname>Jiang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Han</surname>, <given-names>J.</given-names></string-name> (<year>2013</year>). <chapter-title>Improvement in the Cohen-Sutherland line segment clipping algorithm</chapter-title>. In: <source>2013 IEEE International Conference on Granular Computing (GrC)</source>, <conf-loc>Beijing, China</conf-loc>, <conf-date>2013</conf-date>, pp. <fpage>157</fpage>–<lpage>161</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/GrC.2013.6740399" xlink:type="simple">https://doi.org/10.1109/GrC.2013.6740399</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_075">
<mixed-citation publication-type="other"><string-name><surname>Jianrong</surname>, <given-names>T.</given-names></string-name> (2006). A new algorithm of polygon clipping against rectangular window based on the endpoint and intersection-point encoding. <italic>Journal of Engineering Graphics</italic>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_076">
<mixed-citation publication-type="journal"><string-name><surname>Johnson</surname>, <given-names>M.</given-names></string-name> (<year>1996</year>). <article-title>Proof by duality: or the discovery of “New” theorems</article-title>. <source>Mathematics Today</source>, <volume>December</volume>, <fpage>138</fpage>–<lpage>153</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_077">
<mixed-citation publication-type="journal"><string-name><surname>Jokanovic</surname>, <given-names>S.</given-names></string-name> (<year>2019</year>). <article-title>Two-dimensional line segment–triangle intersection test: revision and enhancement</article-title>. <source>Visual Computer</source>, <volume>35</volume>(<issue>10</issue>), <fpage>1347</fpage>–<lpage>1359</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00371-018-01614-1" xlink:type="simple">https://doi.org/10.1007/s00371-018-01614-1</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_078">
<mixed-citation publication-type="journal"><string-name><surname>Kaijian</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Edwards</surname>, <given-names>J.A.</given-names></string-name>, <string-name><surname>Cooper</surname>, <given-names>D.C.</given-names></string-name> (<year>1990</year>). <article-title>An efficient line clipping algorithm</article-title>. <source>Computers and Graphics</source>, <volume>14</volume>(<issue>2</issue>), <fpage>297</fpage>–<lpage>301</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(90)90041-U" xlink:type="simple">https://doi.org/10.1016/0097-8493(90)90041-U</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_079">
<mixed-citation publication-type="book"><string-name><surname>Kanatani</surname>, <given-names>K.</given-names></string-name> (<year>2015</year>). <source>Understanding Geometric Algebra: Hamilton, Grassmann, and Clifford for Computer Vision and Graphics</source>. <publisher-name>A. K. Peters, Ltd.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1482259508</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1201/b18273" xlink:type="simple">https://doi.org/10.1201/b18273</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_080">
<mixed-citation publication-type="book"><string-name><surname>Kirk</surname>, <given-names>D.</given-names></string-name> (Ed.) (<year>1992</year>). <source>Graphics Gems III</source>. <publisher-name>Academic Press Professional, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0124096719</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_081">
<mixed-citation publication-type="journal"><string-name><surname>Kodituwakku</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Wijeweera</surname>, <given-names>K.R.</given-names></string-name> (<year>2012</year>). <article-title>An efficient line clipping algorithm for 3D space</article-title>. <source>International Journal of Advanced Research in Computer Science and Software Engineering</source>, <volume>2</volume>(<issue>5</issue>).</mixed-citation>
</ref>
<ref id="j_infor508_ref_082">
<mixed-citation publication-type="journal"><string-name><surname>Kodituwakku</surname>, <given-names>S.R.</given-names></string-name>, <string-name><surname>Wijeweera</surname>, <given-names>K.R.</given-names></string-name>, <string-name><surname>Chamikara</surname>, <given-names>M.A.P.</given-names></string-name> (<year>2013</year>). <article-title>An efficient algorithm for line clipping in computer graphics programming</article-title>. <source>Ceylon Journal of Science</source>, <volume>17</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>7</lpage>. <ext-link ext-link-type="uri" xlink:href="https://www.researchgate.net/publication/261288113_An_Efficient_Algorithm_for_Line_Clipping_in_Computer_Graphics_Programming">https://www.researchgate.net/publication/261288113_An_Efficient_Algorithm_for_Line_Clipping_in_Computer_Graphics_Programming</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_083">
<mixed-citation publication-type="journal"><string-name><surname>Kolingerová</surname>, <given-names>I.</given-names></string-name> (<year>1994</year>). <article-title>3D-line clipping algorithms – a comparative study</article-title>. <source>The Visual Computer</source>, <volume>11</volume>(<issue>2</issue>), <fpage>96</fpage>–<lpage>104</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/BF01889980" xlink:type="simple">https://doi.org/10.1007/BF01889980</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_084">
<mixed-citation publication-type="journal"><string-name><surname>Kolingerová</surname>, <given-names>I.</given-names></string-name> (<year>1997</year>). <article-title>Convex polyhedron-line intersection detection using dual representation</article-title>. <source>Visual Computer</source>, <volume>13</volume>(<issue>1</issue>), <fpage>42</fpage>–<lpage>49</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s003710050088" xlink:type="simple">https://doi.org/10.1007/s003710050088</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_085">
<mixed-citation publication-type="journal"><string-name><surname>Konashkova</surname>, <given-names>A.M.</given-names></string-name> (<year>2014</year>). <article-title>Line – convex polyhedron intersection using vertex connections table</article-title>. <source>Applied Mathematical Sciences</source>, <volume>8</volume>(<issue>21–24</issue>), <fpage>1177</fpage>–<lpage>1186</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.12988/ams.2014.4133" xlink:type="simple">https://doi.org/10.12988/ams.2014.4133</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_086">
<mixed-citation publication-type="journal"><string-name><surname>Konashkova</surname>, <given-names>A.M.</given-names></string-name> (<year>2015</year>). <article-title>Modified Skala’s plane tested algorithm for line-polyhedron intersection</article-title>. <source>Applied Mathematical Sciences</source>, <volume>9</volume>(<issue>61–64</issue>), <fpage>3097</fpage>–<lpage>3103</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.12988/ams.2015.52169" xlink:type="simple">https://doi.org/10.12988/ams.2015.52169</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_087">
<mixed-citation publication-type="other"><string-name><surname>Kong</surname>, <given-names>D.H.</given-names></string-name>, <string-name><surname>Yin</surname>, <given-names>B.C.</given-names></string-name> (2001). The improvement on the algorithm of Cohen-Surtherland line clipping. <italic>CAD/GRAPHICS 2001</italic>, 807–810. 7-5062-5137-X.</mixed-citation>
</ref>
<ref id="j_infor508_ref_088">
<mixed-citation publication-type="journal"><string-name><surname>Krammer</surname>, <given-names>G.</given-names></string-name> (<year>1992</year>). <article-title>A line clipping algorithm and its analysis</article-title>. <source>Computer Graphics Forum</source>, <volume>11</volume>(<issue>3</issue>), <fpage>253</fpage>–<lpage>266</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.1130253" xlink:type="simple">https://doi.org/10.1111/1467-8659.1130253</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_089">
<mixed-citation publication-type="journal"><string-name><surname>Kui Liu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Qiang Wang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Zhe Bao</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Gomboši</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Žalik</surname>, <given-names>B.</given-names></string-name> (<year>2007</year>). <article-title>An algorithm for polygon clipping, and for determining polygon intersections and unions</article-title>. <source>Computers and Geosciences</source>, <volume>33</volume>(<issue>5</issue>), <fpage>589</fpage>–<lpage>598</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cageo.2006.08.008" xlink:type="simple">https://doi.org/10.1016/j.cageo.2006.08.008</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_090">
<mixed-citation publication-type="chapter"><string-name><surname>Kumar</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Awasthi</surname>, <given-names>A.</given-names></string-name> (<year>2011</year>). <chapter-title>Modified trivial rejection criteria in Cohen-Sutherland line clipping algorithm</chapter-title>. In: <source>Advances in Computing, Communication and Control. ICAC3 2011</source>, <series><italic>Communications in Computer and Information Science</italic></series>, Vol. <volume>125</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>1</fpage>–<lpage>10</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-642-18440-6_1" xlink:type="simple">https://doi.org/10.1007/978-3-642-18440-6_1</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_091">
<mixed-citation publication-type="journal"><string-name><surname>Kumar</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Patel</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Kanna</surname>, <given-names>R.</given-names></string-name> (<year>2018</year>). <article-title>An efficient line clipping algorithm for circular windows using vector calculus and parallelization</article-title>. <source>International Journal of Computational Geometry and Applications</source>, <volume>8</volume>(<issue>1/2</issue>), <fpage>01</fpage>–<lpage>08</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5121/IJCGA.2018.8201" xlink:type="simple">https://doi.org/10.5121/IJCGA.2018.8201</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_092">
<mixed-citation publication-type="journal"><string-name><surname>Kuzmin</surname>, <given-names>Y.P.</given-names></string-name> (<year>1995</year>). <article-title>Bresenham’s line generation algorithm with built-in clipping</article-title>. <source>Computer Graphics Forum</source>, <volume>14</volume>(<issue>5</issue>), <fpage>275</fpage>–<lpage>280</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.1450275" xlink:type="simple">https://doi.org/10.1111/1467-8659.1450275</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_093">
<mixed-citation publication-type="journal"><string-name><surname>Lagae</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Dutré</surname>, <given-names>P.</given-names></string-name> (<year>2005</year>). <article-title>An efficient ray-quadrilateral intersection test</article-title>. <source>Journal of Graphics Tools</source>, <volume>10</volume>(<issue>4</issue>), <fpage>23</fpage>–<lpage>32</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/2151237X.2005.10129208" xlink:type="simple">https://doi.org/10.1080/2151237X.2005.10129208</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_094">
<mixed-citation publication-type="journal"><string-name><surname>Landier</surname>, <given-names>S.</given-names></string-name> (<year>2017</year>). <article-title>Boolean operations on arbitrary polygonal and polyhedral meshes</article-title>. <source>CAD Computer Aided Design</source>, <volume>85</volume>, <fpage>138</fpage>–<lpage>153</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cad.2016.07.013" xlink:type="simple">https://doi.org/10.1016/j.cad.2016.07.013</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_095">
<mixed-citation publication-type="book"><string-name><surname>Lengyel</surname>, <given-names>E.</given-names></string-name> (<year>2011</year>). <source>Mathematics for 3D Game Programming and Computer Graphics</source>, <edition>3rd</edition> ed. <publisher-name>Course Technology Press</publisher-name>, <publisher-loc>Boston, MA, USA</publisher-loc>. <isbn>1435458869</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_096">
<mixed-citation publication-type="chapter"><string-name><surname>Li</surname>, <given-names>H.</given-names></string-name> (<year>2016</year>). <chapter-title>Analysis and Implementation of Cohen_Sutherland Line Clipping Algorithm</chapter-title>. In: <source>Proceedings of the 2016 International Conference on Sensor Network and Computer Engineering</source>. <publisher-name>Atlantis Press</publisher-name>, <publisher-loc>China</publisher-loc>, pp. <fpage>482</fpage>–<lpage>485</lpage>. <isbn>978-94-6252-217-6</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.2991/icsnce-16.2016.94" xlink:type="simple">https://doi.org/10.2991/icsnce-16.2016.94</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_097">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>W.</given-names></string-name> (<year>2005</year>). <article-title>Bisearch-based line clipping algorithm against a convex polygonal window</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>17</volume>(<issue>5</issue>), <fpage>962</fpage>–<lpage>965</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_098">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Lei</surname>, <given-names>G.</given-names></string-name> (<year>2012</year>). <article-title>Modified Sutherland-Cohen line clipping algorithm (in Chinese)</article-title>. <source>Computer Engineering and Applications</source>, <volume>48</volume>(<issue>34</issue>), <fpage>175</fpage>. <uri>https://caod.oriprobe.com/articles/31582699/Modified_Sutherland_Cohen_line_clipping_algorithm.htm</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_099">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>Z.-Q.</given-names></string-name>, <string-name><surname>He</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Tian</surname>, <given-names>Z.-J.</given-names></string-name> (<year>2012</year>). <article-title>Overlapping area computation between irregular polygons for its evolutionary layout based on convex decomposition</article-title>. <source>Journal of Software</source>, <volume>7</volume>(<issue>2</issue>), <fpage>485</fpage>–<lpage>492</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.4304/jsw.7.2.485-492" xlink:type="simple">https://doi.org/10.4304/jsw.7.2.485-492</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_100">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>He</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>M.</given-names></string-name> (<year>2014</year>). <article-title>An improved algorithm of Cohen-Sutherland line clipping</article-title>. <source>WIT Transactions on Information and Communication Technologies</source>, <volume>49</volume>, <fpage>575</fpage>–<lpage>582</lpage>. <isbn>9781845648558</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_101">
<mixed-citation publication-type="journal"><string-name><surname>Liang</surname>, <given-names>Y.-D.</given-names></string-name>, <string-name><surname>Barsky</surname>, <given-names>B.A.</given-names></string-name> (<year>1983</year>). <article-title>An analysis and algorithm for polygon clipping</article-title>. <source>Communications of the ACM</source>, <volume>26</volume>(<issue>11</issue>), <fpage>868</fpage>–<lpage>877</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/182.358439" xlink:type="simple">https://doi.org/10.1145/182.358439</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_102">
<mixed-citation publication-type="journal"><string-name><surname>Liang</surname>, <given-names>Y.D.</given-names></string-name>, <string-name><surname>Barsky</surname>, <given-names>B.A.</given-names></string-name> (<year>1984</year>). <article-title>A new concept and method for line clipping</article-title>. <source>ACM Transactions on Graphics (TOG)</source>, <volume>3</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>22</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/357332.357333" xlink:type="simple">https://doi.org/10.1145/357332.357333</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_103">
<mixed-citation publication-type="journal"><string-name><surname>Llanas</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Sainz</surname>, <given-names>F.J.</given-names></string-name> (<year>2012</year>). <article-title>A local search algorithm for ray-convex polyhedron intersection</article-title>. <source>Computational Optimization and Applications</source>, <volume>51</volume>(<issue>2</issue>), <fpage>533</fpage>–<lpage>550</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s10589-010-9354-2" xlink:type="simple">https://doi.org/10.1007/s10589-010-9354-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_104">
<mixed-citation publication-type="journal"><string-name><surname>Lo</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>W.</given-names></string-name> (<year>2004</year>). <article-title>A fast robust algorithm for the intersection of triangulated surfaces</article-title>. <source>Engineering with Computers</source>, <volume>20</volume>, <fpage>11</fpage>–<lpage>21</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00366-004-0277-3" xlink:type="simple">https://doi.org/10.1007/s00366-004-0277-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_105">
<mixed-citation publication-type="journal"><string-name><surname>Lu</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>X.</given-names></string-name> (<year>2002</year>). <article-title>Midpoint-subdivision line clipping algorithm based on filtering technique</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>14</volume>(<issue>6</issue>), <fpage>513</fpage>–<lpage>517</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_106">
<mixed-citation publication-type="journal"><string-name><surname>Lu</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Peng</surname>, <given-names>Q.</given-names></string-name> (<year>2002</year>a). <article-title>An efficient line clipping algorithm based on adaptive line rejection</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>26</volume>(<issue>3</issue>), <fpage>409</fpage>–<lpage>415</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/S0097-8493(02)00084-5" xlink:type="simple">https://doi.org/10.1016/S0097-8493(02)00084-5</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_107">
<mixed-citation publication-type="journal"><string-name><surname>Lu</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Xing</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Tan</surname>, <given-names>J.</given-names></string-name> (<year>2002</year>b). <article-title>New clipping algorithm of line against circular window with multi-encoding approach</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>14</volume>(<issue>12</issue>), <fpage>1133</fpage>–<lpage>1137</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_108">
<mixed-citation publication-type="journal"><string-name><surname>Mahovsky</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wyvill</surname>, <given-names>B.</given-names></string-name> (<year>2004</year>). <article-title>Fast ray-axis aligned bounding box overlap tests with plucker coordinates</article-title>. <source>Journal of Graphics Tools</source>, <volume>9</volume>(<issue>1</issue>), <fpage>35</fpage>–<lpage>46</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.2004.10487597" xlink:type="simple">https://doi.org/10.1080/10867651.2004.10487597</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_109">
<mixed-citation publication-type="chapter"><string-name><surname>Maillot</surname>, <given-names>P.-G.</given-names></string-name> (<year>1991</year>). <chapter-title>Three-dimensional homogeneous clipping of triangle strips</chapter-title>. In: <source>Graphics Gems II</source>. <publisher-name>Elsevier Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>, pp. <fpage>219</fpage>–<lpage>231</lpage>. <isbn>9780080507545</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/B978-0-08-050754-5.50050-5" xlink:type="simple">https://doi.org/10.1016/B978-0-08-050754-5.50050-5</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_110">
<mixed-citation publication-type="journal"><string-name><surname>Maillot</surname>, <given-names>P.-G.</given-names></string-name> (<year>1992</year>). <article-title>A new, fast method for 2D polygon clipping: analysis and software implementation</article-title>. <source>ACM Transactions on Graphics (TOG)</source>, <volume>11</volume>(<issue>3</issue>), <fpage>276</fpage>–<lpage>290</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/130881.130894" xlink:type="simple">https://doi.org/10.1145/130881.130894</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_111">
<mixed-citation publication-type="chapter"><string-name><surname>Maonica</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Das</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Ramteke</surname>, <given-names>P.B.</given-names></string-name>, <string-name><surname>Koolagudi</surname>, <given-names>S.G.</given-names></string-name> (<year>2017</year>). <chapter-title>Selective cropper for geometrical objects in OpenFlipper</chapter-title>. In: <string-name><surname>Satapathy</surname>, <given-names>S.C.</given-names></string-name>, <string-name><surname>Bhateja</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Joshi</surname>, <given-names>A.</given-names></string-name> (Eds.), <source>Proceedings of the International Conference on Data Engineering and Communication Technology</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Singapore</publisher-loc>, pp. <fpage>391</fpage>–<lpage>399</lpage>. <isbn>978-981-10-1675-2</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-981-10-1675-2_39" xlink:type="simple">https://doi.org/10.1007/978-981-10-1675-2_39</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_112">
<mixed-citation publication-type="book"><string-name><surname>Marschner</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Shirley</surname>, <given-names>P.</given-names></string-name> (<year>2016</year>). <source>Fundamentals of Computer Graphics</source>, <edition>4th</edition> ed. <publisher-name>A. K. Peters, Ltd.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1482229390</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_113">
<mixed-citation publication-type="journal"><string-name><surname>Martinez</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Rueda</surname>, <given-names>A.J.</given-names></string-name>, <string-name><surname>Feito</surname>, <given-names>F.R.</given-names></string-name> (<year>2009</year>). <article-title>A new algorithm for computing Boolean operations on polygons</article-title>. <source>Computers and Geosciences</source>, <volume>35</volume>(<issue>6</issue>), <fpage>1177</fpage>–<lpage>1185</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cageo.2008.08.009" xlink:type="simple">https://doi.org/10.1016/j.cageo.2008.08.009</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_114">
<mixed-citation publication-type="journal"><string-name><surname>Matthes</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Drakopoulos</surname>, <given-names>V.</given-names></string-name> (<year>2019</year>a). <article-title>Another simple but faster method for 2D line clipping</article-title>. <source>International Journal of Computer Graphics &amp; Animation (IJCGA)</source>, <volume>9</volume>(<issue>1–3</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5121/ijcga.2019.9301" xlink:type="simple">https://doi.org/10.5121/ijcga.2019.9301</ext-link>. <uri>https://aircconline.com/ijcga/V9N3/9319ijcga01.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_115">
<mixed-citation publication-type="journal"><string-name><surname>Matthes</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Drakopoulos</surname>, <given-names>V.</given-names></string-name> (<year>2019</year>b). <article-title>A simple and fast line-clipping method as a scratch extension for computer graphics education</article-title>. <source>Computer Science and Information Technology</source>, <volume>7</volume>, <fpage>40</fpage>–<lpage>47</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.13189/csit.2019.070202" xlink:type="simple">https://doi.org/10.13189/csit.2019.070202</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_116">
<mixed-citation publication-type="journal"><string-name><surname>Matthes</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Drakopoulos</surname>, <given-names>V.</given-names></string-name> (<year>2022</year>). <article-title>Line clipping in 2D: overview, techniques and algorithms</article-title>. <source>Journal of Imaging</source>, <volume>8</volume>(<issue>10</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/jimaging8100286" xlink:type="simple">https://doi.org/10.3390/jimaging8100286</ext-link>. <uri>https://www.mdpi.com/2313-433X/8/10/286</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_117">
<mixed-citation publication-type="journal"><string-name><surname>Mccoid</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Gander</surname>, <given-names>M.J.</given-names></string-name> (<year>2022</year>). <article-title>A provably robust algorithm for triangle-triangle intersections in floating-point arithmetic</article-title>. <source>ACM Transactions on Mathematical Software</source>, <volume>48</volume>(<issue>2</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/3513264" xlink:type="simple">https://doi.org/10.1145/3513264</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_118">
<mixed-citation publication-type="journal"><string-name><surname>McLaurin</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Marcum</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Remotigue</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Blades</surname>, <given-names>E.</given-names></string-name> (<year>2013</year>). <article-title>Repairing unstructured triangular mesh intersections</article-title>. <source>International Journal for Numerical Methods in Engineering</source>, <volume>93</volume>(<issue>3</issue>), <fpage>266</fpage>–<lpage>275</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1002/nme.4385" xlink:type="simple">https://doi.org/10.1002/nme.4385</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_119">
<mixed-citation publication-type="journal"><string-name><surname>Melero</surname>, <given-names>F.J.</given-names></string-name>, <string-name><surname>Aguilera</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Feito</surname>, <given-names>F.R.</given-names></string-name> (<year>2019</year>). <article-title>Fast collision detection between high resolution polygonal models</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>83</volume>, <fpage>97</fpage>–<lpage>106</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cag.2019.07.006" xlink:type="simple">https://doi.org/10.1016/j.cag.2019.07.006</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_120">
<mixed-citation publication-type="chapter"><string-name><surname>Meriaux</surname>, <given-names>M.</given-names></string-name> (<year>1984</year>). <chapter-title>A two-dimensional clipping divider</chapter-title>. In: <source>Eurographics Conference Proceedings</source>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.2312/eg.19841031" xlink:type="simple">https://doi.org/10.2312/eg.19841031</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_121">
<mixed-citation publication-type="chapter"><string-name><surname>Molla</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Jorquera</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Vivo</surname>, <given-names>R.</given-names></string-name> (<year>2003</year>). <chapter-title>Fixed-point arithmetic line clipping</chapter-title>. In: <source>WSCG ’2003 Proceedings</source>, pp. <fpage>93</fpage>–<lpage>96</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_122">
<mixed-citation publication-type="book"><string-name><surname>Mortenson</surname>, <given-names>M.E.</given-names></string-name> (<year>1988</year>). <source>Computer Graphics: An Introduction to the Mathematics and Geometry</source>. <publisher-name>Industrial Press, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0831111828</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_123">
<mixed-citation publication-type="journal"><string-name><surname>Möller</surname>, <given-names>T.</given-names></string-name> (<year>1997</year>). <article-title>A fast triangle-triangle intersection test</article-title>. <source>Journal of Graphics Tools</source>, <volume>2</volume>(<issue>2</issue>), <fpage>25</fpage>–<lpage>30</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.1997.10487472" xlink:type="simple">https://doi.org/10.1080/10867651.1997.10487472</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_124">
<mixed-citation publication-type="journal"><string-name><surname>Möller</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Trumbore</surname>, <given-names>B.</given-names></string-name> (<year>1997</year>). <article-title>Fast, minimum storage ray-triangle intersection</article-title>. <source>Journal of Graphics Tools</source>, <volume>2</volume>(<issue>1</issue>), <fpage>21</fpage>–<lpage>28</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.1997.10487468" xlink:type="simple">https://doi.org/10.1080/10867651.1997.10487468</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_125">
<mixed-citation publication-type="book"><string-name><surname>Newman</surname>, <given-names>W.M.</given-names></string-name>, <string-name><surname>Sproull</surname>, <given-names>R.F.</given-names></string-name> (<year>1979</year>). <source>Principles of Interactive Computer Graphics</source>, <edition>2nd ed</edition>. <publisher-name>McGraw-Hill, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0070463387</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_126">
<mixed-citation publication-type="chapter"><string-name><surname>Nicholl</surname>, <given-names>T.M.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>D.T.</given-names></string-name>, <string-name><surname>Nicholl</surname>, <given-names>R.A.</given-names></string-name> (<year>1987</year>). <chapter-title>An efficient new algorithm for 2-D line clipping: its development and analysis</chapter-title>. In: <source>Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH 1987</source>, pp. <fpage>253</fpage>–<lpage>262</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/37401.37432" xlink:type="simple">https://doi.org/10.1145/37401.37432</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_127">
<mixed-citation publication-type="journal"><string-name><surname>Nielsen</surname>, <given-names>H.P.</given-names></string-name> (<year>1995</year>). <article-title>Line clipping using semi-homogeneous coordinates</article-title>. <source>Computer Graphics Forum</source>, <volume>14</volume>(<issue>1</issue>), <fpage>3</fpage>–<lpage>16</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.1410003" xlink:type="simple">https://doi.org/10.1111/1467-8659.1410003</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_128">
<mixed-citation publication-type="journal"><string-name><surname>Nisha</surname>, <given-names>A.</given-names></string-name> (<year>2017</year>a). <article-title>Comparison of various line clipping algorithms: review</article-title>. <source>International Journal of Advanced Research in Computer Science and Software Engineering</source>, <volume>7</volume>(<issue>1</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.23956/ijarcsse/V7I1/0149" xlink:type="simple">https://doi.org/10.23956/ijarcsse/V7I1/0149</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_129">
<mixed-citation publication-type="journal"><string-name><surname>Nisha</surname>, <given-names>A.</given-names></string-name> (<year>2017</year>b). <article-title>A review: comparison of line clipping algorithms in 3D space</article-title>. <source>International Journal of Advanced Research (IJAR)</source>, <volume>5</volume>(<issue>1</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.21474/IJAR01/3022" xlink:type="simple">https://doi.org/10.21474/IJAR01/3022</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_130">
<mixed-citation publication-type="chapter"><string-name><surname>Nishita</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Johan</surname>, <given-names>H.</given-names></string-name> (<year>1999</year>). <chapter-title>A scan line algorithm for rendering curved tubular objects</chapter-title>. In: <source>Proceedings. Seventh Pacific Conference on Computer Graphics and Applications</source>, <conf-loc>Seoul, Korea (South)</conf-loc>, pp. <fpage>92</fpage>–<lpage>101</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/PCCGA.1999.803352" xlink:type="simple">https://doi.org/10.1109/PCCGA.1999.803352</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_131">
<mixed-citation publication-type="journal"><string-name><surname>Pandey</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Jain</surname>, <given-names>S.</given-names></string-name> (<year>2013</year>). <article-title>Comparison of various line clipping algorithm for improvement</article-title>. <source>International Journal of Modern Engineering Research</source>, <volume>3</volume>(<issue>1</issue>), <fpage>69</fpage>–<lpage>74</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_132">
<mixed-citation publication-type="chapter"><string-name><surname>Petrie</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Mills</surname>, <given-names>S.</given-names></string-name> (<year>2020</year>). <chapter-title>Real time ray tracing of analytic and implicit surfaces</chapter-title>. In: <source>2020 35th International Conference on Image and Vision Computing New Zealand (IVCNZ)</source>, <conf-loc>Wellington, New Zealand</conf-loc>, pp. <fpage>1</fpage>–<lpage>6</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/IVCNZ51579.2020.9290653" xlink:type="simple">https://doi.org/10.1109/IVCNZ51579.2020.9290653</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_133">
<mixed-citation publication-type="book"><string-name><surname>Pharr</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Jakob</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Humphreys</surname>, <given-names>G.</given-names></string-name> (<year>2016</year>). <source>Physically Based Rendering: From Theory to Implementation</source>, <edition>3rd</edition> ed. <publisher-name>Morgan Kaufmann Publishers Inc.</publisher-name>, <publisher-loc>San Francisco, CA, USA</publisher-loc>. <isbn>0128006455</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_134">
<mixed-citation publication-type="journal"><string-name><surname>Platis</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Theoharis</surname>, <given-names>T.</given-names></string-name> (<year>2003</year>). <article-title>Fast ray-tetrahedron intersection using plucker coordinates</article-title>. <source>Journal of Graphics Tools</source>, <volume>8</volume>(<issue>4</issue>), <fpage>37</fpage>–<lpage>48</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.2003.10487593" xlink:type="simple">https://doi.org/10.1080/10867651.2003.10487593</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_135">
<mixed-citation publication-type="journal"><string-name><surname>Raja</surname>, <given-names>S.P.</given-names></string-name> (<year>2019</year>). <article-title>Line and polygon clipping techniques on natural images – a mathematical solution and performance evaluation</article-title>. <source>International Journal of Image and Graphics</source>, <volume>19</volume>(<issue>2</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1142/S0219467819500128" xlink:type="simple">https://doi.org/10.1142/S0219467819500128</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_136">
<mixed-citation publication-type="journal"><string-name><surname>Rajan</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Hashemi</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Karpuzcu</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>Doggett</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Reda</surname>, <given-names>S.</given-names></string-name> (<year>2020</year>). <article-title>Dual-precision fixed-point arithmetic for low-power ray-triangle intersections</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>87</volume>, <fpage>72</fpage>–<lpage>79</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cag.2020.01.006" xlink:type="simple">https://doi.org/10.1016/j.cag.2020.01.006</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_137">
<mixed-citation publication-type="journal"><string-name><surname>Rappoport</surname>, <given-names>A.</given-names></string-name> (<year>1991</year>). <article-title>An efficient algorithm for line and polygon clipping</article-title>. <source>The Visual Computer</source>, <volume>7</volume>(<issue>1</issue>), <fpage>19</fpage>–<lpage>28</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/BF01994114" xlink:type="simple">https://doi.org/10.1007/BF01994114</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_138">
<mixed-citation publication-type="journal"><string-name><surname>Ray</surname>, <given-names>B.K.</given-names></string-name> (<year>2012</year>a). <article-title>An alternative algorithm for line clipping</article-title>. <source>Journal of Graphics Tools</source>, <volume>16</volume>(<issue>1</issue>), <fpage>12</fpage>–<lpage>24</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/2151237X.2012.641824" xlink:type="simple">https://doi.org/10.1080/2151237X.2012.641824</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_139">
<mixed-citation publication-type="journal"><string-name><surname>Ray</surname>, <given-names>B.K.</given-names></string-name> (<year>2012</year>b). <article-title>A line segment clipping algorithm in 2D</article-title>. <source>International Journal of Computer Graphics</source>, <volume>3</volume>(<issue>2</issue>), <fpage>51</fpage>–<lpage>76</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_140">
<mixed-citation publication-type="journal"><string-name><surname>Ray</surname>, <given-names>B.K.</given-names></string-name> (<year>2014</year>). <article-title>A procedure to clip line segment</article-title>. <source>International Journal of Computer Graphics</source>, <volume>5</volume>(<issue>1</issue>), <fpage>9</fpage>–<lpage>19</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.14257/ijcg.2014.5.1.02" xlink:type="simple">https://doi.org/10.14257/ijcg.2014.5.1.02</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_141">
<mixed-citation publication-type="journal"><string-name><surname>Ray</surname>, <given-names>B.K.</given-names></string-name> (<year>2015</year>). <article-title>Line clipping against arbitrary polygonal window</article-title>. <source>International Journal of Computer Graphics</source>, <volume>6</volume>(<issue>1</issue>), <fpage>12</fpage>–<lpage>24</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.14257/ijcg.2015.6.1.01" xlink:type="simple">https://doi.org/10.14257/ijcg.2015.6.1.01</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_142">
<mixed-citation publication-type="chapter"><string-name><surname>Reshetov</surname>, <given-names>A.</given-names></string-name> (<year>2017</year>). <chapter-title>Exploiting Budan-Fourier and Vincent’s theorems for ray tracing 3D Bézier curves</chapter-title>. In: <source>Proceedings of High Performance Graphics, HPG ’17</source>. <publisher-name>Association for Computing Machinery</publisher-name>, <publisher-loc>New York, NY, USA</publisher-loc>. <isbn>9781450351010</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/3105762.3105783" xlink:type="simple">https://doi.org/10.1145/3105762.3105783</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_143">
<mixed-citation publication-type="other"><string-name><surname>Reshetov</surname>, <given-names>A.</given-names></string-name> (2019). Cool patches: a geometric approach to ray/bilinear patch intersections. In: <italic>Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs</italic>, pp. 95–109. 978-1-4842-4427-2. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-4842-4427-2_8" xlink:type="simple">https://doi.org/10.1007/978-1-4842-4427-2_8</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_144">
<mixed-citation publication-type="journal"><string-name><surname>Reshetov</surname>, <given-names>A.</given-names></string-name> (<year>2022</year>). <article-title>Ray/ribbon intersections</article-title>. <source>Proceedings of the ACM on Computer Graphics and Interactive Techniques</source>, <volume>5</volume>(<issue>3</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/3543862" xlink:type="simple">https://doi.org/10.1145/3543862</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_145">
<mixed-citation publication-type="journal"><string-name><surname>Rivero</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Feito</surname>, <given-names>F.R.</given-names></string-name> (<year>2000</year>). <article-title>Boolean operations on general planar polygons</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>24</volume>(<issue>6</issue>), <fpage>881</fpage>–<lpage>896</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/S0097-8493(00)00090-X" xlink:type="simple">https://doi.org/10.1016/S0097-8493(00)00090-X</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_146">
<mixed-citation publication-type="journal"><string-name><surname>Rogers</surname>, <given-names>D.F.</given-names></string-name>, <string-name><surname>Rybak</surname>, <given-names>L.M.</given-names></string-name> (<year>1985</year>). <article-title>On an efficient general line-clipping algorithm</article-title>. <source>IEEE Computer Graphics and Applications</source>, <volume>5</volume>(<issue>1</issue>), <fpage>82</fpage>–<lpage>86</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/MCG.1985.276298" xlink:type="simple">https://doi.org/10.1109/MCG.1985.276298</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_147">
<mixed-citation publication-type="book"><string-name><surname>Rogers</surname>, <given-names>D.F.</given-names></string-name>, <string-name><surname>Adams</surname>, <given-names>J.A.</given-names></string-name> (<year>1989</year>). <source>Mathematical Elements for Computer Graphics</source>, <edition>2nd</edition> ed. <publisher-name>McGraw-Hill, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0070535299</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_148">
<mixed-citation publication-type="journal"><string-name><surname>Roy</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>Dasari</surname>, <given-names>V.R.</given-names></string-name> (<year>1998</year>). <article-title>Implementation of a polygonal algorithm for surface–surface intersections</article-title>. <source>Computers &amp; Industrial Engineering</source>, <volume>34</volume>(<issue>2</issue>), <fpage>399</fpage>–<lpage>412</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/S0360-8352(97)00276-3" xlink:type="simple">https://doi.org/10.1016/S0360-8352(97)00276-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_149">
<mixed-citation publication-type="journal"><string-name><surname>Sabharwal</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Leopold</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>McGeehan</surname>, <given-names>D.</given-names></string-name> (<year>2013</year>). <article-title>Triangle-triangle intersection determination and classification to support qualitative spatial reasoning</article-title>. <source>Polibits</source>, <volume>48</volume>, <fpage>13</fpage>–<lpage>22</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.17562/PB-48-2" xlink:type="simple">https://doi.org/10.17562/PB-48-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_150">
<mixed-citation publication-type="journal"><string-name><surname>Sabharwal</surname>, <given-names>C.L.</given-names></string-name>, <string-name><surname>Leopold</surname>, <given-names>J.L.</given-names></string-name> (<year>2015</year>). <article-title>A triangle-triangle intersection algorithm</article-title>. <source>Computers and Graphics</source>, <volume>5</volume>(<issue>11</issue>), <fpage>27</fpage>–<lpage>35</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5121/csit.2015.51003" xlink:type="simple">https://doi.org/10.5121/csit.2015.51003</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_151">
<mixed-citation publication-type="chapter"><string-name><surname>Sabharwal</surname>, <given-names>C.L.</given-names></string-name>, <string-name><surname>Leopold</surname>, <given-names>J.L.</given-names></string-name> (<year>2016</year>). <chapter-title>A generic design for implementing intersection between triangles in computer vision and spatial reasoning</chapter-title>. In: <string-name><surname>Pal</surname>, <given-names>R.</given-names></string-name> (Ed.), <source>Innovative Research in Attention Modeling and Computer Vision Applications</source>. <publisher-name>IGI Global</publisher-name>, <publisher-loc>USA</publisher-loc>, p. <fpage>41</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.4018/978-1-4666-8723-3.ch008" xlink:type="simple">https://doi.org/10.4018/978-1-4666-8723-3.ch008</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_152">
<mixed-citation publication-type="book"><string-name><surname>Salomon</surname>, <given-names>D.</given-names></string-name> (<year>1999</year>). <source>Computer Graphics and Geometric Modeling</source>, <edition>1st</edition> ed. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>0387986820</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_153">
<mixed-citation publication-type="book"><string-name><surname>Salomon</surname>, <given-names>D.</given-names></string-name> (<year>2006</year>). <source>Transformations and Projections in Computer Graphics</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>1846283922</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_154">
<mixed-citation publication-type="book"><string-name><surname>Salomon</surname>, <given-names>D.</given-names></string-name> (<year>2011</year>). <source>The Computer Graphics Manual</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>USA</publisher-loc>, pp. <fpage>1</fpage>–<lpage>1496</lpage>. <isbn>978-0-85729-885-0</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-0-85729-886-7" xlink:type="simple">https://doi.org/10.1007/978-0-85729-886-7</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_155">
<mixed-citation publication-type="book"><string-name><surname>Schneider</surname>, <given-names>P.J.</given-names></string-name>, <string-name><surname>Eberly</surname>, <given-names>D.H.</given-names></string-name> (<year>2003</year>). <source>Geometric Tools for Computer Graphics</source>, <series><italic>The Morgan Kaufmann Series in Computer Graphics</italic></series>. <publisher-name>Morgan Kaufmann</publisher-name>, <publisher-loc>San Francisco</publisher-loc>, pp. <fpage>1</fpage>–<lpage>1009</lpage>. <isbn>978-1-55860-594-7</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/B978-1-55860-594-7.50025-4" xlink:type="simple">https://doi.org/10.1016/B978-1-55860-594-7.50025-4</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_156">
<mixed-citation publication-type="journal"><string-name><surname>Segura</surname>, <given-names>R.J.</given-names></string-name>, <string-name><surname>Feito</surname>, <given-names>F.R.</given-names></string-name> (<year>1998</year>). <article-title>An algorithm for determining intersection segment-polygon in 3D</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>22</volume>(<issue>5</issue>), <fpage>587</fpage>–<lpage>592</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/s0097-8493(98)00064-8" xlink:type="simple">https://doi.org/10.1016/s0097-8493(98)00064-8</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_157">
<mixed-citation publication-type="journal"><string-name><surname>Sharma</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Kaur</surname>, <given-names>J.</given-names></string-name> (<year>2016</year>). <article-title>An improved polygon clipping algorithm based on affine transformation</article-title>. <source>Advances in Intelligent Systems and Computing</source>, <volume>379</volume>(<issue>1</issue>), <fpage>783</fpage>–<lpage>792</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-81-322-2517-1_75" xlink:type="simple">https://doi.org/10.1007/978-81-322-2517-1_75</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_158">
<mixed-citation publication-type="journal"><string-name><surname>Sharma</surname>, <given-names>N.C.</given-names></string-name>, <string-name><surname>Manohar</surname>, <given-names>S.</given-names></string-name> (<year>1992</year>). <article-title>Line clipping revisited: two efficient algorithms based on simple geometric observations</article-title>. <source>Computers and Graphics</source>, <volume>16</volume>(<issue>1</issue>), <fpage>51</fpage>–<lpage>54</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(92)90071-3" xlink:type="simple">https://doi.org/10.1016/0097-8493(92)90071-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_159">
<mixed-citation publication-type="journal"><string-name><surname>Sharma</surname>, <given-names>N.C.</given-names></string-name>, <string-name><surname>Manohar</surname>, <given-names>S.</given-names></string-name> (<year>1993</year>). <article-title>Three dimensional line-clipping by systematic enumeration</article-title>. <source>(IFIP Transactions B: Computer Applications in Technology</source>, <volume>1</volume>(<issue>9</issue>), <fpage>225</fpage>–<lpage>232</lpage>. <isbn>0444815643</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_160">
<mixed-citation publication-type="journal"><string-name><surname>Shen</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Heng</surname>, <given-names>P.A.</given-names></string-name>, <string-name><surname>Tang</surname>, <given-names>Z.</given-names></string-name> (<year>2003</year>). <article-title>A fast triangle-triangle overlap test using signed distances</article-title>. <source>Journal of Graphics Tools</source>, <volume>8</volume>(<issue>1</issue>), <fpage>17</fpage>–<lpage>23</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1080/10867651.2003.10487579" xlink:type="simple">https://doi.org/10.1080/10867651.2003.10487579</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_161">
<mixed-citation publication-type="book"><string-name><surname>Shirley</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Marschner</surname>, <given-names>S.</given-names></string-name> (<year>2009</year>). <source>Fundamentals of Computer Graphics</source>, <edition>3rd</edition> ed. <publisher-name>A. K. Peters, Ltd.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>1568814690</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_162">
<mixed-citation publication-type="journal"><string-name><surname>Singh</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Lumar</surname>, <given-names>A.</given-names></string-name> (<year>2016</year>). <article-title>RJ-ASHI algorithm: a new polygon/line clipping algorithm for 2D space</article-title>. <source>International Journal of Advanced Research in Computer Science and Software Engineering</source>, <volume>6</volume>, <fpage>215</fpage>–<lpage>219</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_163">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1989</year>). <chapter-title>Algorithms for 2D line clipping</chapter-title>. In: <string-name><surname>Hansmann</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Hopgood</surname>, <given-names>F.R.A.</given-names></string-name>, <string-name><surname>Straßer</surname>, <given-names>W.</given-names></string-name> (Eds.), <source>EG 1989 Proceedings</source>. <publisher-name>Eurographics Association</publisher-name>, <publisher-loc>The Netherlands</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.2312/egtp.19891026" xlink:type="simple">https://doi.org/10.2312/egtp.19891026</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_164">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1990</year>a). <chapter-title>Algorithms for clipping quadratic arcs</chapter-title>. In: <string-name><surname>Chua</surname>, <given-names>T.S.</given-names></string-name>, <string-name><surname>Kunii</surname>, <given-names>T.L.</given-names></string-name> (Eds.), <source>CGI Proceedings</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Tokyo</publisher-loc>, pp. <fpage>255</fpage>–<lpage>268</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-4-431-68123-6_16" xlink:type="simple">https://doi.org/10.1007/978-4-431-68123-6_16</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_165">
<mixed-citation publication-type="other"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (1990b). <italic>Clipping Algorithm</italic>. Habilitation thesis. University of West Bohemia, Pilsen (partially in Czech). <uri>http://afrodita.zcu.cz/~skala/EDU-PUB/Habilitace-komplet.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_166">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1993</year>). <article-title>An efficient algorithm for line clipping by convex polygon</article-title>. <source>Computers and Graphics</source>, <volume>17</volume>(<issue>4</issue>), <fpage>417</fpage>–<lpage>421</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(93)90030-D" xlink:type="simple">https://doi.org/10.1016/0097-8493(93)90030-D</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_167">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1994</year>). <article-title><italic>O</italic>(<italic>lg N</italic>) line clipping algorithm in <italic>E</italic><sup>2</sup></article-title>. <source>Computers and Graphics</source>, <volume>18</volume>(<issue>4</issue>), <fpage>517</fpage>–<lpage>524</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(94)90064-7" xlink:type="simple">https://doi.org/10.1016/0097-8493(94)90064-7</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_168">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1996</year>a). <article-title>An efficient algorithm for line clipping by convex and non-convex polyhedra in <italic>E</italic><sup>3</sup></article-title>. <source>Computer Graphics Forum</source>, <volume>15</volume>(<issue>1</issue>), <fpage>61</fpage>–<lpage>68</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1111/1467-8659.1510061" xlink:type="simple">https://doi.org/10.1111/1467-8659.1510061</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_169">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1996</year>b). <article-title>Line clipping in <italic>E</italic><sup>2</sup> with <italic>O</italic>(1) processing complexity</article-title>. <source>Computer Graphics (Pergamon)</source>, <volume>20</volume>(<issue>4</issue>), <fpage>523</fpage>–<lpage>530</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(96)00024-6" xlink:type="simple">https://doi.org/10.1016/0097-8493(96)00024-6</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_170">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1996</year>c). <article-title>Line clipping in <italic>E</italic><sup>3</sup> with expected complexity <italic>O</italic>(1)</article-title>. <source>Machine Graphics and Vision</source>, <volume>5</volume>(<issue>4</issue>), <fpage>551</fpage>–<lpage>562</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/arXiv.2201.00592" xlink:type="simple">https://doi.org/10.48550/arXiv.2201.00592</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_171">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1996</year>d). <article-title>Trading time for space: an <italic>O</italic>(1) average time algorithm for point-in-polygon location problem: theoretical fiction or practical usage?</article-title> <source>Machine Graphics and Vision</source>, <volume>5</volume>(<issue>3</issue>), <fpage>483</fpage>–<lpage>494</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_172">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>1997</year>). <article-title>A fast algorithm for line clipping by convex polyhedron in <italic>E</italic><sup>3</sup></article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>21</volume>(<issue>2</issue>), <fpage>209</fpage>–<lpage>214</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/s0097-8493(96)00084-2" xlink:type="simple">https://doi.org/10.1016/s0097-8493(96)00084-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_173">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2004</year>). <chapter-title>A new line clipping algorithm with hardware acceleration</chapter-title>. In: <source>Proceedings of Computer Graphics International Conference, CGI</source>, pp. <fpage>270</fpage>–<lpage>273</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/CGI.2004.1309220" xlink:type="simple">https://doi.org/10.1109/CGI.2004.1309220</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_174">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2005</year>). <article-title>A new approach to line and line segment clipping in homogeneous coordinates</article-title>. <source>Visual Computer</source>, <volume>21</volume>(<issue>11</issue>), <fpage>905</fpage>–<lpage>914</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00371-005-0305-3" xlink:type="simple">https://doi.org/10.1007/s00371-005-0305-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_175">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2008</year>a). <article-title>Barycentric coordinates computation in homogeneous coordinates</article-title>. <source>Computers and Graphics (Pergamon)</source>, <volume>32</volume>(<issue>1</issue>), <fpage>120</fpage>–<lpage>127</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cag.2007.09.007" xlink:type="simple">https://doi.org/10.1016/j.cag.2007.09.007</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_176">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2008</year>b). <article-title>Intersection computation in projective space using homogeneous coordinates</article-title>. <source>International Journal of Image and Graphics</source>, <volume>8</volume>(<issue>4</issue>), <fpage>615</fpage>–<lpage>628</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1142/S021946780800326X" xlink:type="simple">https://doi.org/10.1142/S021946780800326X</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_177">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2010</year>). <article-title>Duality, barycentric coordinates and intersection computation in projective space with GPU support</article-title>. <source>WSEAS Transactions on Mathematics</source>, <volume>9</volume>(<issue>6</issue>), <fpage>407</fpage>–<lpage>416</lpage>. <uri>http://afrodita.zcu.cz/~skala/PUBL/PUBL_2010/2010_NAUN-journal.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_178">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2012</year>). <chapter-title><italic>S</italic>-clip <italic>E</italic><sup>2</sup>: a new concept of clipping algorithms</chapter-title>. In: <source>SIGGRAPH Asia Posters, SA ’12</source>, pp. <fpage>1</fpage>–<lpage>2</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/2407156.2407200" xlink:type="simple">https://doi.org/10.1145/2407156.2407200</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_179">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2013</year>a). <article-title>Line-torus intersection for ray tracing: alternative formulations</article-title>. <source>WSEAS Transactions on Computers</source>, <volume>12</volume>(<issue>7</issue>), <fpage>288</fpage>–<lpage>297</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/ARXIV.2301.03191" xlink:type="simple">https://doi.org/10.48550/ARXIV.2301.03191</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_180">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2013</year>b). <chapter-title>Summation problem revisited – more robust computation</chapter-title>. In: <source>17th International Conference on Computers – Recent Advances in Computer Science CSCC ’13</source>, pp. <fpage>56</fpage>–<lpage>64</lpage>. <isbn>978-960-474-311-7</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/arXiv.2211.04402" xlink:type="simple">https://doi.org/10.48550/arXiv.2211.04402</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_181">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2014</year>). <chapter-title>Algorithms for line and plane intersection with a convex polyhedron with <italic>O</italic>(<italic>sqrt</italic>(<italic>N</italic>)) expected complexity in E3</chapter-title>. In: <source>SIGGRAPH Asia 2014 Posters, SA ’14</source>. <publisher-name>Association for Computing Machinery</publisher-name>, <publisher-loc>New York, NY, USA</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/2668975.2668976" xlink:type="simple">https://doi.org/10.1145/2668975.2668976</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_182">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2015</year>). <article-title>A new approach to line – sphere and line – quadrics intersection detection and computation</article-title>. <source>AIP Conference Proceedings</source>, <volume>1648</volume>, <fpage>1</fpage>–<lpage>4</lpage>. <isbn>9780735412873</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1063/1.4913058" xlink:type="simple">https://doi.org/10.1063/1.4913058</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_183">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2020</year>). <article-title>Optimized line and line segment clipping in E2 and geometric algebra</article-title>. <source>Annales Mathematicae et Informaticae</source>, <volume>52</volume>, <fpage>199</fpage>–<lpage>215</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.33039/ami.2020.05.001" xlink:type="simple">https://doi.org/10.33039/ami.2020.05.001</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_184">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2021</year>a). <article-title>Efficient intersection computation of the Bezier and Hermite curves with axis aligned bounding box</article-title>. <source>WSEAS Transactions on Systems</source>, <volume>20</volume>, <fpage>320</fpage>–<lpage>323</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.37394/23202.2021.20.36" xlink:type="simple">https://doi.org/10.37394/23202.2021.20.36</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_185">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2021</year>b). <chapter-title>A new coding scheme for line segment clipping in <italic>E</italic><sup>2</sup></chapter-title>. In: <source>Computational Science and Its Applications – ICCSA 2021</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>12953</volume>, pp. <fpage>16</fpage>–<lpage>29</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-86976-2_2" xlink:type="simple">https://doi.org/10.1007/978-3-030-86976-2_2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_186">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (<year>2021</year>c). <chapter-title>A novel line convex polygon clipping algorithm in <italic>E</italic><sup>2</sup> with parallel processing modification</chapter-title>. In: <source>Computational Science and Its Applications – ICCSA 2021</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>12953</volume>. pp. <fpage>3</fpage>–<lpage>15</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-86976-2_1" xlink:type="simple">https://doi.org/10.1007/978-3-030-86976-2_1</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_187">
<mixed-citation publication-type="other"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name> (2022). <italic>Clipping and Intersection Algorithms: Short Survey and References</italic>. arXiv: <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/ARXIV.2206.13216" xlink:type="simple">https://doi.org/10.48550/ARXIV.2206.13216</ext-link>. <uri>https://arxiv.org/abs/2206.13216</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_188">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Bui</surname>, <given-names>D.H.</given-names></string-name> (<year>2000</year>). <article-title>Faster algorithm for line clipping against a pyramid in E3</article-title>. <source>Machine Graphics and Vision</source>, <volume>9</volume>(<issue>4</issue>), <fpage>841</fpage>–<lpage>850</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/arXiv.2201.00587" xlink:type="simple">https://doi.org/10.48550/arXiv.2201.00587</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_189">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Bui</surname>, <given-names>D.H.</given-names></string-name> (<year>2001</year>). <article-title>Extension of the Nicholls-Lee-Nichols algorithm to three dimensions</article-title>. <source>Visual Computer</source>, <volume>17</volume>(<issue>4</issue>), <fpage>236</fpage>–<lpage>242</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s003710000094" xlink:type="simple">https://doi.org/10.1007/s003710000094</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_190">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Huy</surname>, <given-names>B.D.</given-names></string-name> (<year>2000</year>). <article-title>Two new algorithms for line clipping in E2 and their comparison</article-title>. <source>Machine Graphics and Vision</source>, <volume>9</volume>(<issue>1/2</issue>), <fpage>297</fpage>–<lpage>306</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/arXiv.2201.00590" xlink:type="simple">https://doi.org/10.48550/arXiv.2201.00590</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_191">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Lederbuch</surname>, <given-names>P.</given-names></string-name> (<year>1996</year>). <chapter-title>A comparison of a new O(1) and the cyrus-beck line clipping algorithms in E2</chapter-title>. In: <source>Compugraphics’96: Fifth International Conference on Computational Graphics and Visualization Techniques</source>. <publisher-name>ACM</publisher-name>, <publisher-loc>Portugal</publisher-loc>, pp. <fpage>281</fpage>–<lpage>287</lpage>. <isbn>972-8342-01-2</isbn>. <uri>https://dspace5.zcu.cz/handle/11025/11808</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_192">
<mixed-citation publication-type="journal"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Kolingerova</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Blaha</surname>, <given-names>P.</given-names></string-name> (<year>1995</year>). <article-title>A comparison of 2D line clipping algorithms</article-title>. <source>Machine Graphics and Vision</source>, <volume>3</volume>(<issue>4</issue>), <fpage>625</fpage>–<lpage>633</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_193">
<mixed-citation publication-type="chapter"><string-name><surname>Skala</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Lederbuch</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Sup</surname>, <given-names>B.</given-names></string-name> (<year>1996</year>). <chapter-title>A comparison of O(1) and Cyrus-Beck line clipping algorithm in E2 and E3</chapter-title>. In: <source>SCCG96 Conference Proceedings</source>. <publisher-name>Comenius University</publisher-name>, <publisher-loc>Slovakia</publisher-loc>, pp. <fpage>17</fpage>–<lpage>44</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.48550/arXiv.2111.07987" xlink:type="simple">https://doi.org/10.48550/arXiv.2111.07987</ext-link>. <uri>https://dspace5.zcu.cz/handle/11025/11806</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_194">
<mixed-citation publication-type="journal"><string-name><surname>Slater</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Barsky</surname>, <given-names>B.A.</given-names></string-name> (<year>1994</year>). <article-title>2D line and polygon clipping based on space subdivision</article-title>. <source>The Visual Computer</source>, <volume>10</volume>(<issue>7</issue>), <fpage>407</fpage>–<lpage>422</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/BF01900665" xlink:type="simple">https://doi.org/10.1007/BF01900665</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_195">
<mixed-citation publication-type="journal"><string-name><surname>Sobkow</surname>, <given-names>M.S.</given-names></string-name>, <string-name><surname>Pospisil</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>Y.-H.</given-names></string-name> (<year>1987</year>). <article-title>A fast two-dimensional line clipping algorithm via line encoding</article-title>. <source>Computers and Graphics</source>, <volume>11</volume>(<issue>4</issue>), <fpage>459</fpage>–<lpage>467</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(87)90061-6" xlink:type="simple">https://doi.org/10.1016/0097-8493(87)90061-6</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_196">
<mixed-citation publication-type="chapter"><string-name><surname>Sproull</surname>, <given-names>R.F.</given-names></string-name>, <string-name><surname>Sutherland</surname>, <given-names>I.E.</given-names></string-name> (<year>1968</year>). <chapter-title>A clipping divider</chapter-title>. In: <source>Fall Joint Computer Conference Proceedings, of the December 9–11, 1968, AFIPS ’68 (Fall, part I)</source>. <publisher-name>Association for Computing Machinery</publisher-name>, <publisher-loc>New York, NY, USA</publisher-loc>, pp. <fpage>765</fpage>–<lpage>775</lpage>. <isbn>9781450378994</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/1476589.1476687" xlink:type="simple">https://doi.org/10.1145/1476589.1476687</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_197">
<mixed-citation publication-type="book"><string-name><surname>Stolfi</surname>, <given-names>J.</given-names></string-name> (<year>1991</year>). <source>Oriented Projective Geometry</source>. <publisher-name>Academic Press Professional, Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0126720258</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_198">
<mixed-citation publication-type="journal"><string-name><surname>Sun</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>E.</given-names></string-name> (<year>2006</year>). <article-title>Line clipping against a polygon through convex segments</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>18</volume>(<issue>12</issue>), <fpage>1799</fpage>–<lpage>1805</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_199">
<mixed-citation publication-type="other"><string-name><surname>Sutherland</surname>, <given-names>I.E.</given-names></string-name> (1972). Display windowing by clipping. <italic>Google Patents</italic>. <uri>https://patents.google.com/patent/US3639736A/en</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_200">
<mixed-citation publication-type="journal"><string-name><surname>Sutherland</surname>, <given-names>I.E.</given-names></string-name>, <string-name><surname>Hodgman</surname>, <given-names>G.W.</given-names></string-name> (<year>1974</year>). <article-title>Reentrant polygon clipping</article-title>. <source>Communications of the ACM</source>, <volume>17</volume>(<issue>1</issue>), <fpage>32</fpage>–<lpage>42</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/360767.360802" xlink:type="simple">https://doi.org/10.1145/360767.360802</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_201">
<mixed-citation publication-type="chapter"><string-name><surname>Tang</surname>, <given-names>L.-L.</given-names></string-name>, <string-name><surname>He</surname>, <given-names>Y.-J.</given-names></string-name> (<year>2009</year>). <chapter-title>A linear time algorithm for the line clipping against concave polygon</chapter-title>. In: <source>Proceedings – 2009 International Conference on Information Engineering and Computer Science, ICIECS 2009</source>, pp. <fpage>1</fpage>–<lpage>4</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICIECS.2009.5364626" xlink:type="simple">https://doi.org/10.1109/ICIECS.2009.5364626</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_202">
<mixed-citation publication-type="book"><string-name><surname>Theoharis</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Platis</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Papaioannou</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Patrikalakis</surname>, <given-names>N.M.</given-names></string-name> (<year>2008</year>). <source>Graphics and Visualization: Principles &amp; Algorithms</source>, <edition>1st ed.</edition> <publisher-name>A. K. Peters/CRC Press</publisher-name>, <publisher-loc>New York</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1201/b10676" xlink:type="simple">https://doi.org/10.1201/b10676</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_203">
<mixed-citation publication-type="book"><string-name><surname>Thomas</surname>, <given-names>A.</given-names></string-name> (<year>2008</year>). <source>Integrated Graphics and Computer Modelling</source>, <edition>1</edition>st ed. <publisher-name>Springer</publisher-name>, <publisher-loc>London</publisher-loc>. <isbn>1848001789</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_204">
<mixed-citation publication-type="other"><string-name><surname>Tran</surname>, <given-names>C.-H.</given-names></string-name> (1986). <italic>Fast Clipping Algorithms for Computer Graphics</italic>. PhD thesis, University of British Columbia. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.14288/1.0096928" xlink:type="simple">https://doi.org/10.14288/1.0096928</ext-link>. <uri>https://open.library.ubc.ca/collections/ubctheses/831/items/1.0096928</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_205">
<mixed-citation publication-type="journal"><string-name><surname>Tropp</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Tal</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Shimshoni</surname>, <given-names>I.</given-names></string-name> (<year>2006</year>). <article-title>A fast triangle to triangle intersection test for collision detection</article-title>. <source>Computer Animation and Virtual Worlds</source>, <volume>17</volume>(<issue>5</issue>), <fpage>527</fpage>–<lpage>535</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1002/cav.115" xlink:type="simple">https://doi.org/10.1002/cav.115</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_206">
<mixed-citation publication-type="journal"><string-name><surname>Van Wyk</surname>, <given-names>C.J.</given-names></string-name> (<year>1984</year>). <article-title>Clipping to the boundary of a circular-arc polygon</article-title>. <source>Computer Vision, Graphics, and Image Processing</source>, <volume>25</volume>(<issue>3</issue>), <fpage>383</fpage>–<lpage>392</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0734-189X(84)90202-0" xlink:type="simple">https://doi.org/10.1016/0734-189X(84)90202-0</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_207">
<mixed-citation publication-type="journal"><string-name><surname>Vatti</surname>, <given-names>B.R.</given-names></string-name> (<year>1992</year>). <article-title>A generic solution to polygon clipping</article-title>. <source>Communications of the ACM</source>, <volume>35</volume>(<issue>7</issue>), <fpage>56</fpage>–<lpage>63</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/129902.129906" xlink:type="simple">https://doi.org/10.1145/129902.129906</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_208">
<mixed-citation publication-type="book"><string-name><surname>Vince</surname>, <given-names>J.</given-names></string-name> (<year>2009</year>). <source>Geometric Algebra: An Algebraic System for Computer Games and Animation</source>, <edition>1st</edition> ed. <publisher-name>Springer</publisher-name>, <publisher-loc>London</publisher-loc>. <isbn>1848823789</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_209">
<mixed-citation publication-type="book"><string-name><surname>Vince</surname>, <given-names>J.</given-names></string-name> (<year>2010</year>). <source>Introduction to the Mathematics for Computer Graphics</source>, <edition>3rd</edition> ed. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>. <isbn>1849960224</isbn>. <uri>https://link.springer.com/book/10.1007/978-1-4471-6290-2#toc</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_210">
<mixed-citation publication-type="book"><string-name><surname>Vince</surname>, <given-names>J.</given-names></string-name> (<year>2012</year>). <source>Matrix Transforms for Computer Games and Animation</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>London</publisher-loc>. <isbn>1447143205</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_211">
<mixed-citation publication-type="book"><string-name><surname>Vince</surname>, <given-names>J.A.</given-names></string-name> (<year>2008</year>). <source>Geometric Algebra for Computer Graphics</source>, <edition>1</edition>st ed. <publisher-name>Springer-Verlag TELOS</publisher-name>, <publisher-loc>Santa Clara, CA, USA</publisher-loc>. <isbn>1846289963</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-84628-997-2" xlink:type="simple">https://doi.org/10.1007/978-1-84628-997-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_212">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Chong</surname>, <given-names>S.</given-names></string-name> (<year>2016</year>). <article-title>A high efficient polygon clipping algorithm for dealing with intersection degradation</article-title>. <source>Dongnan Daxue Xuebao (Ziran Kexue Ban)/Journal of Southeast University (Natural Science Edition)</source>, <volume>46</volume>(<issue>4</issue>), <fpage>702</fpage>–<lpage>707</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3969/j.issn.1001-0505.2016.04.005" xlink:type="simple">https://doi.org/10.3969/j.issn.1001-0505.2016.04.005</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_213">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Cai</surname>, <given-names>S.</given-names></string-name> (<year>1998</year>a). <article-title>A new algorithm for two-dimensional line clipping via geometric transformation</article-title>. <source>Journal of Computer Science and Technology</source>, <volume>13</volume>(<issue>5</issue>), <fpage>410</fpage>–<lpage>416</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/bf02948499" xlink:type="simple">https://doi.org/10.1007/bf02948499</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_214">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Cai</surname>, <given-names>S.</given-names></string-name> (<year>1998</year>b). <article-title>New efficient line clipping algorithm based on geometric transformation</article-title>. <source>Ruan Jian Xue Bao/Journal of Software</source>, <volume>9</volume>(<issue>10</issue>), <fpage>728</fpage>–<lpage>733</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_215">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Lu</surname>, <given-names>G.-D.</given-names></string-name>, <string-name><surname>Peng</surname>, <given-names>Q.-S.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>X.-H.</given-names></string-name> (<year>2005</year>). <article-title>Line clipping against polygonal window algorithm based on the multiple virtual boxes rejecting</article-title>. <source>Journal of Zhejiang University: Science</source>, <volume>6</volume>(<issue>Suppl 1</issue>), <fpage>100</fpage>–<lpage>107</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1631/jzus.2005.AS0100" xlink:type="simple">https://doi.org/10.1631/jzus.2005.AS0100</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_216">
<mixed-citation publication-type="journal"><string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Cui</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Gao</surname>, <given-names>J.</given-names></string-name> (<year>2012</year>). <article-title>An efficient algorithm for clipping operation based on trapezoidal meshes and sweep-line technique</article-title>. <source>Advances in Engineering Software</source>, <volume>47</volume>(<issue>1</issue>), <fpage>72</fpage>–<lpage>79</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.advengsoft.2011.12.003" xlink:type="simple">https://doi.org/10.1016/j.advengsoft.2011.12.003</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_217">
<mixed-citation publication-type="chapter"><string-name><surname>Wang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Xue</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Fang</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>G.</given-names></string-name> (<year>2001</year>). <chapter-title>From probability model to a fast line clipping algorithm</chapter-title>. In: <source>CAD/GRAPHICS 2001</source>, pp. <fpage>802</fpage>–<lpage>806</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_218">
<mixed-citation publication-type="book"><string-name><surname>Watt</surname>, <given-names>A.</given-names></string-name> (<year>1993</year>). <source>3d Computer Graphics</source>, <edition>2nd</edition> ed. <publisher-name>Addison-Wesley Longman Publishing Co., Inc.</publisher-name>, <publisher-loc>USA</publisher-loc>. <isbn>0201631865</isbn>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_219">
<mixed-citation publication-type="journal"><string-name><surname>Wei</surname>, <given-names>L.-Y.</given-names></string-name> (<year>2014</year>). <article-title>A faster triangle-to-triangle intersection test algorithm</article-title>. <source>Computer Animation and Virtual Worlds</source>, <volume>25</volume>(<issue>5–6</issue>), <fpage>553</fpage>–<lpage>559</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1002/cav.1558" xlink:type="simple">https://doi.org/10.1002/cav.1558</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_220">
<mixed-citation publication-type="journal"><string-name><surname>Wei</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Ma</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Lin</surname>, <given-names>W.</given-names></string-name> (<year>2013</year>). <article-title>An improved Cohen-Sutherland region encoding algorithm</article-title>. <source>Applied Mechanics and Materials</source>, <volume>239–240</volume>, <fpage>1313</fpage>–<lpage>1317</lpage>. <isbn>9783037855454</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.4028/www.scientific.net/AMM.239-240.1313" xlink:type="simple">https://doi.org/10.4028/www.scientific.net/AMM.239-240.1313</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_221">
<mixed-citation publication-type="chapter"><string-name><surname>Weiler</surname>, <given-names>K.</given-names></string-name> (<year>1980</year>). <chapter-title>Polygon comparison using a graph representation</chapter-title>. In: <source>Proceedings of the 7th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’80</source>, pp. <fpage>10</fpage>–<lpage>18</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/800250.807462" xlink:type="simple">https://doi.org/10.1145/800250.807462</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_222">
<mixed-citation publication-type="chapter"><string-name><surname>Weiler</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Atherton</surname>, <given-names>P.</given-names></string-name> (<year>1977</year>). <chapter-title>Hidden surface removal using polygon area sorting</chapter-title>. In: <source>Proceedings of the 4th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’77</source>, pp. <fpage>214</fpage>–<lpage>222</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/563858.563896" xlink:type="simple">https://doi.org/10.1145/563858.563896</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_223">
<mixed-citation publication-type="journal"><string-name><surname>Wijeweera</surname>, <given-names>K.R.</given-names></string-name>, <string-name><surname>Kodituwakku</surname>, <given-names>S.R.</given-names></string-name>, <string-name><surname>Pathum Chamikara</surname>, <given-names>M.A.</given-names></string-name> (<year>2019</year>). <article-title>A novel and efficient approach for line segment clipping against a convex polygon</article-title>. <source>Ruhuna Journal of Science</source>, <volume>10</volume>(<issue>2</issue>), <fpage>161</fpage>–<lpage>173</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.4038/rjs.v10i2.81" xlink:type="simple">https://doi.org/10.4038/rjs.v10i2.81</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_224">
<mixed-citation publication-type="other"><string-name><surname>Wikipedia</surname></string-name> (2020). Plücker Matrix – Wikipedia, The Free Encyclopedia. [Online; accessed 12-May-2022]. <uri>https://en.wikipedia.org/wiki/Plucker_matrix</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_225">
<mixed-citation publication-type="other"><string-name><surname>Wikipedia</surname></string-name> (2021a). Clipping (Computer Graphics) – Wikipedia, The Free Encyclopedia. [Online; accessed 28-July-2021]. <uri>https://en.wikipedia.org/wiki/Clipping_(computer_graphics)</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_226">
<mixed-citation publication-type="other"><string-name><surname>Wikipedia</surname></string-name> (2021b). IEEE 754 – Wikipedia, The Free Encyclopedia. [Online; accessed 11-July-2021]. <uri>https://en.wikipedia.org/wiki/IEEE_754</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_227">
<mixed-citation publication-type="other"><string-name><surname>Wikipedia</surname></string-name> (2021c). Ray Tracing (Graphics) – Wikipedia, The Free Encyclopedia. [Online; accessed 3-August-2021]. <uri>https://en.wikipedia.org/wiki/Ray_tracing_(graphics)</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_228">
<mixed-citation publication-type="chapter"><string-name><surname>Williams</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Barrus</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Morley</surname>, <given-names>R.K.</given-names></string-name>, <string-name><surname>Shirley</surname>, <given-names>P.</given-names></string-name> (<year>2005</year>). <chapter-title>An efficient and robust ray-box intersection algorithm</chapter-title>. In: <source>ACM SIGGRAPH 2005 Courses</source>. <publisher-name>ACM</publisher-name>, <publisher-loc>New York, NY, USA</publisher-loc>, p. <fpage>9</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/1198555.1198748" xlink:type="simple">https://doi.org/10.1145/1198555.1198748</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_229">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Han</surname>, <given-names>Y.</given-names></string-name> (<year>2006</year>). <article-title>A clipping algorithm for parabola segments against circular windows</article-title>. <source>Computers &amp; Graphics</source>, <volume>30</volume>(<issue>4</issue>), <fpage>540</fpage>–<lpage>560</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cag.2006.03.001" xlink:type="simple">https://doi.org/10.1016/j.cag.2006.03.001</ext-link>. <uri>https://www.sciencedirect.com/science/article/pii/S0097849306000732</uri>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_230">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>X.</given-names></string-name> (<year>2022</year>). <article-title>Curve intersection based on cubic hybrid clipping</article-title>. <source>Visual Computing for Industry, Biomedicine, and Art</source>, <volume>5</volume>(<issue>1</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1186/s42492-022-00114-3" xlink:type="simple">https://doi.org/10.1186/s42492-022-00114-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_231">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Gou</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Luo</surname>, <given-names>Z.</given-names></string-name> (<year>2004</year>). <article-title>Line clipping algorithm against arbitrary polygons</article-title>. <source>Journal of Computer-Aided Design and Computer Graphics</source>, <volume>16</volume>(<issue>2</issue>), <fpage>228</fpage>–<lpage>233</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_232">
<mixed-citation publication-type="journal"><string-name><surname>Xiao</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Mei</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Cuomo</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Xu</surname>, <given-names>N.</given-names></string-name> (<year>2020</year>). <article-title>Comparative investigation of GPU-accelerated triangle-triangle intersection algorithms for collision detection</article-title>. <source>Multimedia Tools and Applications</source>, <volume>81</volume>, <fpage>3165</fpage>–<lpage>3180</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s11042-020-09066-3" xlink:type="simple">https://doi.org/10.1007/s11042-020-09066-3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_233">
<mixed-citation publication-type="chapter"><string-name><surname>Xie</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Zhou</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>X.</given-names></string-name> (<year>2010</year>). <chapter-title>An clipping general polygons in regular girds algorithm base on successive encoding</chapter-title>. In: <source>2010 International Conference on Computer Application and System Modeling, ICCASM 2010</source>, <conf-loc>Taiyuan, 2010</conf-loc>, pp. <fpage>4709</fpage>–<lpage>4713</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICCASM.2010.5619427" xlink:type="simple">https://doi.org/10.1109/ICCASM.2010.5619427</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_234">
<mixed-citation publication-type="journal"><string-name><surname>Yang</surname>, <given-names>W.</given-names></string-name> (<year>1988</year>). <article-title>New approach to line clipping in computer graphics display</article-title>. <source>Zhongnan Kuangye Xueyuan Xuebao</source>, <volume>18</volume>(<issue>1</issue>), <fpage>73</fpage>–<lpage>78</lpage>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_235">
<mixed-citation publication-type="chapter"><string-name><surname>Ye</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Xing</surname>, <given-names>H.</given-names></string-name> (<year>2015</year>). <chapter-title>An improved algorithm for triangle to triangle intersection test</chapter-title>. In: <source>ICIA 2015 Proceedings</source>, pp. <fpage>2689</fpage>–<lpage>2694</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICInfA.2015.7279740" xlink:type="simple">https://doi.org/10.1109/ICInfA.2015.7279740</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_236">
<mixed-citation publication-type="chapter"><string-name><surname>Zhang</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Sabharwal</surname>, <given-names>C.L.</given-names></string-name> (<year>2002</year>). <chapter-title>An efficient implementation of parametric line and polygon clipping algorithm</chapter-title>. In: <source>Proceedings of the ACM Symposium on Applied Computing</source>, pp. <fpage>796</fpage>–<lpage>800</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/508791.508945" xlink:type="simple">https://doi.org/10.1145/508791.508945</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_237">
<mixed-citation publication-type="journal"><string-name><surname>Zhang</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Fan</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Xu</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>Z.</given-names></string-name> (<year>2022</year>). <article-title>VCS optimization method of Vatti algorithm for polygon overlay and parallelization using GPU</article-title>. <source>Journal of Geo-Information Science</source>, <volume>24</volume>(<issue>3</issue>), <fpage>437</fpage>–<lpage>447</lpage> <comment>(in Chinese)</comment>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.12082/dqxxkx.2022.210409" xlink:type="simple">https://doi.org/10.12082/dqxxkx.2022.210409</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor508_ref_238">
<mixed-citation publication-type="journal"><string-name><surname>Zheng</surname>, <given-names>J.L.</given-names></string-name>, <string-name><surname>Millham</surname>, <given-names>C.B.</given-names></string-name> (<year>1991</year>). <article-title>A linear programming method for ray-convex polyhedron intersection</article-title>. <source>Computers and Graphics</source>, <volume>15</volume>(<issue>2</issue>), <fpage>195</fpage>–<lpage>204</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/0097-8493(91)90073-Q" xlink:type="simple">https://doi.org/10.1016/0097-8493(91)90073-Q</ext-link>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
