13 #include "libmesh/point.h" 14 #include "libmesh/plane.h" 21 static const double tol = 1.0e-10;
26 const unsigned int * permutation_ids,
28 std::vector<Point> & points,
29 std::vector<Real> & weights);
31 void stdQuadr2D(
unsigned int nen,
unsigned int iord, std::vector<std::vector<Real>> & sg2);
33 void wissmannPoints(
unsigned int nqp, std::vector<std::vector<Real>> & wss);
36 std::vector<Real> & ss,
37 std::vector<Point> & xl,
38 std::vector<std::vector<Real>> & shp,
44 void r8vec_copy(
int n,
double a1[],
double a2[]);
46 bool r8vec_eq(
int n,
double a1[],
double a2[]);
53 double pp[3],
double normal[3],
double p1[3],
double p2[3],
double pint[3]);
56 double coord[],
int order_max,
int face_num,
int node[],
int node_num,
int order[]);
66 double angle_rad_3d(
double p1[3],
double p2[3],
double p3[3]);
82 const Point & segment_point2,
83 const std::pair<Point, Point> & cutting_line_points,
84 const Real & cutting_line_fraction,
85 Real & segment_intersection_fraction);
135 unsigned int & region);
147 const std::vector<Point> & vertices,
double polyhedron_volume_3d(double coord[], int order_max, int face_num, int node[], int node_num, int order[])
void shapeFunc2D(unsigned int nen, std::vector< Real > &ss, std::vector< Point > &xl, std::vector< std::vector< Real >> &shp, Real &xsj, bool natl_flg)
Real pointSegmentDistance(const Point &x0, const Point &x1, const Point &x2, Point &xp)
Calculate the signed distance from a point to a line segment.
void wissmannPoints(unsigned int nqp, std::vector< std::vector< Real >> &wss)
bool line_exp_is_degenerate_nd(int dim_num, double p1[], double p2[])
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
double r8vec_norm(int n, double a[])
int plane_normal_line_exp_int_3d(double pp[3], double normal[3], double p1[3], double p2[3], double pint[3])
Real getRelativePosition(const Point &p1, const Point &p2, const Point &p)
Get the relative position of p from p1 respect to the total length of the line segment.
void i4vec_zero(int n, int a[])
bool intersectWithEdge(const Point &p1, const Point &p2, const std::vector< Point > &vertices, Point &pint)
check if a line intersects with an element defined by vertices calculate the distance from a point to...
bool isInsideCutPlane(const std::vector< Point > &vertices, const Point &p)
Check if point p is inside a plane.
Real crossProduct2D(const Point &point_a, const Point &point_b)
Compute the cross product of two vectors, provided as Point objects, which have nonzero components on...
bool intersectSegmentWithCutLine(const Point &segment_point1, const Point &segment_point2, const std::pair< Point, Point > &cutting_line_points, const Real &cutting_line_fraction, Real &segment_intersection_fraction)
Determine whether a line segment is intersected by a cutting line, and compute the fraction along tha...
bool r8vec_eq(int n, double a1[], double a2[])
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void stdQuadr2D(unsigned int nen, unsigned int iord, std::vector< std::vector< Real >> &sg2)
void normalizePoint(EFAPoint &p)
void dunavant_rule2(const Real *wts, const Real *a, const Real *b, const unsigned int *permutation_ids, unsigned int n_wts, std::vector< Point > &points, std::vector< Real > &weights)
double r8vec_dot_product(int n, double a1[], double a2[])
bool isInsideEdge(const Point &p1, const Point &p2, const Point &p)
check if point is inside the straight edge p1-p2
double angle_rad_3d(double p1[3], double p2[3], double p3[3])
Real pointTriangleDistance(const Point &x0, const Point &x1, const Point &x2, const Point &x3, Point &xp, unsigned int ®ion)
Calculate the signed distance from a point to a triangle.
void r8vec_copy(int n, double a1[], double a2[])