This file is indexed.

/usr/include/ASL/aslGeomInc.h is in libasl-dev 0.1.7-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * Advanced Simulation Library <http://asl.org.il>
 * 
 * Copyright 2015 Avtech Scientific <http://avtechscientific.com>
 *
 *
 * This file is part of Advanced Simulation Library (ASL).
 *
 * ASL is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, version 3 of the License.
 *
 * ASL is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with ASL. If not, see <http://www.gnu.org/licenses/>.
 *
 */


#ifndef ASLGEOMINC_H
#define ASLGEOMINC_H

#include <memory>
#include <vector>
#include "acl/aclHardware.h"

namespace acl
{
	class KernelConfiguration;
}

namespace asl {

	template <typename T> class AVec;
	class Block;

	class AbstractDataWithGhostNodes; 
	typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
	
	class DistanceFunction;
	typedef std::shared_ptr<DistanceFunction> SPDistanceFunction;

	
	
	///generates sphere \ingroup Geom
	/**
	 \param r radius
	 \param c center
	 */
	SPDistanceFunction generateDFSphere(double r, const AVec<double> & c);


	///generates infinite cylinder \ingroup Geom
	/**
	 \param r radius
	 \param l orientation
	 \param c center
	 */
	SPDistanceFunction generateDFCylinderInf(double r, 
	                                      const AVec<double> & l, 
	                                      const AVec<double> & c);

	///generates cylinder \ingroup Geom
	/**
	 \param r radius
	 \param l orientation and length
	 \param c center
	 */
	SPDistanceFunction generateDFCylinder(double r, 
	                                      const AVec<double> & l, 
	                                      const AVec<double> & c);
	
	///generates cone \ingroup Geom
	/**
	 \param r radius
	 \param l orientation and length, from apex to base
	 \param a apex
	 */
	SPDistanceFunction generateDFCone(double r, 
	                                  const AVec<double> & l, 
	                                  const AVec<double> & a);

	/// generates a plane \ingroup Geom
	/// \param n vector orthogonal to the plane
	/// \param p0 point on the plane
	SPDistanceFunction generateDFPlane(const AVec<double> & n,
	                                   const AVec<double> & p0);


	/// generates infinite prism with convex polygon at its base \ingroup Geom
	/**
		 \param points list of points in 3D space. 

		 The prism axis is oriented orthogonal to the plane of the triangle defined by 
		 a center and first two points. Points of the base polygon must
		 be provided in continuous manner.
	*/
	SPDistanceFunction generateDFConvexPolygonPrism(std::vector<AVec<double>> points);


	///generates pyramid with convex polygon at its base and apex \p a \ingroup Geom
	/**
		 \param points list of points in 3D space. 

		 the pyramid base plane is defined by a center and fist two points
		 the points should be ordered counter clock rotation for an observer placed in \p a
	*/
	SPDistanceFunction generateDFConvexPolygonPyramid(std::vector<AVec<double>> points, 
	                                                  AVec<double> a);
	

	/// generates map corresponding to external (ghost) part of the block \ingroup Geom
	SPDistanceFunction generateDFInBlock(const Block & b, unsigned int nG);


	/// \ingroup Geom
	/**
		If both operands are not initialized - it leads to an error. 
	    If only one operand is not initialized - it is ignored and the second is returned.
	*/
	SPDistanceFunction operator&(SPDistanceFunction a, SPDistanceFunction b);
	/// \ingroup Geom
	/**
	 If both operands are not initialized - it leads to an error. 
	 If only one operand is not initialized - it is ignored and the second is returned.
	*/
	SPDistanceFunction operator|(SPDistanceFunction a, SPDistanceFunction b);
	/// \ingroup Geom
	SPDistanceFunction operator-(SPDistanceFunction a);
	/// \ingroup Geom
	SPDistanceFunction normalize(SPDistanceFunction a, double dx);

	/// \ingroup Geom
	SPAbstractDataWithGhostNodes generateDataContainer_SP(const Block &b, 
	                                                      SPDistanceFunction df, 
	                                                      unsigned int gN,
	                                                      acl::TypeID t);
	

	/// Initialize \p d by \p f
	void initData(SPAbstractDataWithGhostNodes d, 
	              SPDistanceFunction f);
	/// Initialize \p d by \p f
	void initData(SPAbstractDataWithGhostNodes d, 
	              SPDistanceFunction f, 
	              const acl::KernelConfiguration & k);
	
} // asl

#endif // ASLDISTANCEFUNCTION