bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
kernel::numerics Namespace Reference

Classes

class  FVDoFManager
 
class  LineMesh
 
class  Mesh
 
class  VtkMeshFileWriter
 Write the given Mesh object in a VTK format. More...
 
struct  VtkMeshMeshCellOptions
 
class  VtkWriter
 

Functions

const GeomPoint< 2 > find_closest_point_to (const LineMesh< 2 > &mesh, const GeomPoint< 2 > &p, uint_t nsamples, real_t tol)
 Find the closest point on the given LineMesh The function loops over the elements in the mesh and uses samples the EdgeElement using the given number of sampling points plus two as it accounts for the vertices as well. From the calculated points it picks the one with the smallest distance.
 
const std::vector< GeomPoint< 2 > > find_intersections (const LineMesh< 2 > &mesh, const Circle &circle)
 Returns the intersection points of the Circle with the elements of the LineMesh. The algorithn implemented is the one described here https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm/1084899#1084899%E2%80%8B.
 

Function Documentation

◆ find_closest_point_to()

const GeomPoint< 2 > kernel::numerics::find_closest_point_to ( const LineMesh< 2 > &  mesh,
const GeomPoint< 2 > &  p,
uint_t  nsamples,
real_t  tol 
)

Find the closest point on the given LineMesh The function loops over the elements in the mesh and uses samples the EdgeElement using the given number of sampling points plus two as it accounts for the vertices as well. From the calculated points it picks the one with the smallest distance.

...plus 2 because we also account for the end poinst

the first point is the staring vertex

we have line that is perpendicular to the x-axis and we need to act differently to avoid infinity

calculate the coefficients of the line connecting the two vertices

add the ending vertex of the line segment

loop over the points and find the point with the minimum distance

◆ find_intersections()

const std::vector< GeomPoint< 2 > > kernel::numerics::find_intersections ( const LineMesh< 2 > &  mesh,
const Circle &  circle 
)

Returns the intersection points of the Circle with the elements of the LineMesh. The algorithn implemented is the one described here https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm/1084899#1084899%E2%80%8B.

thats an intersection point