DHART
Loading...
Searching...
No Matches
embree_raytracer.cpp File Reference

Contains implementation for the EmbreeRayTracer More...

#include <embree_raytracer.h>
#include <corecrt_math_defines.h>
#include <functional>
#include <iostream>
#include <thread>
#include <robin_hood.h>
#include <meshinfo.h>
#include <RayRequest.h>
#include <HFExceptions.h>
+ Include dependency graph for embree_raytracer.cpp:

Go to the source code of this file.

Classes

struct  HF::RayTracer::Vertex
 A vertex. Used internally in Embree. More...
 
struct  HF::RayTracer::Triangle
 A triangle. Used internally in Embree. More...
 

Namespaces

namespace  HF
 Perform human scale analysis on 3D environments.
 
namespace  HF::RayTracer
 Cast rays to determine if and where they intersect geometry.
 

Functions

template<typename numeric1 , typename numeric2 , typename dist_type = float>
RTCRayHit HF::RayTracer::ConstructHit (numeric1 x, numeric1 y, numeric1 z, numeric2 dx, numeric2 dy, numeric2 dz, dist_type distance=-1.0f, int mesh_id=-1)
 
template<typename numeric1 , typename numeric2 , typename dist_type = float>
RTCRay HF::RayTracer::ConstructRay (numeric1 x, numeric1 y, numeric1 z, numeric2 dx, numeric2 dy, numeric2 dz, dist_type distance=-1.0f, int mesh_id=-1)
 
RTCError HF::RayTracer::CheckState (RTCDevice &device)
 Check an embree device for errors. More...
 
void HF::RayTracer::vectorsToBuffers (const std::vector< std::array< float, 3 > > &vertices, std::vector< Triangle > &Tribuffer, std::vector< Vertex > &Vbuffer)
 Index a list of verticies and place them into a triangle and vertex buffer. More...
 
void HF::RayTracer::buffersToStructs (std::vector< float > &in_vertices, std::vector< int > &in_indices, std::vector< Vertex > &out_vertices, std::vector< Triangle > &out_triangles)
 Package raw arrays of floats and indices in buffers to the required Embree types. More...
 
Vector3D HF::RayTracer::cross (const Vector3D &x, const Vector3D &y)
 
double HF::RayTracer::dot (const Vector3D &v1, const Vector3D &v2)
 
Vector3D HF::RayTracer::InvertVector (const Vector3D &V)
 
double HF::RayTracer::RayTriangleIntersection (const Vector3D &origin, const Vector3D &direction, const Vector3D &v1, const Vector3D &v2, const Vector3D &v3)
 Determine the distance between a ray's origin and it's point of intersection with a triangle. More...
 
Vector3D HF::RayTracer::GetPointFromBuffer (int index, Vertex *buffer)
 

Detailed Description

Contains implementation for the EmbreeRayTracer

Author
TBA
Date
26 Jun 2020

Definition in file embree_raytracer.cpp.


Class Documentation

◆ HF::RayTracer::Vertex

struct HF::RayTracer::Vertex

A vertex. Used internally in Embree.

Definition at line 77 of file embree_raytracer.cpp.

+ Collaboration diagram for HF::RayTracer::Vertex:
Class Members
float x
float y
float z

◆ HF::RayTracer::Triangle

struct HF::RayTracer::Triangle

A triangle. Used internally in Embree.

Definition at line 82 of file embree_raytracer.cpp.

+ Collaboration diagram for HF::RayTracer::Triangle:
Class Members
int v0
int v1
int v2