|
VisiLibity v1 Source Code 1.0
|
#include "visilibity.hpp"#include <cmath>#include <queue>#include <set>#include <vector>#include <algorithm>#include <cassert>#include <cstdlib>#include <cstring>#include <ctime>#include <fstream>#include <iostream>#include <list>#include <string>Namespaces | |
| namespace | VisiLibity |
| VisiLibity's sole namespace. | |
Functions | |
| double | VisiLibity::uniform_random_sample (double lower_bound, double upper_bound) |
| get a uniform random sample from an (inclusive) interval on the real line More... | |
| bool | VisiLibity::operator== (const Point &point1, const Point &point2) |
| True iff Points' coordinates are identical. More... | |
| bool | VisiLibity::operator!= (const Point &point1, const Point &point2) |
| True iff Points' coordinates are not identical. | |
| bool | VisiLibity::operator< (const Point &point1, const Point &point2) |
| compare lexicographic order of points More... | |
| bool | VisiLibity::operator> (const Point &point1, const Point &point2) |
| compare lexicographic order of points More... | |
| bool | VisiLibity::operator>= (const Point &point1, const Point &point2) |
| compare lexicographic order of points More... | |
| bool | VisiLibity::operator<= (const Point &point1, const Point &point2) |
| compare lexicographic order of points More... | |
| Point | VisiLibity::operator+ (const Point &point1, const Point &point2) |
| vector addition of Points | |
| Point | VisiLibity::operator- (const Point &point1, const Point &point2) |
| vector subtraction of Points | |
| Point | VisiLibity::operator* (const Point &point1, const Point &point2) |
| Point | VisiLibity::operator* (double scalar, const Point &point2) |
| simple scaling treats the Point as a vector | |
| Point | VisiLibity::operator* (const Point &point1, double scalar) |
| simple scaling treats the Point as a vector | |
| double | VisiLibity::cross (const Point &point1, const Point &point2) |
| cross product (signed) magnitude treats the Points as vectors More... | |
| double | VisiLibity::distance (const Point &point1, const Point &point2) |
| Euclidean distance between Points. More... | |
| double | VisiLibity::distance (const Point &point_temp, const Line_Segment &line_segment_temp) |
| Euclidean distance between a Point and a Line_Segment. More... | |
| double | VisiLibity::distance (const Line_Segment &line_segment_temp, const Point &point_temp) |
| Euclidean distance between a Point and a Line_Segment. More... | |
| double | VisiLibity::distance (const Point &point_temp, const Ray &ray_temp) |
| Euclidean distance between a Point and a Ray. More... | |
| double | VisiLibity::distance (const Ray &ray_temp, const Point &point_temp) |
| Euclidean distance between a Point and a Ray. More... | |
| double | VisiLibity::distance (const Point &point_temp, const Polyline &polyline_temp) |
| Euclidean distance between a Point and a Polyline. More... | |
| double | VisiLibity::distance (const Polyline &polyline_temp, const Point &point_temp) |
| Euclidean distance between a Point and a Polyline. More... | |
| double | VisiLibity::boundary_distance (const Point &point_temp, const Polygon &polygon_temp) |
| Euclidean distance between a Point and a Polygon's boundary. More... | |
| double | VisiLibity::boundary_distance (const Polygon &polygon_temp, const Point &point_temp) |
| Euclidean distance between a Point and a Polygon's boundary. More... | |
| double | VisiLibity::boundary_distance (const Point &point_temp, const Environment &environment_temp) |
| Euclidean distance between a Point and a Environment's boundary. More... | |
| double | VisiLibity::boundary_distance (const Environment &environment_temp, const Point &point_temp) |
| Euclidean distance between a Point and a Environment's boundary. More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Point &point_temp) |
| print a Point | |
| bool | VisiLibity::operator== (const Line_Segment &line_segment1, const Line_Segment &line_segment2) |
| true iff endpoint coordinates are exactly equal, but false if either Line_Segment has size 0 More... | |
| bool | VisiLibity::operator!= (const Line_Segment &line_segment1, const Line_Segment &line_segment2) |
| true iff endpoint coordinates are not == | |
| bool | VisiLibity::equivalent (Line_Segment line_segment1, Line_Segment line_segment2, double epsilon=0) |
| true iff line segments' endpoints match up w/in a (closed) epsilon ball of each other, but false if either Line_Segment has size 0 More... | |
| double | VisiLibity::distance (const Line_Segment &line_segment1, const Line_Segment &line_segment2) |
| Euclidean distance between Line_Segments. More... | |
| double | VisiLibity::boundary_distance (const Line_Segment &line_segment, const Polygon &polygon) |
| Euclidean distance between a Line_Segment and the boundary of a Polygon. More... | |
| double | VisiLibity::boundary_distance (const Polygon &polygon, const Line_Segment &line_segment) |
| Euclidean distance between a Line_Segment and the boundary of a Polygon. More... | |
| bool | VisiLibity::intersect (const Line_Segment &line_segment1, const Line_Segment &line_segment2, double epsilon=0.0) |
| true iff the Euclidean distance between Line_Segments is no greater than epsilon, false if either line segment has size 0 More... | |
| bool | VisiLibity::intersect_proper (const Line_Segment &line_segment1, const Line_Segment &line_segment2, double epsilon=0.0) |
| true iff line segments intersect properly w/in epsilon, false if either line segment has size 0 More... | |
| Line_Segment | VisiLibity::intersection (const Line_Segment &line_segment1, const Line_Segment &line_segment2, double epsilon=0.0) |
| intersection of Line_Segments More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Line_Segment &line_segment_temp) |
| print a Line_Segment | |
| bool | VisiLibity::operator== (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| bool | VisiLibity::operator!= (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| bool | VisiLibity::operator> (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| bool | VisiLibity::operator< (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| bool | VisiLibity::operator>= (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| bool | VisiLibity::operator<= (const Angle &angle1, const Angle &angle2) |
| compare angle radians | |
| Angle | VisiLibity::operator+ (const Angle &angle1, const Angle &angle2) |
| add angles' radians and mod into [0, 2*M_PI) | |
| Angle | VisiLibity::operator- (const Angle &angle1, const Angle &angle2) |
| subtract angles' radians and mod into [0, 2*M_PI) | |
| double | VisiLibity::geodesic_distance (const Angle &angle1, const Angle &angle2) |
| geodesic distance in radians between Angles More... | |
| double | VisiLibity::geodesic_direction (const Angle &angle1, const Angle &angle2) |
| 1.0 => geodesic path from angle1 to angle2 is couterclockwise, -1.0 => clockwise More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Angle &angle_temp) |
| print Angle | |
| bool | VisiLibity::operator== (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| compare member data More... | |
| bool | VisiLibity::operator!= (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| bool | VisiLibity::operator> (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| compare according to polar lexicographic order (smaller bearing, then smaller range) More... | |
| bool | VisiLibity::operator< (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| compare according to polar lexicographic order (smaller bearing, then smaller range) More... | |
| bool | VisiLibity::operator>= (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| compare according to polar lexicographic order (smaller bearing, then smaller range) More... | |
| bool | VisiLibity::operator<= (const Polar_Point &polar_point1, const Polar_Point &polar_point2) |
| compare according to polar lexicographic order (smaller bearing, then smaller range) More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Polar_Point &polar_point_temp) |
| print Polar_Point | |
| bool | VisiLibity::operator== (const Ray &ray1, const Ray &ray2) |
| compare member data More... | |
| bool | VisiLibity::operator!= (const Ray &ray1, const Ray &ray2) |
| compare member data More... | |
| Line_Segment | VisiLibity::intersection (const Ray ray_temp, const Line_Segment &line_segment_temp, double epsilon=0.0) |
| compute the intersection of a Line_Segment with a Ray More... | |
| Line_Segment | VisiLibity::intersection (const Line_Segment &line_segment_temp, const Ray &ray_temp, double epsilon=0.0) |
| compute the intersection of a Line_Segment with a Ray More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Polyline &polyline_temp) |
| bool | VisiLibity::operator== (Polygon polygon1, Polygon polygon2) |
| true iff vertex lists are identical, but false if either Polygon has size 0 More... | |
| bool | VisiLibity::operator!= (Polygon polygon1, Polygon polygon2) |
| bool | VisiLibity::equivalent (Polygon polygon1, Polygon polygon2, double epsilon=0.0) |
| true iff the Polygon's vertices match up w/in a (closed) epsilon ball of each other, but false if either Polygon has size 0 More... | |
| double | VisiLibity::boundary_distance (const Polygon &polygon1, const Polygon &polygon2) |
| Euclidean distance between Polygons' boundaries. More... | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Polygon &polygon_temp) |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Environment &environment_temp) |
| printing Environment | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Guards &guards) |
| print Guards | |
| std::ostream & | VisiLibity::operator<< (std::ostream &outs, const Visibility_Graph &visibility_graph) |
| print Visibility_Graph adjacency matrix | |
This file is part of VisiLibity v1.
VisiLibity v1 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
VisiLibity v1 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with VisiLibity v1. If not, see http://www.gnu.org/licenses/.