Two-dimensional line segment–triangle intersection test: revision and enhancement

  • Simo Jokanovic
Original Article


Two-dimensional line segment–triangle intersection test is a part of some 3D triangle–triangle intersection test algorithms. It is the kind of algorithms dealing with intersection of one triangle and line segment obtained as the intersection of the other triangle with the plane which the first triangle lies on. There appeared a number of algorithms each proclaiming its efficiency against to its predecessors with respect to the number of operations. In the paper, we seek out the minimal set of operations. Applying divide and conquer paradigm, we split the operations needed into (a) fixed part consisting of core arithmetic operations and (b) variable part dealing with logical reasoning. As we come to the set of core arithmetic operations that cannot be further minified we realize previous algorithms come to the same set in spite of their different strategies. Further improvement we sought in the area of modern processor architectures. We exploit modern CPU’s parallel processing capabilities like Single instruction, multiple data vectorization, parallel—out-of-order execution and branch prediction and enlighten their strengths and weaknesses for usage in this type of algorithms.


Segment–triangle intersection Cross product Out-of-order execution Single instruction multiple data Dependency chain 



I express my gratitude to professor Joseph Mitchell from State University of New York at Stony Brook, for handing out the code of QuickCD algorithms to me.

Compliance with ethical standards

Conflict of interest

Author Simo Jokanovic declares that he has no conflict of interest.


  1. 1.
    Gottschalk, S., Lin, M.: Collision detection between geometric models: a survey. In: Proceedings of IMA Conference on Mathematics of Surfaces 1998, pp. 3–15 (1998)Google Scholar
  2. 2.
    Botsch, M., Pauly, M., Kobbelt, L., Alliez, P., Lévy, B., Bischoff, S., Rössl, C.: Geometric Modeling Based on Polygonal Meshes, Eurographics 2008—Tutorials. Accessed Dec 2017
  3. 3.
    Möller, T.: A fast triangle–triangle intersection test. J. Graph. Tools 2(2), 25–30 (1997)CrossRefGoogle Scholar
  4. 4.
    Held, M.: ERIT—a collection of efficient and reliable intersection tests. J. Graph. Tools 2(4), 25–44 (1997)CrossRefzbMATHGoogle Scholar
  5. 5.
    Devillers, O., Guigu, P.: Faster triangle–triangle intersection tests. Technical report 4488, INRIA (2002)Google Scholar
  6. 6.
    Tropp, O., Tal, A., Shimshoni, I.: A fast triangle to triangle intersection test for collision detection. Comput. Animat. Virtual Worlds 17(50), 527–535 (2006)CrossRefGoogle Scholar
  7. 7.
    Ling-yu, Wei: A faster triangle-to-triangle intersection test algorithm. Comput. Animat. Virtual Worlds 25(5–6), 553–559 (2014)CrossRefGoogle Scholar
  8. 8.
    Tang, K.T.: Mathematical Methods for Engineers and Scientists—Complex Analysis. Determinants and Matrices. Springer, Berlin (2007)zbMATHGoogle Scholar
  9. 9.
    Shen, J.P., Lipasti, M.H.: Modern Processor Design. Fundamentals of Superscalar Processors. Waveland Press, Long Grove (2005)Google Scholar
  10. 10.
    Fog, A.: Optimizing software in C++: an optimization guide for Windows, Linux and Mac platforms. Technical University of Denmark. Accessed Dec 2017
  11. 11.
    Intel 64 and IA-32 Architectures Optimization Reference Manual, Intel Corporation, Order Number: 248966-033 (2016)Google Scholar
  12. 12.
    Klosowski, J.T., Held, M., Mitchell, J.S.B., Sowizral, H., Zikan, K.: Efficient collision detection using bounding volume hierarchies of k-DOPs. IEEE Trans. Vis. Comput. Graph. 4(1), 21–36 (1998)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Faculty of Mechanical EngineeringUniversity of Banja LukaBanja LukaBosnia and Herzegovina

Personalised recommendations