Go Namespace Reference

Brief description. More...


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:

\[ astart \leq acoef+delta \leq aend \]

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< SplineCurvecurveSum (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< SplineCurveprojectCurve (const SplineCurve &incurve, const Point &normal, bool planar)
 Project a 3D SplineCurve into a given plane.
boost::shared_ptr< SplineCurverepresentSurfaceAsCurve (const SplineSurface &surface, int cv_dir)
 Describe a surface as a high-dimensional curve in a given direction.
boost::shared_ptr< SplineSurfacerepresentCurveAsSurface (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< SplineSurfacejoinPatches (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.
SplineCurveSISLCurve2Go (const SISLCurve *const cv)
 Convert a SISLCurve to a SplineCurve.
SISLSurf * GoSurf2SISL (const SplineSurface &sf, bool copy=true)
 Convert a SplineSurface to a SISLSurface.
SplineSurfaceSISLSurf2Go (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>
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>
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>
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>
area (const Array< T, 2 > *c)
 Computes the area of a 2-dimensional triangle.
template<typename T>
area (const Array< T, 3 > *c)
 Computes the area of a 2-dimensional triangle.
template<typename T>
volume (const Array< T, 3 > *c)
 Computes the volume of a 3D simplex (embedded i 3D space).
template<typename 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

Brief description.

Detailed description.


Generated on Mon Jun 11 14:48:18 2007 for GoTools Core Library by  doxygen 1.5.1