DHART
Loading...
Searching...
No Matches
graph_utils.cpp File Reference
#include <graph_generator.h>
#include <HitStruct.h>
#include <Constants.h>
#include <Edge.h>
#include <embree_raytracer.h>
#include <ray_data.h>
#include <cassert>
+ Include dependency graph for graph_utils.cpp:

Go to the source code of this file.

Namespaces

namespace  HF
 Perform human scale analysis on 3D environments.
 
namespace  HF::GraphGenerator
 Generate a graph of accessible space from a given start point.
 

Functions

template<typename point_type >
Node HF::GraphGenerator::ToNode (const point_type &ct)
 Convert a point_type to a node. More...
 
template<typename n1_type , typename n2_type >
real_t HF::GraphGenerator::DistanceTo (const n1_type &n1, const n2_type &n2)
 Calculate the distance between two nodes. More...
 
template<typename vector_type >
void HF::GraphGenerator::Normalize (vector_type &v)
 Normalize a vector. More...
 
template<typename vector_type >
vector_type HF::GraphGenerator::DirectionTo (const vector_type &n1, const vector_type &n2)
 Calculate the normalized direction from one node to another. More...
 
optional_real3 HF::GraphGenerator::ValidateStartPoint (RayTracer &RT, const real3 &start_point, const GraphParams &Params)
 Determine if the start point of the graph is over valid ground. More...
 
bool HF::GraphGenerator::CheckGeometryID (HIT_FLAG goal, int id, const GeometryFlagMap &geom_dict)
 Determine if a hit is against the geometry type specified. More...
 
optional_real3 HF::GraphGenerator::CheckRay (RayTracer &RT, const real3 &origin, const real3 &direction, real_t node_z_tolerance, HIT_FLAG flag=BOTH, const GeometryFlagMap &geometry_dict=GeometryFlagMap())
 Cast a ray and get the point of intersection if it connects. More...
 
std::set< std::pair< int, int > > HF::GraphGenerator::permutations (int limit)
 Calculate P(n,r) as an array with each unique permutaton of 2 values being a pair. More...
 
std::vector< pair > HF::GraphGenerator::CreateDirecs (int max_step_connections)
 Create a set of directions based on max_step_connections. More...
 
std::vector< graph_edge > HF::GraphGenerator::GetChildren (const real3 &parent, const std::vector< real3 > &possible_children, RayTracer &rt, const GraphParams &GP)
 Calculate all possible edges between parent and possible_children. More...
 
std::vector< real3 > HF::GraphGenerator::CheckChildren (const real3 &parent, const std::vector< real3 > &possible_children, RayTracer &rt, const GraphParams &params)
 Determine whether children are over valid ground, and and meet upstep/downstep requirements. More...
 
bool HF::GraphGenerator::OcclusionCheck (const real3 &parent, const real3 &child, RayTracer &RT)
 Determine if there is a valid line of sight between parent and child. More...
 
bool HF::GraphGenerator::CheckSlope (const real3 &parent, const real3 &child, const GraphParams &gp)
 Determine if the slope between parent and child is traversable according to the graph parameters. More...
 
HF::SpatialStructures::STEP HF::GraphGenerator::CheckConnection (const real3 &parent, const real3 &child, RayTracer &rt, const GraphParams &params)
 Determine what kind of step (if any) is between parent and child. More...
 
std::vector< real3 > HF::GraphGenerator::GeneratePotentialChildren (const real3 &parent, const std::vector< pair > &direcs, const real3 &spacing, const GraphParams &gp)
 Populare out_children with a potential child position for every direction in directions. More...
 

Variables

static const real3 HF::GraphGenerator::down = { 0,0,-1 }
 Constant used as a direction for downwards raycasts. More...
 
static const vector< pair > HF::GraphGenerator::init_directs