ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4TessellatedGeometryAlgorithms.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4TessellatedGeometryAlgorithms.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration and of QinetiQ Ltd, *
20
// * subject to DEFCON 705 IPR conditions. *
21
// * By using, copying, modifying or distributing the software (or *
22
// * any work based on the software) you agree to acknowledge its *
23
// * use in resulting scientific publications, and indicate your *
24
// * acceptance of all terms of the Geant4 Software license. *
25
// ********************************************************************
26
//
27
// G4TessellatedGeometryAlgorithms
28
//
29
// Class description:
30
//
31
// The G4TessellatedGeometryAlgorithms class is used to contain standard
32
// routines to determine whether (and if so where) simple geometric shapes
33
// intersect.
34
//
35
// The constructor doesn't need to do anything, and neither does the
36
// destructor.
37
//
38
// IntersectLineAndTriangle2D
39
// Determines whether there is an intersection between a line defined
40
// by r = p + s.v and a triangle defined by verticies P0, P0+E0 and P0+E1.
41
// Here:
42
// p = 2D vector
43
// s = scaler on [0,infinity)
44
// v = 2D vector
45
// P0, E0 and E1 are 2D vectors
46
// Information about where the intersection occurs is returned in the
47
// variable location.
48
//
49
// IntersectLineAndLineSegment2D
50
// Determines whether there is an intersection between a line defined
51
// by r = P0 + s.D0 and a line-segment with endpoints P1 and P1+D1.
52
// Here:
53
// P0 = 2D vector
54
// s = scaler on [0,infinity)
55
// D0 = 2D vector
56
// P1 and D1 are 2D vectors
57
// Information about where the intersection occurs is returned in the
58
// variable location.
59
60
// 07 August 2007, P R Truscott, QinetiQ Ltd, UK - Created, with member
61
// functions based on the work of Rickard Holmberg.
62
// 12 October 2012, M Gayer, CERN, - Reviewed optimized implementation.
63
// --------------------------------------------------------------------
64
#ifndef G4TESSELLATEDGEOMETRYALGORITHMS_HH
65
#define G4TESSELLATEDGEOMETRYALGORITHMS_HH 1
66
67
#include "
G4TwoVector.hh
"
68
69
class
G4TessellatedGeometryAlgorithms
70
{
71
public
:
72
73
static
G4bool
IntersectLineAndTriangle2D
(
const
G4TwoVector
&
p
,
74
const
G4TwoVector
&
v
,
75
const
G4TwoVector
& p0,
76
const
G4TwoVector
& e0,
77
const
G4TwoVector
&
e1
,
78
G4TwoVector
location[2]);
79
static
G4int
IntersectLineAndLineSegment2D
(
const
G4TwoVector
& p0,
80
const
G4TwoVector
& d0,
81
const
G4TwoVector
& p1,
82
const
G4TwoVector
&
d1
,
83
G4TwoVector
location[2]);
84
static
G4double
cross
(
const
G4TwoVector
&
v1
,
const
G4TwoVector
&
v2
);
85
};
86
87
#endif
geant4
tree
geant4-10.6-release
source
geometry
solids
specific
include
G4TessellatedGeometryAlgorithms.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:19
using
1.8.2 with
ECCE GitHub integration