MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include "moab/CartVect.hpp"
#include "moab/CN.hpp"
#include "moab/GeomUtil.hpp"
#include "moab/Matrix3.hpp"
#include "moab/Util.hpp"
#include <cmath>
#include <algorithm>
#include <cassert>
#include <iostream>
#include <limits>
Go to the source code of this file.
Classes | |
class | moab::GeomUtil::VolMap |
Class representing a 3-D mapping function (e.g. shape function for volume element) More... | |
class | moab::GeomUtil::LinearHexMap |
Shape function for trilinear hexahedron. More... | |
Namespaces | |
namespace | moab |
Class representing axis-aligned bounding box. | |
namespace | moab::GeomUtil |
Defines | |
#define | EXIT_EARLY |
#define | CHECK_RANGE(A, B, R) |
Functions | |
static void | moab::GeomUtil::min_max_3 (double a, double b, double c, double &min, double &max) |
static double | moab::GeomUtil::dot_abs (const CartVect &u, const CartVect &v) |
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::first (const CartVect &a, const CartVect &b) |
double | moab::GeomUtil::plucker_edge_test (const CartVect &vertexa, const CartVect &vertexb, const CartVect &ray, const CartVect &ray_normal) |
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) |
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::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) |
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_center, const CartVect &box_half_dims) |
Test if triangle 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_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. | |
static CartVect | moab::GeomUtil::quad_norm (const CartVect &v1, const CartVect &v2, const CartVect &v3, const CartVect &v4) |
static CartVect | moab::GeomUtil::tri_norm (const CartVect &v1, const CartVect &v2, const CartVect &v3) |
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. | |
bool | moab::GeomUtil::box_hex_overlap (const CartVect *elem_corners, const CartVect ¢er, const CartVect &dims) |
static bool | moab::GeomUtil::box_tet_overlap_edge (const CartVect &dims, const CartVect &edge, const CartVect &ve, const CartVect &v1, const CartVect &v2) |
bool | moab::GeomUtil::box_tet_overlap (const CartVect *corners_in, const CartVect ¢er, const CartVect &dims) |
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_tri (const CartVect &location, const CartVect *vertices, double tolerance, CartVect &closest_out, int &closest_topo) |
find closest topological 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_box (const CartVect &min, const CartVect &max, const CartVect &point, CartVect &closest) |
bool | moab::GeomUtil::box_point_overlap (const CartVect &box_min_corner, const CartVect &box_max_corner, const CartVect &point, double tolerance) |
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::nat_coords_trilinear_hex (const CartVect *corner_coords, const CartVect &x, CartVect &xi, double tol) |
bool | moab::GeomUtil::point_in_trilinear_hex (const CartVect *hex, const CartVect &xyz, double etol) |
#define CHECK_RANGE | ( | A, | |
B, | |||
R | |||
) |
if( ( A ) < ( B ) ) \ { \ if( ( A ) > ( R ) || ( B ) < -( R ) ) return false; \ } \ else if( ( B ) > ( R ) || ( A ) < -( R ) ) \ return false
Definition at line 408 of file GeomUtil.cpp.
Referenced by moab::GeomUtil::box_tri_overlap().
#define EXIT_EARLY |
if( type ) *type = NONE; \ return false;
Definition at line 176 of file GeomUtil.cpp.
Referenced by moab::GeomUtil::plucker_ray_tri_intersect().