Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
GeomUtil.hpp File Reference
#include "moab/CartVect.hpp"
#include <cmath>
+ Include dependency graph for GeomUtil.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  moab
 

Class representing axis-aligned bounding box.


namespace  moab::GeomUtil

Enumerations

enum  moab::GeomUtil::intersection_type {
  moab::GeomUtil::NONE = 0, moab::GeomUtil::INTERIOR, moab::GeomUtil::NODE0, moab::GeomUtil::NODE1,
  moab::GeomUtil::NODE2, moab::GeomUtil::EDGE0, moab::GeomUtil::EDGE1, moab::GeomUtil::EDGE2
}
 Plücker test for intersection between a ray and a triangle. More...

Functions

bool moab::GeomUtil::segment_box_intersect (CartVect box_min, CartVect box_max, const CartVect &seg_pt, const CartVect &seg_unit_dir, double &seg_start, double &seg_end)
bool moab::GeomUtil::ray_tri_intersect (const CartVect vertices[3], const CartVect &ray_point, const CartVect &ray_unit_direction, double &t_out, const double *ray_length=0)
 Test for intersection between a ray and a triangle.
bool moab::GeomUtil::plucker_ray_tri_intersect (const CartVect vertices[3], const CartVect &origin, const CartVect &direction, double &dist_out, const double *nonneg_ray_len, const double *neg_ray_len, const int *orientation, intersection_type *type)
double moab::GeomUtil::plucker_edge_test (const CartVect &vertexa, const CartVect &vertexb, const CartVect &ray, const CartVect &ray_normal)
bool moab::GeomUtil::ray_box_intersect (const CartVect &box_min, const CartVect &box_max, const CartVect &ray_pt, const CartVect &ray_dir, double &t_enter, double &t_exit)
 Find range of overlap between ray and axis-aligned box.
bool moab::GeomUtil::box_plane_overlap (const CartVect &plane_normal, double plane_coeff, CartVect box_min_corner, CartVect box_max_corner)
 Test if plane intersects axis-aligned box.
bool moab::GeomUtil::box_tri_overlap (const CartVect triangle_corners[3], const CartVect &box_min_corner, const CartVect &box_max_corner, double tolerance)
 Test if triangle intersects axis-aligned box.
bool moab::GeomUtil::box_tri_overlap (const CartVect triangle_corners[3], const CartVect &box_center, const CartVect &box_half_dims)
 Test if triangle intersects axis-aligned box.
bool moab::GeomUtil::box_point_overlap (const CartVect &box_min_corner, const CartVect &box_max_corner, const CartVect &point, double tolerance)
bool moab::GeomUtil::box_elem_overlap (const CartVect *elem_corners, EntityType elem_type, const CartVect &box_center, const CartVect &box_half_dims, int nodecount=0)
 Test if the specified element intersects an axis-aligned box.
bool moab::GeomUtil::box_linear_elem_overlap (const CartVect *elem_corners, EntityType elem_type, const CartVect &box_center, const CartVect &box_half_dims)
 Test if the specified element intersects an axis-aligned box.
bool moab::GeomUtil::box_linear_elem_overlap (const CartVect *elem_corners, EntityType elem_type, const CartVect &box_half_dims)
 Test if the specified element intersects an axis-aligned box.
void moab::GeomUtil::closest_location_on_box (const CartVect &min, const CartVect &max, const CartVect &point, CartVect &closest)
void moab::GeomUtil::closest_location_on_tri (const CartVect &location, const CartVect *vertices, CartVect &closest_out)
 find closest location on triangle
void moab::GeomUtil::closest_location_on_polygon (const CartVect &location, const CartVect *vertices, int num_vertices, CartVect &closest_out)
 find closest location on polygon
void moab::GeomUtil::closest_location_on_tri (const CartVect &location, const CartVect *vertices, double tolerance, CartVect &closest_out, int &closest_topo)
 find closest topological location on triangle
bool moab::GeomUtil::box_hex_overlap (const CartVect hexv[8], const CartVect &box_center, const CartVect &box_dims)
bool moab::GeomUtil::box_tet_overlap (const CartVect tet_corners[4], const CartVect &box_center, const CartVect &box_dims)
bool moab::GeomUtil::boxes_overlap (const CartVect &box_min1, const CartVect &box_max1, const CartVect &box_min2, const CartVect &box_max2, double tolerance)
bool moab::GeomUtil::bounding_boxes_overlap (const CartVect *list1, int num1, const CartVect *list2, int num2, double tolerance)
bool moab::GeomUtil::bounding_boxes_overlap_2d (const double *list1, int num1, const double *list2, int num2, double tolerance)
bool moab::GeomUtil::point_in_trilinear_hex (const CartVect *hex, const CartVect &xyz, double etol)
bool moab::GeomUtil::nat_coords_trilinear_hex (const CartVect *corner_coords, const CartVect &x, CartVect &xi, double tol)

Variables

const intersection_type moab::GeomUtil::type_list [] = { INTERIOR, EDGE0, EDGE1, NODE1, EDGE2, NODE0, NODE2 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines