BRL-CAD
Loading...
Searching...
No Matches
#include "common.h"
#include "brep/defines.h"
#include "brep/surfacetree.h"
#include <memory>
Include dependency graph for pullback.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PullbackStatistics
 
struct  pbc_data
 
class  PullbackContext
 

Namespaces

namespace  brlcad
 

Typedefs

typedef struct pbc_data PBCData
 
typedef std::shared_ptr< PullbackWorkBudgetPullbackWorkBudgetHandle
 
typedef bool(* PullbackCancellationCallback) (void *context)
 

Enumerations

enum class  PullbackFailureReason { None , Cancelled , ProjectionFailed , SurfaceDistanceExceeded }
 

Functions

int IsAtSingularity (const ON_Surface *surf, double u, double v, double tol=1e-6)
 
int IsAtSingularity (const ON_Surface *surf, const ON_2dPoint &pt, double tol=1e-6)
 
int IsAtSeam (const ON_Surface *surf, int dir, double u, double v, double tol=0.0)
 
int IsAtSeam (const ON_Surface *surf, double u, double v, double tol=0.0)
 
int IsAtSeam (const ON_Surface *surf, int dir, const ON_2dPoint &pt, double tol=0.0)
 
int IsAtSeam (const ON_Surface *surf, const ON_2dPoint &pt, double tol=0.0)
 
ON_2dPoint UnwrapUVPoint (const ON_Surface *surf, const ON_2dPoint &pt, double tol=0.0)
 
double DistToNearestClosedSeam (const ON_Surface *surf, const ON_2dPoint &pt)
 
void SwapUVSeamPoint (const ON_Surface *surf, ON_2dPoint &p, int hint=3)
 
void ForceToClosestSeam (const ON_Surface *surf, ON_2dPoint &pt, double tol=0.0)
 
bool Find3DCurveSeamCrossing (PBCData &data, double t0, double t1, double offset, double &seam_t, ON_2dPoint &from, ON_2dPoint &to, double tol=0.0, double same_point_tol=BREP_SAME_POINT_TOLERANCE, double within_distance_tol=BREP_EDGE_MISS_TOLERANCE)
 
bool FindTrimSeamCrossing (const ON_BrepTrim &trim, double t0, double t1, double &seam_t, ON_2dPoint &from, ON_2dPoint &to, double tol=0.0)
 
bool surface_GetClosestPoint3dFirstOrder (const ON_Surface *surf, const ON_3dPoint &p, ON_2dPoint &p2d, ON_3dPoint &p3d, double &current_distance, int quadrant=0, double same_point_tol=BREP_SAME_POINT_TOLERANCE, double within_distance_tol=BREP_EDGE_MISS_TOLERANCE)
 
bool trim_GetClosestPoint3dFirstOrder (const ON_BrepTrim &trim, const ON_3dPoint &p, ON_2dPoint &p2d, double &t, double &distance, const ON_Interval *interval, double same_point_tol=BREP_SAME_POINT_TOLERANCE, double within_distance_tol=BREP_EDGE_MISS_TOLERANCE)
 
bool ConsecutivePointsCrossClosedSeam (const ON_Surface *surf, const ON_2dPoint &pt, const ON_2dPoint &prev_pt, int &udir, int &vdir, double tol=1e-6)
 
PBCDatapullback_samples (const ON_Surface *surf, const ON_Curve *curve, double tolerance=1.0e-6, double flatness=1.0e-3, double same_point_tol=BREP_SAME_POINT_TOLERANCE, double within_distance_tol=BREP_EDGE_MISS_TOLERANCE, const std::shared_ptr< brlcad::PullbackContext > &context=std::shared_ptr< brlcad::PullbackContext >(), bool stop_after_first_rejection=false)
 
bool check_pullback_data (std::list< PBCData * > &pbcs)
 
int check_pullback_singularity_bridge (const ON_Surface *surf, const ON_2dPoint &p1, const ON_2dPoint &p2)
 
PullbackWorkBudgetHandle CreatePullbackWorkBudget (uint64_t maximum_work_milliseconds)
 
PullbackWorkBudgetHandle CurrentPullbackWorkBudget ()
 
void SetPullbackWorkLimit (PullbackCancellationCallback cancellation_callback, void *cancellation_context, uint64_t maximum_work_milliseconds, uint64_t maximum_stall_milliseconds=0)
 
void SetPullbackWorkLimit (PullbackCancellationCallback cancellation_callback, void *cancellation_context, const PullbackWorkBudgetHandle &work_budget, uint64_t maximum_stall_milliseconds=0)
 
void ClearPullbackWorkLimit ()
 
bool PullbackWorkCancelled ()
 
bool PullbackWorkDeadlineExpired ()
 
bool PullbackWorkStalled ()
 
void PullbackWorkProgress (uint64_t operations=1)
 
void PropagatePullbackWorkStop (bool deadline_expired, bool stalled)
 
uint64_t PullbackWorkRemainingMilliseconds ()
 
bool surface_GetClosestPoint3dFirstOrder (PullbackContext &context, const ON_Surface *surf, const ON_3dPoint &point, ON_2dPoint &surface_point, ON_3dPoint &lifted_point, double &distance, int quadrant=0, double same_point_tol=BREP_SAME_POINT_TOLERANCE, double within_distance_tol=BREP_EDGE_MISS_TOLERANCE)
 
bool get_closest_point (ON_2dPoint &outpt, const ON_BrepFace &face, const ON_3dPoint &point, const SurfaceTree *tree=NULL, double tolerance=BREP_FCP_ROOT_EPSILON)
 
ON_Curvepullback_curve (ON_BrepFace *face, const ON_Curve *curve, SurfaceTree *tree=NULL, double tolerance=BREP_FCP_ROOT_EPSILON, double flatness=1.0e-3)
 
bool ON_NurbsCurve_GetClosestPoint (double *t, const ON_NurbsCurve *nc, const ON_3dPoint &p, double maximum_distance=0.0, const ON_Interval *sub_domain=NULL)
 
bool ON_TrimCurve_GetClosestPoint (double *t, const ON_BrepTrim *trim, const ON_3dPoint &p, double maximum_distance=0.0, const ON_Interval *sub_domain=NULL)
 
bool ON_NurbsCurve_ClosestPointToLineSegment (double *dist, double *t, const ON_NurbsCurve *nc, const ON_Line &l, double maximum_distance=0.0, const ON_Interval *subdomain=NULL)