GeometryTools.h File Reference

Free functions operating on geometry module objects. More...

#include "SplineCurve.h"
#include "SplineSurface.h"
#include "LineCloud.h"
#include "Array.h"
#include <boost/smart_ptr.hpp>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  Go

Functions

int Go::analyzePeriodicity (const SplineCurve &cv, double knot_tol=1e-12)
 Analyze periodicity of curve based on number of repeating knots and control points.
int Go::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 Go::analyzePeriodicity (const BsplineBasis &basis, double knot_tol=1e-12)
 Analyze periodicity of basis based on number of repeating knots.
int Go::analyzePeriodicityDerivs (const ParamCurve &cv, int max_derivs, double tol=1e-14)
 Analyze periodicity of curve based on evaluating derivatives at both endpoints.
int Go::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 > Go::curveSum (const SplineCurve &crv1, double fac1, const SplineCurve &crv2, double fac2, double num_tol=1e-05)
 Addition of two signed SplineCurves, i.e.
void Go::estimateSurfaceSize (const SplineSurface &srf, double &length_u, double &length_v)
 Rough estimate of the size of a parametric surface.
void Go::estimateIsoCurveLength (const SplineSurface &srf, bool dir_u, double par, double &length)
 estimate the length of an iso-curve on the surface
bool Go::degenerateToCurve (const SplineSurface &srf, bool dir_u, double tol)
 Check if a given spline surface degnerates to a curve within a given tolerance.
void Go::makeBdDegenerate (SplineSurface &srf, int bd_idx)
 Make a specified surface boundary exactly degenerate.
bool Go::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 Go::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 Go::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 Go::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 Go::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 Go::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 Go::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 > Go::projectCurve (const SplineCurve &incurve, const Point &normal, bool planar)
 Project a 3D SplineCurve into a given plane.
boost::shared_ptr< SplineCurve > Go::representSurfaceAsCurve (const SplineSurface &surface, int cv_dir)
 Describe a surface as a high-dimensional curve in a given direction.
boost::shared_ptr< SplineSurface > Go::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 > Go::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 Go::rotateSplineSurf (Point rot_axis, double alpha, SplineSurface &sf)
 Rotate the given SplineSurface a certain angle around a given axis.
void Go::rotateSplineCurve (Point rot_axis, double alpha, SplineCurve &cv)
 Rotate the given SplineCurve a certain angle around a given axis.
void Go::rotateLineCloud (Point rot_axis, double alpha, LineCloud &lc)
 Rotate the given LineCloud a certain angle around a given axis.
void Go::rotatePoint (Point rot_axis, double alpha, double *space_pt)
 Rotate the given 3D point a certain angle around a certain axis.
void Go::splitCurveIntoSegments (const SplineCurve &cv, std::vector< SplineCurve > &seg)
 Split a spline curve into Bezier segments.
std::vector< boost::shared_ptr<
SplineSurface > > 
Go::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 Go::splitSurfaceIntoPatches (const SplineSurface &sf, std::vector< SplineSurface > &pat)
 Splits a spline surface into Bezier patches.
void Go::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 Go::translateSplineSurf (const Point &trans_vec, SplineSurface &sf)
 Translate the given SplineSurface by trans_vec.
void Go::translateSplineCurve (const Point &trans_vec, SplineCurve &cv)
 Translate the given SplineCurve by trans_vec.
void Go::translateLineCloud (const Point &trans_vec, LineCloud &lc)
 Translate the given LineCloud by trans_vec.
void Go::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 Go::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 Go::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 > Go::joinPatches (const std::vector< boost::shared_ptr< SplineSurface > > &patches, const SplineSurface &spline_space)
 Join patches with continuity according to input basis_u & basis_v.


Detailed Description

Free functions operating on geometry module objects.

This header contains free functions operating on objects from the geometry module. These functions are in general not called from the classes of the module, but are considered to be part of the user's programming interface.

Definition in file GeometryTools.h.


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