Classes | |
class | ApproxCurve |
This class can generate a B-spline curve that approximates a set of points for a given accuracy. More... | |
class | ApproxSurf |
This class can generate a B-spline surface that approximates a set of points for a given accuracy. More... | |
class | Array |
Compile-time sized array. More... | |
class | BaryCoordSystem |
Encapsulates a barycentric coordinatesystem. More... | |
class | BaryCoordSystemTriangle3D |
A barycentric coordinate system for a triangle (2-manifold) embedded in 3D. More... | |
class | BoundedSurface |
The class representing trimmed surfaces in Go. More... | |
class | BoundingBox |
Axis-aligned bounding box. More... | |
class | Fun2Fun |
Brief description. More... | |
class | BsplineBasis |
Class representing a B-spline basis of a spline space. More... | |
class | CompositeBox |
Composite of two bounding boxes. More... | |
class | CompositeSurface |
struct | sideConstraint |
Struct defining linear side constraints between control points in a surface. More... | |
struct | sideConstraintSet |
Struct defining linear side constraints between control points in a set of surfaces. More... | |
class | CoordinateSystem |
Defines a Cartesian coordinate system. More... | |
class | CPUclock |
A class for measuring CPU time in programs. More... | |
class | CrossTangentOffset |
This curve represent an offset curve from a given space curve, along a direction obtained by blending two 'cross-tangent curves', and with an offset distance which is a linear function interpolating the cross-tangent length at the start and end of the curve. More... | |
class | CrossTanOffDist |
This class defines an evaluator-based offset-curve. More... | |
class | CurveBoundedDomain |
A 2D parameter domain represented by its boundaries. More... | |
class | CurveLoop |
CurveLoop represents a closed loop defined by the composition of a set of curves. More... | |
class | CurveOnSurface |
Missing doxygen documentation class description. More... | |
class | DirectionCone |
Class representing a direction cone in Euclidian N-space The direction cone is characterised by a central direction and an angle 'alpha'. More... | |
class | Domain |
Abstract base class representing a 2D parameter domain. More... | |
class | EvalCurve |
This is the abstract base class of a curve type that can be evaluated. More... | |
class | EvalCurveSet |
This abstract class provides an interface to a set of curves that can be evaluated. More... | |
struct | Factorial |
Calculate the factorial of a given integer N. More... | |
struct | Factorial< 1 > |
struct | InverseFactorial |
Compute the inverse of the factorial of a given integer N, where T is typically 'float' or 'double'. More... | |
class | Creator |
Abstract base class for Creators. More... | |
class | ConcreteCreator |
This is the concrete Creator class for generating GeomObject-derived classes. More... | |
class | Factory |
This is the Factory for creating instances of GeomObjects of type requested by the user. More... | |
class | Registrator |
On some compilators (ie., VS6), the Register() function cannot be used directly. More... | |
class | FunctionMinimizer |
This is the FunctionMinimizer class that can be used ex. More... | |
class | GeomObject |
Base class for geometrical objects (curves, surfaces, etc. More... | |
class | HermiteAppC |
This class is used to generate a SplineCurve from a EvalCurve using Hermite interpolation. More... | |
class | HermiteAppS |
This class is used to generate a set of SplineCurves from a EvalCurveSet (which itself represents a set of related curves) using Hermiet interpolation. More... | |
class | HermiteGrid1D |
The type "GoHemiteGrid1D" holds a one dimensional grid containing sampled points and derivatives from a curve. More... | |
class | HermiteGrid1DMulti |
The type "GoHemiteGrid1DMulti" holds a one dimensional grid containing sampled points and derivatives from a set of curves, as represented by a EvalCurveSet. More... | |
class | HermiteInterpolator |
An Interpolator that generates a hermite spline curve through given points and tangents. More... | |
class | Interpolator |
Base class for spline interpolators or approximators. More... | |
class | LiftCurve |
This class represents a "lift curve", generated from taking a surface and a 2D curve and then evaluation the surface at the parameter values obtained by evaluating the 2D curve. More... | |
class | LineCloud |
GeomObject representing a collection of line segments in space. More... | |
class | MatrixXD |
Square n-dimensional (compile time constant dim) matrix. More... | |
class | ObjectHeader |
An object representing the "header" usually preceeding a GeomObject in a stream. More... | |
class | ParamCurve |
Base class for parametric curves in Go. More... | |
class | ParamSurface |
Base class for parametric surfaces in Go. More... | |
class | Point |
Run-time sized point class. More... | |
class | PointCloud |
Represent a cloud of points in 'Dim'-dimensional space. More... | |
class | ProjectCurve |
This class represents the curve obtained by projecting a given 3D curve onto a given part of a given 3D surface. More... | |
class | ProjectCurveAndCrossTan |
Evaluator class representing the projection and and tangent curve given a set of input curves. More... | |
class | ProjectIntersectionCurve |
This class provides an interface to a curve that can be evaluated. More... | |
class | Rational |
Class representing rational numbers. More... | |
class | RectDomain |
Represents a rectangular parameter domain. More... | |
class | RectGrid |
This class represent the simplest of all quadrangulations: a rectangular grid. More... | |
class | RotatedBox |
A rotated version of CompositeBox. More... | |
class | ScratchVect |
A template Vector class that behaves much like the std::vector template, but stores its elements on the stack rather than on the heap as long as the total size stays less than 'N' (template argument). More... | |
class | SmoothCurve |
This class is used to generate a spline curve from a given spline space that approximates a set of weighed data points. More... | |
class | SmoothSurf |
This class modifies a tensor product B-spline surface with respect to conditions on smoothness, editing constraints and boundary conditions. More... | |
class | SmoothSurfSet |
This class modifies a set of tensor product B-spline surfaces with respect to conditions on smoothness, editing constraints and boundary conditions. More... | |
class | SmoothTransition |
This abstract class provides an interface to a curve that can be evaluated. More... | |
class | SolveCG |
Solve the equation system Ax=b where A is a symmetric positive definite matrix using the Conjugate Gradient Method. More... | |
class | SplineApproximator |
An Interpolator that generates a spline curve approximating the given dataset in the least squares sense. More... | |
class | SplineCurve |
SplineCurve provides methodes for storing, reading and manipulating rational and non-rational B-spline curves. More... | |
class | SplineInterpolator |
An Interpolator that generates a spline curve interpolating the given dataset. More... | |
class | SplineSurface |
SplineSurface provides methodes for storing, reading and manipulating rational and non-rational B-spline surfaces. More... | |
class | Streamable |
Base class for streamable objects, ie. More... | |
struct | go_iterator_traits |
Iterator traits classes are provided for the Go namespace, so that we won't need to include. More... | |
struct | go_iterator_traits< T * > |
struct | go_iterator_traits< const T * > |
Namespaces | |
namespace | BoundedUtils |
Functions related to the trimming of surfaces, etc. | |
namespace | CoonsPatchGen |
This namespace contains functions used to create a Coons Patch or a Gordon Surface. | |
namespace | CreatorsUtils |
Related to the generation of cross tangent curves. | |
namespace | CurveCreators |
Various functions for generating SplineCurve s by approximation, blending, etc. | |
namespace | HahnsSurfaceGen |
namespace | LoopUtils |
Functions for checking the orientation of loops (closed curves), and whether one loop on a surface encloses another. | |
namespace | SurfaceCreators |
Various functions for generating SplineSurface s by approximation, blending, etc. | |
Typedefs | |
typedef Array< double, 2 > | Vector2D |
Typedef for ease of use in frequently used case. | |
typedef Array< double, 3 > | Vector3D |
Typedef for ease of use in frequently used case. | |
typedef Array< double, 4 > | Vector4D |
Typedef for ease of use in frequently used case. | |
typedef BaryCoordSystem< 2 > | BaryCoordSystem2D |
typedef BaryCoordSystem< 3 > | BaryCoordSystem3D |
typedef Go::sideConstraint | sideConstraint |
Struct defining linear side constraints between control points in a surface. | |
typedef Go::sideConstraintSet | sideConstraintSet |
Struct defining linear side constraints between control points in a set of surfaces. | |
typedef PointCloud< 3 > | PointCloud3D |
typedef PointCloud< 4 > | PointCloud4D |
Enumerations | |
enum | ClassType |
All concrete classes that inherit GeomObject should have a matching enum in ClassType. More... | |
enum | AlgorithmChoice |
This enumeration denotes whether the 'closestPtSurfSurfPlane' function should base itself upon a geometrical algorithm (marching on the surfaces) or a pure functional one (constrained minimization of a cost function). More... | |
enum | |
Enumeration of various pretopologies that can be associated with intersections. | |
Functions | |
template<typename T, int Dim> | |
Go::Array< T, Dim > | operator * (T d, const Go::Array< T, Dim > &v) |
The product of a vector and a scalar. | |
template<typename T, int Dim> | |
std::istream & | operator>> (std::istream &is, Go::Array< T, Dim > &v) |
Stream extraction for Array. | |
template<typename T, int Dim> | |
std::ostream & | operator<< (std::ostream &os, const Go::Array< T, Dim > &v) |
Stream insertion for Array. | |
template<class T, int Dim> | |
Array< T, Dim > | operator * (const Array< double, Dim > &a, const T b) |
double | binom (int n, int i) |
Computes the binomial coefficient: n! / (i! (n-i)!). | |
double | factorial (int n) |
computes n! (n factorial) | |
double | trinomial (int n, int i, int j) |
computes the trinomial coefficient: n! / (i! j! (n-i-j)!) | |
double | quadrinomial (int n, int i, int j, int k) |
computes the quadrinomial coefficient: n! / (i! j! k! (n-i-j-k)!) | |
template<class Functor> | |
double | brent_minimize (const Functor &f, double a, double b, double c, double &parmin, const double rel_tolerance=std::sqrt(std::numeric_limits< double >::epsilon())) |
void | closestPtCurves (const ParamCurve *cv1, const ParamCurve *cv2, double &par1, double &par2, double &dist, Point &ptc1, Point &ptc2) |
Compute a closest point or an intersection point between two curves. | |
void | closestPtCurves (const ParamCurve *cv1, const ParamCurve *cv2, double tmin1, double tmax1, double tmin2, double tmax2, double seed1, double seed2, double &par1, double &par2, double &dist, Point &ptc1, Point &ptc2) |
Newton iteration on the distance function between two curves to find a closest point or an intersection point. | |
void | computeSeedCvCv (const SplineCurve *pc1, const SplineCurve *pc2, double &seed1, double &seed2) |
Computes initial start points for iteration along the curves. | |
void | insideParamDomain (double &delta, double acoef, double astart, double aend) |
Adjust delta to satisfy:
Ported from the sisl function s1770_s9corr. | |
void | nextStep (double &cdist, double &cdiff1, double &cdiff2, std::vector< Point > &eval1, std::vector< Point > &eval2) |
Computes the distance vector and value beetween a point on the first curve and a point on the second curve. | |
void | closestPtCurves2D (ParamCurve *cv1, ParamCurve *cv2, double aepsge, double tmin1, double tmax1, double tmin2, double tmax2, double seed1, double seed2, int method, bool quick, double &par1, double &par2, double &dist, Point &ptc1, Point &ptc2, int &istat) |
Newton iteration on the distance function between two curves in 2D to find a closest point or an intersection point. | |
void | closestPtCurveSurf (ParamCurve *pcurve, ParamSurface *psurf, double aepsge, double astart1, double aend1, RectDomain *domain, double anext1, double enext2[], double &cpos1, double gpos2[], double &dist, Point &pt_cv, Point &pt_su, bool second_order=false) |
Newton iteration on the distance function between a curve and a surface to find a closest point or an intersection point. | |
void | closestPtCurveSurf (ParamCurve *pcurve, ParamSurface *psurf, double aepsge, double astart1, double estart2[], double aend1, double eend2[], double anext1, double enext2[], double &cpos1, double gpos2[], double &dist, Point &pt_cv, Point &pt_su, int &istat, bool second_order=false) |
Newton iteration on the distance function between a curve and a surface to find a closest point or an intersection point. | |
void | closestPtSurfSurfPlane (const std::vector< Point > &epoint, const std::vector< Point > &epnt1, const std::vector< Point > &epnt2, const Point &epar1, const Point &epar2, const ParamSurface *psurf1, const ParamSurface *psurf2, double aepsge, std::vector< Point > &gpnt1, std::vector< Point > &gpnt2, Point &gpar1, Point &gpar2, int &jstat, AlgorithmChoice algo=FUNCTIONAL) |
Newton iteration on the distance function between two surfaces and a plane to find a closest point or an intersection point. | |
void | closestPtSurfSurfPlaneGeometrical (const std::vector< Point > &epoint, const std::vector< Point > &epnt1, const std::vector< Point > &epnt2, const Point &epar1, const Point &epar2, const ParamSurface *psurf1, const ParamSurface *psurf2, double aepsge, std::vector< Point > &gpnt1, std::vector< Point > &gpnt2, Point &gpar1, Point &gpar2, int &jstat) |
This is the geometrically-based implementation of closestPtSurfSurfPlane. | |
void | closestPtSurfSurfPlaneFunctional (const std::vector< Point > &epoint, const std::vector< Point > &epnt1, const std::vector< Point > &epnt2, const Point &epar1, const Point &epar2, const ParamSurface *psurf1, const ParamSurface *psurf2, double aepsge, std::vector< Point > &gpnt1, std::vector< Point > &gpnt2, Point &gpar1, Point &gpar2, int &jstat) |
This is the functional-based implementation of closestPtSurfSurfPlane. | |
void | computeFirstFundamentalForm (const ParamSurface &sf, double u, double v, int derivs, std::vector< double > &form) |
Computes the coefficients of the first fundamental form. | |
void | computeSecondFundamentalForm (const ParamSurface &sf, double u, double v, double form1[3], double form2[3]) |
Computes the coefficients of the first and second fundamental forms. | |
void | curvatures (const ParamSurface &sf, double u, double v, double &K, double &H) |
Computes the Gaussian (K) and mean (H) curvatures. | |
double | curvatureRadius (const std::vector< Point > &der, std::vector< Point > &unitder) |
Given position, first and second derivative of a curve passing through a point, compute the unit tangent, curvature vector and curvature radius of this curve. | |
double | stepLenFromRadius (double radius, double aepsge) |
Computes the step length along a curve based on radius of curvature at a point on the curve, and an absolute tolerance. | |
double | tanLenFromRadius (double radius, double angle) |
To create the tangent length for interpolating a circular arc with an almost equi-oscillating Hermit qubic. | |
void | getHermiteData (const std::vector< Point > &der1, const std::vector< Point > &der2, double &parint, double &len1, double &len2) |
Given position, first and second derivative in both ends of an Hermite segment, compute parameter interval and tangent lengths in order to stay close to a circular segment. | |
template<class PtrToCurveType> | |
double | computeLoopGap (const std::vector< PtrToCurveType > &curves) |
Computes the largest gap in the loop specified by the vector of curves. | |
int | extremalPtSurfSurf (ParamSurface *psurf1, ParamSurface *psurf2, int constraints[2], double constraints_par[2], double limit[], double enext[], double gpos[], double angle_tol) |
Finds one point in each surface where the two normals are parallel to each other and to the difference vector between the two points. | |
template<class T> | |
void | Register () |
This function is used to register a class derived from GeomObject with the global Factory. | |
template<class Functor> | |
void | minimise_conjugated_gradient (FunctionMinimizer< Functor > &dfmin) |
This is the algorithm for minimising a function taking multiple parameters, using the conjugated gradient method. | |
int | analyzePeriodicity (const SplineCurve &cv, double knot_tol=1e-12) |
Analyze periodicity of curve based on number of repeating knots and control points. | |
int | analyzePeriodicity (const SplineSurface &sf, int direction, double knot_tol=1e-12) |
Analyze periodicity of surface based on number of repeating knots and control points. | |
int | analyzePeriodicity (const BsplineBasis &basis, double knot_tol=1e-12) |
Analyze periodicity of basis based on number of repeating knots. | |
int | analyzePeriodicityDerivs (const ParamCurve &cv, int max_derivs, double tol=1e-14) |
Analyze periodicity of curve based on evaluating derivatives at both endpoints. | |
int | analyzePeriodicityDerivs (const SplineSurface &sf, int direction, int max_derivs, double tol=1e-14) |
Analyze periodicity of surface based on evaluating derivatives at opposing ends of the surface. | |
boost::shared_ptr< SplineCurve > | curveSum (const SplineCurve &crv1, double fac1, const SplineCurve &crv2, double fac2, double num_tol=1e-05) |
Addition of two signed SplineCurves, i.e. | |
void | estimateSurfaceSize (const SplineSurface &srf, double &length_u, double &length_v) |
Rough estimate of the size of a parametric surface. | |
void | estimateIsoCurveLength (const SplineSurface &srf, bool dir_u, double par, double &length) |
estimate the length of an iso-curve on the surface | |
bool | degenerateToCurve (const SplineSurface &srf, bool dir_u, double tol) |
Check if a given spline surface degnerates to a curve within a given tolerance. | |
void | makeBdDegenerate (SplineSurface &srf, int bd_idx) |
Make a specified surface boundary exactly degenerate. | |
bool | checkConstantCoef (SplineCurve &cv, int idx, double val, double max_dist, double tol) |
Check if a curve coefficient is equal to a constant in a specified dimension provided it already lies close. | |
void | setSfBdCoefToConst (SplineSurface &srf, int bd_idx, int idx_d, double val, double deg_tol) |
Modify surface along specified boundary to match a specific constant in one direction. | |
void | findDominant (const SplineSurface &surface, Vector3D &dominant_u, Vector3D &dominant_v) |
Finds the "dominant u- and v-vectors" for a surface, defined to be the sum of all the vectors pointing from one control point to the next in the u- and v-directions. | |
void | getGnJoints (const ParamCurve &curve, const std::vector< double > &cont, std::vector< double > &gn_joints) |
Partition the given curve into segments where each segment is at least G^n continuous (currently supporting up to G2 continuity). | |
void | getGnJoints (const CurveLoop &loop, const std::vector< double > &cont, std::vector< std::vector< double > > &gn_joints) |
Partition a given CurveLoop into segments where each segment is at least G^n continuous (currently supporting up to G2 continuity). | |
bool | isCoincident (const ParamCurve &cv1, const ParamCurve &cv2, double epsge) |
Returns true if the curves are approximately coincident (that is, they have the same parameter space and overlap in space). | |
bool | negativeProj (const SplineSurface &surface, const Array< Vector3D, 2 > &refvector, const double eps=0.0) |
Returns true if any vector difference between neighboring control points in the u- or v-directions has negative projection on the given reference vector. | |
boost::shared_ptr< SplineCurve > | projectCurve (const SplineCurve &incurve, const Point &normal, bool planar) |
Project a 3D SplineCurve into a given plane. | |
boost::shared_ptr< SplineCurve > | representSurfaceAsCurve (const SplineSurface &surface, int cv_dir) |
Describe a surface as a high-dimensional curve in a given direction. | |
boost::shared_ptr< SplineSurface > | representCurveAsSurface (const SplineCurve &curve, int cv_dir, const BsplineBasis &other_bas, bool rational) |
Describe a curve as a lower-dimensional surface in a given direction. | |
std::vector< double > | getRotationMatrix (const Point &unit_axis_dir, double alpha) |
Compute the elements of the matrix describing a rotation or a given number of radians around a given axis going through the origin. | |
void | rotateSplineSurf (Point rot_axis, double alpha, SplineSurface &sf) |
Rotate the given SplineSurface a certain angle around a given axis. | |
void | rotateSplineCurve (Point rot_axis, double alpha, SplineCurve &cv) |
Rotate the given SplineCurve a certain angle around a given axis. | |
void | rotateLineCloud (Point rot_axis, double alpha, LineCloud &lc) |
Rotate the given LineCloud a certain angle around a given axis. | |
void | rotatePoint (Point rot_axis, double alpha, double *space_pt) |
Rotate the given 3D point a certain angle around a certain axis. | |
void | splitCurveIntoSegments (const SplineCurve &cv, std::vector< SplineCurve > &seg) |
Split a spline curve into Bezier segments. | |
std::vector< boost::shared_ptr< SplineSurface > > | splitInKinks (const SplineSurface &sf, const std::vector< double > &u_kinks, const std::vector< double > &v_kinks) |
Extract sub patches from the surface given by input parameters. | |
void | splitSurfaceIntoPatches (const SplineSurface &sf, std::vector< SplineSurface > &pat) |
Splits a spline surface into Bezier patches. | |
void | surfaceKinks (const SplineSurface &sf, double max_normal_angle, std::vector< double > &g1_disc_u, std::vector< double > &g1_disc_v) |
Surface assumed to be continuous. | |
void | translateSplineSurf (const Point &trans_vec, SplineSurface &sf) |
Translate the given SplineSurface by trans_vec. | |
void | translateSplineCurve (const Point &trans_vec, SplineCurve &cv) |
Translate the given SplineCurve by trans_vec. | |
void | translateLineCloud (const Point &trans_vec, LineCloud &lc) |
Translate the given LineCloud by trans_vec. | |
void | averageBoundaryCoefs (boost::shared_ptr< SplineSurface > &srf1, int bd1, bool keep_first, boost::shared_ptr< SplineSurface > &srf2, int bd2, bool keep_second, bool found_corner1, Point corner1, bool found_corner2, Point corner2, bool opposite) |
Average specified boundary coefficients between two spline surfaces to ensure a C0 transition. | |
void | unifyCurveSplineSpace (std::vector< boost::shared_ptr< SplineCurve > > &curves, double tol) |
Make sure that a set of curves live on the same knot vector tol-equal knots are set equal (i.e. | |
void | unifySurfaceSplineSpace (std::vector< boost::shared_ptr< SplineSurface > > &surfaces, double tol, int dir=0) |
Make sure that a set of surfaces live on the same knot vectors tol-equal knots are set equal (i.e. | |
boost::shared_ptr< SplineSurface > | joinPatches (const std::vector< boost::shared_ptr< SplineSurface > > &patches, const SplineSurface &spline_space) |
Join patches with continuity according to input basis_u & basis_v. | |
void | intersect2Dcurves (const ParamCurve *cv1, const ParamCurve *cv2, double epsge, std::vector< std::pair< double, double > > &intersections, std::vector< int > &pretopology) |
Intersect two 2D spline curves. | |
void | intersectcurves (SplineCurve *cv1, SplineCurve *cv2, double epsge, std::vector< std::pair< double, double > > &intersections) |
Intersect two spline curves. | |
void | closestPtCurves (SplineCurve *cv1, SplineCurve *cv2, double epsge, double &par1, double &par2, double &dist) |
Compute the closest point between two curves. | |
void | GaussQuadInner (const BsplineBasis &basis, int ider, double lim1, double lim2, double ***integral) |
Compute all definite integrals of inner products of derivatives of B-splines up to a given order where the differentiation is of the same order for both B-splines. | |
void | GaussQuadInner2 (const BsplineBasis &basis, int ider, double lim1, double lim2, double **integral) |
Compute all definite integrals of inner products of derivatives of B-splines up to a given order where the differentiation is of the same order for both B-splines. | |
template<typename Functor> | |
void | trapezoidal (Functor &f, double a, double b, double &s, int n) |
This routine computes the n'th stage of refinement of an extended trapezoidal rule. | |
template<typename Functor> | |
double | simpsons_rule (Functor &f, double a, double b, const double eps=1.0e-6, const int max_iter=20) |
Routine to calculate the integral of the functor f from a to b using Simpson's rule. | |
template<typename Functor> | |
double | gaussian_quadrature (Functor &f, double a, double b) |
Routine to calculate the integral of the functor f from a to b using Gaussian quadrature with W=1 and N=10. | |
template<typename Functor2D> | |
double | simpsons_rule2D (Functor2D &f, double ax, double bx, double ay, double by, const double eps=1.0e-6, const int max_iter=20) |
Routine to integrate the two-dimensional functor f over the rectangle defined by ax, bx, ay and by. | |
template<typename Functor2D> | |
double | gaussian_quadrature2D (Functor2D &f, double ax, double bx, double ay, double by) |
Routine to integrate the two-dimensional functor f over the rectangle defined by ax, bx, ay and by. | |
template<typename SquareMatrix> | |
void | LUDecomp (SquareMatrix &mat, int num_rows, int *perm, bool &parity) |
LU decomposition algorithm, based on Crout's algorithm. | |
template<typename SquareMatrix, typename T> | |
void | LUsolveSystem (SquareMatrix &A, int num_unknowns, T *vec) |
Solve the system Ax = b for x, using LU decomposition of the matrix A. | |
template<typename SquareMatrix, typename T> | |
void | forwardSubstitution (const SquareMatrix &L, T *x, int num_unknowns) |
Using forward substitution to calculate x on the system Lx = b, where L is a lower triangular matrix with unitary diagonal. | |
template<typename SquareMatrix, typename T> | |
void | backwardSubstitution (const SquareMatrix &U, T *x, int num_unknowns) |
Using backward substitution to calculate x on the system Ux = b, where U is an upper triangular matrix with unitary diagonal. | |
template<typename SquareMatrix> | |
void | forwardSubstitution (const SquareMatrix &L, std::vector< double > *x, int num_unknowns) |
Using forward substitution to calculate x on the system Lx = b, where L is a lower triangular matrix with unitary diagonal. | |
template<typename SquareMatrix> | |
void | backwardSubstitution (const SquareMatrix &U, std::vector< double > *x, int num_unknowns) |
Using backward substitution to calculate x on the system Ux = b, where U is an upper triangular matrix with unitary diagonal. | |
template<typename T, int Dim> | |
std::ostream & | operator<< (std::ostream &os, const MatrixXD< T, Dim > &m) |
output operator | |
template<class PtrToCurveType> | |
void | orientCurves (const std::vector< PtrToCurveType > &curves, std::vector< int > &permutation, std::vector< bool > &reversed, double neighbour_tol, bool assume_manifold=true) |
This function sorts and orients a set of curves so that curves whose endpoints coincide will be ordered consecutively, and eventually 'reversed' so that startpoints meet endpoints. | |
Point | operator * (double d, const Point &p) |
The product of a vector and a scalar. | |
std::istream & | operator>> (std::istream &is, Go::Point &v) |
Stream extraction for Point. | |
std::ostream & | operator<< (std::ostream &os, const Go::Point &v) |
Stream insertion for Point. | |
bool | operator< (const Point &p1, const Point &p2) |
void | normalNoise (double *res, double mean_err, int num_samples) |
Gives a certain number of random samples drawn from the normal distribution. | |
void | uniformNoise (double *res, double lval, double uval, int num_samples) |
Gives a certain number of random samples drawn from the uniform distribution. | |
Rational | operator+ (const Rational &r1, const Rational r2) |
Rational | operator- (const Rational &r1, const Rational r2) |
Rational | operator * (const Rational &r1, const Rational r2) |
Rational | operator/ (const Rational &r1, const Rational r2) |
std::ostream & | operator<< (std::ostream &os, const Rational &p) |
SISLCurve * | Curve2SISL (const SplineCurve &cv, bool copy=true) |
Convert a SplineCurve to a SISLCurve. | |
SplineCurve * | SISLCurve2Go (const SISLCurve *const cv) |
Convert a SISLCurve to a SplineCurve. | |
SISLSurf * | GoSurf2SISL (const SplineSurface &sf, bool copy=true) |
Convert a SplineSurface to a SISLSurface. | |
SplineSurface * | SISLSurf2Go (SISLSurf *sf) |
Convert a SISLSurface to a SplineSurface. | |
void | writeSpaceParamCurve (const SplineCurve &pcurve, std::ostream &os, double z=0.0) |
For debugging. | |
void | objToFile (GeomObject *geom_obj, char *to_file) |
writes the geometric object (with header) to the specified file name. | |
void | objsToFile (std::vector< boost::shared_ptr< GeomObject > > &geom_objs, char *to_file) |
writes the geometric objects (with header) to the specified file name. | |
void | writeSISLFormat (const SplineCurve &spline_cv, std::ostream &os) |
Write a SplineCurve to a stream using the SISL file format (not the Go format). | |
void | transpose_array (int dim, int m, int n, double *array_start) |
Transpose an (m x n) matrix of dim-dimensional points stored as an array in row-major order (i.e. | |
int | closest_in_array (const double *pt, const double *array, int n, int dim) |
Find the point in an array closest to the given base point (measured in the usual, Euclidean distance). | |
Vector3D | closest_on_triangle (const Vector3D &pt, const Vector3D tri[3], double &clo_dist2) |
Find the closest point on a triangle, in barycentric coordinates. | |
double | closest_on_line_segment (const Vector3D &pt, const Vector3D &beg, const Vector3D &end) |
Find the closest point on a line segment to a given point. | |
void | closest_on_rectgrid (const double *pt, const double *array, int m, int n, double &clo_u, double &clo_v) |
Find an approximate closest point on a rectangular grid of 3-dimensional points. | |
void | closest_on_rectgrid (const double *pt, const double *array, int u_min, int u_max, int v_min, int v_max, int nmb_coefs_u, double &clo_u, double &clo_v) |
Find an approximate closest point on a sub-grid of a rectangular grid of 3-dimensional points. | |
void | make_coef_array_from_rational_coefs (const double *rationals, double *coefs, int num_coefs, int dim) |
convert an array of rational coefficients to an array of nonrational coefficients | |
void | curve_ratder (double const eder[], int idim, int ider, double gder[]) |
This function takes as input the position and a certain number of derivatives in homogenous space of a point on a rational curve. | |
void | surface_ratder (double const eder[], int idim, int ider, double gder[]) |
This function takes as input the position and a certain number of derivatives in homogenous space of a point on a rational surface. | |
void | osloalg (int ij, int imy, int ik, int in, int *jpl, int *jfi, int *jla, double *et, double *etau, double *galfa) |
Corresponds to s1701 in SISL This function computes in a compact format a line in the discrete B-spline matrix converting between an orginal basis "etau" and a new basis "et". | |
void | refmatrix (double *et, int im, int ik, double *etau, int in, double *ea, int *nfirst, int *nlast) |
Corresponds to sh1922 in SISL Computes the B-spline refinement transformation matrix from the spline space generated by the knot vector etau to the refined spline space generated by the refined knot vector et. | |
std::istream & | operator>> (std::istream &is, Go::Streamable &obj) |
std::ostream & | operator<< (std::ostream &os, const Go::Streamable &obj) |
double | getCurrentTime () |
Number of seconds since some (probably system-dependent) epoch. | |
void | systemSleep (double sleep_time) |
Sleep for sleep_time seconds. | |
template<typename ForwardIterator> | |
go_iterator_traits< ForwardIterator >::value_type | sum (ForwardIterator first, ForwardIterator last) |
sum finds the sum of the elements | |
template<typename ForwardIterator> | |
go_iterator_traits< ForwardIterator >::value_type | sum_squared (ForwardIterator first, ForwardIterator last) |
sum_squared finds the squared sum of the elements | |
template<typename ForwardIterator> | |
go_iterator_traits< ForwardIterator >::value_type | distance_squared (ForwardIterator first1, ForwardIterator last1, ForwardIterator first2) |
distance_squared | |
template<typename ForwardIterator> | |
void | normalize (ForwardIterator first, ForwardIterator last) |
normalize makes the length of a vector 1.0 | |
template<typename ForwardIterator> | |
go_iterator_traits< ForwardIterator >::value_type | inner (ForwardIterator first, ForwardIterator last, ForwardIterator second) |
inner product | |
template<typename InputStream> | |
InputStream & | eatwhite (InputStream &is) |
eat white space | |
template<typename T> | |
T | determinantOf (const Array< T, 2 > *a) |
Calculates the determinant of a 2 x 2 matrix, represented in memory as a sequence of 2 Array s of length 2. | |
template<typename T> | |
T | determinantOf (const Array< T, 3 > *a) |
Calculates the determinant of a 3 x 3 matrix, represented in memory as a sequence of 3 Array s of length 3. | |
template<typename T, int Dim> | |
T | simplex_volume (const Array< T, Dim > *a) |
Computes the volume of a simplex consisting of (Dim+1) vertices embedded in Euclidean space of dimension (Dim). | |
template<typename T> | |
T | area (const Array< T, 2 > *c) |
Computes the area of a 2-dimensional triangle. | |
template<typename T> | |
T | area (const Array< T, 3 > *c) |
Computes the area of a 2-dimensional triangle. | |
template<typename T> | |
T | volume (const Array< T, 3 > *c) |
Computes the volume of a 3D simplex (embedded i 3D space). | |
template<typename T> | |
T | signed_area (const Array< T, 3 > *c, const Array< T, 3 > &normal) |
Computes the signed area of a triangle embedded in 3D space. | |
Variables | |
const int | MAJOR_VERSION = 1 |
const int | MINOR_VERSION = 0 |
Detailed description.