OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Geometry.hpp File Reference
#include "libslic3r.h"
#include "BoundingBox.hpp"
#include "ExPolygon.hpp"
#include "Point.hpp"
#include "Polygon.hpp"
#include "Polyline.hpp"
#include <cassert>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <cereal/access.hpp>
#include <cstdint>
#include <cstddef>
#include <cstdlib>
#include <utility>
#include <vector>
#include <type_traits>
#include <string>
#include <cmath>
Include dependency graph for Geometry.hpp:

Go to the source code of this file.

Classes

class  Slic3r::Geometry::Transformation
struct  Slic3r::Geometry::TransformationSVD

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  Slic3r::Geometry

Enumerations

enum  Slic3r::Geometry::Orientation { Slic3r::Geometry::ORIENTATION_CCW = 1 , Slic3r::Geometry::ORIENTATION_CW = -1 , Slic3r::Geometry::ORIENTATION_COLINEAR = 0 }

Functions

static Orientation Slic3r::Geometry::orient (const Point &a, const Point &b, const Point &c)
static bool Slic3r::Geometry::is_ccw (const Polygon &poly)
bool Slic3r::Geometry::ray_ray_intersection (const Vec2d &p1, const Vec2d &v1, const Vec2d &p2, const Vec2d &v2, Vec2d &res)
bool Slic3r::Geometry::segment_segment_intersection (const Vec2d &p1, const Vec2d &v1, const Vec2d &p2, const Vec2d &v2, Vec2d &res)
bool Slic3r::Geometry::segments_intersect (const Slic3r::Point &ip1, const Slic3r::Point &ip2, const Slic3r::Point &jp1, const Slic3r::Point &jp2)
template<typename T>
T Slic3r::Geometry::foot_pt (const T &line_pt, const T &line_dir, const T &pt)
Vec2d Slic3r::Geometry::foot_pt (const Line &iline, const Point &ipt)
template<typename T>
auto Slic3r::Geometry::ray_point_distance_squared (const T &ray_pt, const T &ray_dir, const T &pt)
template<typename T>
auto Slic3r::Geometry::ray_point_distance (const T &ray_pt, const T &ray_dir, const T &pt)
double Slic3r::Geometry::ray_point_distance_squared (const Line &iline, const Point &ipt)
double Slic3r::Geometry::ray_point_distance (const Line &iline, const Point &ipt)
template<typename T>
bool Slic3r::Geometry::liang_barsky_line_clipping_interval (const Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x0, const Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &v, const BoundingBoxBase< Eigen::Matrix< T, 2, 1, Eigen::DontAlign > > &bbox, std::pair< double, double > &out_interval)
template<typename T>
bool Slic3r::Geometry::liang_barsky_line_clipping (Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x0, Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x1, const BoundingBoxBase< Eigen::Matrix< T, 2, 1, Eigen::DontAlign > > &bbox)
template<typename T>
bool Slic3r::Geometry::liang_barsky_line_clipping (const Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x0src, const Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x1src, const BoundingBoxBase< Eigen::Matrix< T, 2, 1, Eigen::DontAlign > > &bbox, Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x0clip, Eigen::Matrix< T, 2, 1, Eigen::DontAlign > &x1clip)
bool Slic3r::Geometry::directions_parallel (double angle1, double angle2, double max_diff)
bool Slic3r::Geometry::directions_perpendicular (double angle1, double angle2, double max_diff)
template<class T>
bool Slic3r::Geometry::contains (const std::vector< T > &vector, const Point &point)
template<typename T>
T Slic3r::Geometry::rad2deg (T angle)
double Slic3r::Geometry::rad2deg_dir (double angle)
template<typename T>
constexpr T Slic3r::Geometry::deg2rad (const T angle)
template<typename T>
T Slic3r::Geometry::angle_to_0_2PI (T angle)
template<typename T>
void Slic3r::Geometry::to_range_pi_pi (T &angle)
void Slic3r::Geometry::simplify_polygons (const Polygons &polygons, double tolerance, Polygons *retval)
double Slic3r::Geometry::linint (double value, double oldmin, double oldmax, double newmin, double newmax)
bool Slic3r::Geometry::arrange (size_t total_parts, const Vec2d &part_size, coordf_t dist, const BoundingBoxf *bb, Pointfs &positions)
void Slic3r::Geometry::assemble_transform (Transform3d &transform, const Vec3d &translation, const Vec3d &rotation, const Vec3d &scale, const Vec3d &mirror)
Transform3d Slic3r::Geometry::assemble_transform (const Vec3d &translation, const Vec3d &rotation, const Vec3d &scale, const Vec3d &mirror)
void Slic3r::Geometry::assemble_transform (Transform3d &transform, const Transform3d &translation, const Transform3d &rotation, const Transform3d &scale, const Transform3d &mirror)
Transform3d Slic3r::Geometry::assemble_transform (const Transform3d &translation, const Transform3d &rotation, const Transform3d &scale, const Transform3d &mirror)
void Slic3r::Geometry::translation_transform (Transform3d &transform, const Vec3d &translation)
Transform3d Slic3r::Geometry::translation_transform (const Vec3d &translation)
void Slic3r::Geometry::rotation_transform (Transform3d &transform, const Vec3d &rotation)
Transform3d Slic3r::Geometry::rotation_transform (const Vec3d &rotation)
void Slic3r::Geometry::scale_transform (Transform3d &transform, double scale)
void Slic3r::Geometry::scale_transform (Transform3d &transform, const Vec3d &scale)
Transform3d Slic3r::Geometry::scale_transform (double scale)
Transform3d Slic3r::Geometry::scale_transform (const Vec3d &scale)
Vec3d Slic3r::Geometry::extract_euler_angles (const Eigen::Matrix< double, 3, 3, Eigen::DontAlign > &rotation_matrix)
Vec3d Slic3r::Geometry::extract_euler_angles (const Transform3d &transform)
void Slic3r::Geometry::rotation_from_two_vectors (Vec3d from, Vec3d to, Vec3d &rotation_axis, double &phi, Matrix3d *rotation_matrix)
Transform3d Slic3r::Geometry::transform3d_from_string (const std::string &transform_str)
Eigen::Quaterniond Slic3r::Geometry::rotation_xyz_diff (const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to)
double Slic3r::Geometry::rotation_diff_z (const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to)
bool Slic3r::Geometry::is_rotation_ninety_degrees (double a)
bool Slic3r::Geometry::is_rotation_ninety_degrees (const Vec3d &rotation)
Transformation Slic3r::Geometry::mat_around_a_point_rotate (const Transformation &InMat, const Vec3d &pt, const Vec3d &axis, float rotate_theta_radian)
Transformation Slic3r::Geometry::generate_transform (const Vec3d &x_dir, const Vec3d &y_dir, const Vec3d &z_dir, const Vec3d &origin)
bool Slic3r::Geometry::is_point_inside_polygon_corner (const Point &a, const Point &b, const Point &c, const Point &query_point)