MGCL V10
V10
MGCL V10
|
MGLBRep is a class for B-SPline representation. [詳解]
公開メンバ関数 | |
MGLBRep () | |
Default(dummy) constructor. [詳解] | |
MGLBRep (int bdim, int order, int sdim) | |
Dummy constructor that specifies area length. [詳解] | |
MGLBRep (const MGKnotVector &t, const MGBPointSeq &bcoef) | |
MGLBRep (const MGBPointSeq &points, int order=4, bool circular=false) | |
MGLBRep (const MGNDDArray &tau, const MGBPointSeq &points, int order=4, double ratio=-1.) | |
MGLBRep (const MGNDDArray &tau, const MGBPointSeq &points, const MGKnotVector &t) | |
MGLBRep (const MGLBRepEndC &begin, const MGLBRepEndC &end, const MGNDDArray &tau, const MGBPointSeq &value) | |
MGLBRep (int order, const MGLBRepEndC &begin, const MGLBRepEndC &end, const MGNDDArray &tau, const MGBPointSeq &value) | |
MGLBRep (const MGLBRepEndC &begin, const MGLBRepEndC &end, const MGNDDArray &tau, const MGBPointSeq &value, const MGKnotVector &t) | |
MGLBRep (const MGLBRepEndC &begin, const MGLBRepEndC &end, const MGBPointSeq &points, const int *point_kind, const MGOscuCircle &circle) | |
MGLBRep (const MGCurve &crv, int order=0, int parameter_normalization=0, bool neglectMulti=false) | |
MGLBRep (const MGLBRep &old_brep, const MGKnotVector &t) | |
MGLBRep (const MGCurve &old_curve, const MGKnotVector &t) | |
MGLBRep (int coordinate1, const MGLBRep &brep1, int coordinate2, const MGLBRep &brep2) | |
MGLBRep (const MGNDDArray &tau, const MGBPointSeq &points, const double *weight, const MGKnotVector &t) | |
MGLBRep (const MGPPRep &pprep) | |
Convert PP-Rep to B-rep. [詳解] | |
MGLBRep (const MGPPRep &pprep, const MGKnotVector t) | |
MGLBRep (const MGLBRep &old_brep, const MGKnotArray &knots) | |
Gets new B-Rep by adding knots to an original B-Rep. [詳解] | |
MGLBRep (const MGLBRep &brep1, int continuity, int which, const MGLBRep &brep2) | |
MGLBRep (double t1, double t2, const MGLBRep &old_brep, int multiple=0) | |
MGLBRep (int id1, int id2, const MGLBRep &old_brep) | |
MGLBRep (int dim, const MGLBRep &lbrep, int start1=0, int start2=0) | |
~MGLBRep () | |
MGLBRep & | operator= (const MGGel &gel2) |
MGLBRep & | operator= (const MGLBRep &el2) |
Assignment. [詳解] | |
MGLBRep | operator+ (const MGVector &) const |
Transformation object construction. [詳解] | |
MGLBRep | operator- (const MGVector &) const |
MGLBRep | operator* (double) const |
MGLBRep | operator* (const MGMatrix &) const |
MGLBRep | operator* (const MGTransf &) const |
MGLBRep & | operator+= (const MGVector &v) |
Object transformation. [詳解] | |
MGLBRep & | operator-= (const MGVector &v) |
MGLBRep & | operator*= (double scale) |
MGLBRep & | operator*= (const MGMatrix &mat) |
MGLBRep & | operator*= (const MGTransf &tr) |
bool | operator== (const MGLBRep &gel2) const |
comparison [詳解] | |
bool | operator== (const MGGel &gel2) const |
Comparison. [詳解] | |
bool | operator< (const MGLBRep &gel2) const |
bool | operator< (const MGGel &gel2) const |
bool | operator== (const MGRLBRep &gel2) const |
void | approximate_as_LBRep (MGLBRep &lb, int ordr=0, int parameter_normalization=0, bool neglectMulti=false) const |
int | bdim () const |
Returns B-Rep Dimension. [詳解] | |
MGBox | box_limitted (const MGInterval &l) const |
const MGBox & | box_unlimit () const |
Return minimum box that includes the whole line. [詳解] | |
void | buildSRSmoothedLB_of_FreeEnd (const MGNDDArray &tau, const MGBPointSeq &y, const double *dy, double deviation, bool dev_is_sum=false) |
void | buildSRSmoothedLB_of_1stDeriv (const MGLBRepEndC &begin, const MGLBRepEndC &end, const MGNDDArray &tau, const MGBPointSeq &y, const double *dy, double deviation, bool dev_is_sum=false) |
MGLBRep & | change_dimension (int sdim, int start1=0, int start2=0) |
Changing this object's space dimension. [詳解] | |
void | change_range (double t1, double t2) |
MGLBRep & | change_order (int order) |
MGLBRep & | change_order_by_approximation (int ordr) |
Change order of the B-Rep by approximation. [詳解] | |
double & | coef (int i, int j) |
double | coef (int i, int j) const |
MGVector | coef (int i) const |
Extract (i,j)element for 0<=j<sdim(). [詳解] | |
const double * | coef_data (int i=0, int j=0) const |
Returns a pointer to the line b-coef data. [詳解] | |
double * | coef_data (int i=0, int j=0) |
void | connect (int continuity, int which, const MGLBRep &brep2) |
int | continuity (const MGLBRep &brep2, int &which, double &ratio) const |
MGLBRep & | coordinate_exchange (int j1, int j2) |
virtual MGLBRep * | clone () const |
void | convert_to_Bezier (MGLBRep &bezier) const |
MGCurve * | copy_as_nurbs () const |
MGLBRep * | copy_as_LBRep () const |
MGLBRep * | copy_change_dimension (int sdim, int start1=0, int start2=0) const |
MGCurve * | copy_limitted (const MGInterval &prange) const |
double | curvilinear_integral (double t1, double t2) const |
int | divide_multi (MGPvector< MGCurve > &crv_list, int multiplicity=-1) const |
void | display_control_polygon (mgSysGL &sgl) const |
Display control polygons using mgVBO::MGDrawPointSeq() [詳解] | |
virtual void | drawSE (mgVBO &vbo, double span_length, double t0, double t1) const |
Draw this curve into vbo, approximating with polyline. [詳解] | |
MGVector | eval (double, int nderiv=0, int leftcon=0) const |
void | eval_all (double, MGPosition &, MGVector &, MGVector &) const |
void | eval_all (double tau, int nderiv, double *deriv, int leftcon=0) const |
void | eval_line (MGENDCOND begin, MGENDCOND end, const MGNDDArray &tau, MGBPointSeq &value) const |
Evaluate line data at data point seq.(BLELIN) [詳解] | |
void | eval_line (const MGNDDArray &tau, MGBPointSeq &value) const |
Evaluate line data at data point seq.(BLELIN) [詳解] | |
MGLBRep & | extend (int start, double length, double dk) |
void | extend (double length, bool start=false) |
MGLBRep & | extend_with_parameter (double tau, double dk) |
Extrapolate the curve by the parameter value. [詳解] | |
bool | get_control_points (MGBPointSeq &cpoints) const |
long | identify_type () const |
Return This object's typeID. [詳解] | |
const MGLBRep * | is_Bezier (int ordr=0) const |
bool | is_coplanar (const MGCurve &curve2, MGPlane &plane) const |
bool | is_planar (MGPlane &plane) const |
MGCCisect_list | isect (const MGCurve &curve2) const |
MGCCisect_list | isect (const MGStraight &curve2) const |
MGCCisect_list | isect (const MGRLBRep &curve2) const |
MGCCisect_list | isect (const MGEllipse &curve2) const |
MGCCisect_list | isect (const MGLBRep &curve2) const |
MGCCisect_list | isect (const MGSurfCurve &curve2) const |
MGCCisect_list | isect (const MGBSumCurve &curve2) const |
MGCSisect_list | isect (const MGSurface &surf) const |
Intersection of MGLBRep and Surface. [詳解] | |
MGCSisect_list | isect (const MGPlane &surf) const |
MGCSisect_list | isect (const MGSphere &surf) const |
MGCSisect_list | isect (const MGCylinder &surf) const |
MGCSisect_list | isect (const MGSBRep &surf) const |
MGCSisect_list | isect (const MGRSBRep &surf) const |
MGCSisect_list | isect (const MGBSumSurf &surf) const |
double & | knot (int i) |
double | knot (int i) const |
const double * | knot_data () const |
double * | knot_data () |
const MGKnotVector & | knot_vector () const |
MGKnotVector & | knot_vector () |
virtual MGLBRep & | limit (const MGInterval &i1) |
Update this by limiting the parameter range of the curve. [詳解] | |
const MGBPointSeq & | line_bcoef () const |
Returns the B-coef's(RHS version). [詳解] | |
MGBPointSeq & | line_bcoef () |
Returns the B-coef's(LHS version). [詳解] | |
MGLBRep & | move (int move_kind, double move_point_param, const MGPosition &to_point, const double fix_point[2]) |
virtual void | negate () |
Change direction of the line. [詳解] | |
double | negate_param (double t) const |
Obtain parameter value if this curve is negated by "negate()". [詳解] | |
int | order () const |
Returns the order. [詳解] | |
double | param_e () const |
Return ending parameter value. [詳解] | |
double | param_s () const |
Return starting parameter value. [詳解] | |
double | param_normalize (double t) const |
MGCurve * | part (double t1, double t2, int multiple=0) const |
MGCParam_list | perps (const MGPosition &point) const |
MGPosition_list | perps (const MGCurve &crv2) const |
MGPosition_list | perps (const MGStraight &crv2) const |
MGPosition_list | perps (const MGRLBRep &crv2) const |
MGPosition_list | perps (const MGEllipse &crv2) const |
MGPosition_list | perps (const MGLBRep &crv2) const |
MGPosition_list | perps (const MGSurfCurve &crv2) const |
MGPosition_list | perps (const MGBSumCurve &crv2) const |
int | planar (MGPlane &plane, MGStraight &line, MGPosition &point) const |
int | project (const MGFSurface &surf, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const |
int | project (const MGPlane &plane, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const |
int | reduce (int ndec) |
MGLBRep & | refine (const MGKnotVector &t) |
void | remove_knot () |
void | remove_knot (int j, int snum) |
int | remove_knot_one (double line0, int nKnot, double &totalTol, int &num_knot, int sid=0, int snum=0) |
int | sdim () const |
Returns the space dimension. [詳解] | |
MGSurface * | sweep (const MGUnit_vector &uvec, double start_dist, double end_dist) const |
MGCURVE_TYPE | type () const |
void | updatePolarCoordinates2Ordinary () |
MGCurve & | unlimit () |
limitをはずす。 [詳解] | |
MGCurve & | unlimit_end () |
MGCurve & | unlimit_start () |
int | out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const |
IGES output function. PD126. [詳解] | |
virtual std::ostream & | out (std::ostream &) const |
Debug Function. [詳解] | |
std::string | whoami () const |
基底クラス MGCurve に属する継承公開メンバ関数 | |
MGCurve () | |
Void constructor(初期化なしでオブジェクトを作成する。). [詳解] | |
MGCurve (const MGCurve &curve) | |
Copy constructor. [詳解] | |
virtual | ~MGCurve () |
Virtual Destructor. [詳解] | |
virtual MGCurve & | operator= (const MGCurve &gel2) |
Assignment. [詳解] | |
virtual bool | operator== (const MGCompositeCurve &crv) const |
Comparison. [詳解] | |
virtual bool | operator== (const MGTrimmedCurve &crv) const |
void | arrow (double t, MGPosition data[4]) const |
Generate arrow data of the tangent at the parameter value t of the curve. [詳解] | |
virtual MGPosition | center () const |
Obtain ceter coordinate of the geometry. [詳解] | |
virtual MGPosition | center_param () const |
Obtain ceter parameter value of the geometry. [詳解] | |
virtual double | closest (const MGPosition &point) const |
Compute the closest point parameter value of this curve from a point. [詳解] | |
virtual double | closest2D (const MGPosition &point) const |
Compute the nearest point from input point on this curve's (x,y) 2D part. [詳解] | |
virtual MGPosition | closest (const MGCurve &curve2) const |
Compute the closest point parameter value pair of this curve and curve2. [詳解] | |
bool | cn_continuity (int n) const |
Test if this curve is cn continuous. [詳解] | |
virtual int | common (const MGCurve &curve2, std::vector< double > &vecComSpan, MGCCisect_list &isect) const |
Test if this has a common line part with the 2nd curve. [詳解] | |
virtual int | common (const MGCurve &curve2, std::vector< double > &vecComSpan) const |
Test if this has a common line part with the 2nd curve. [詳解] | |
virtual double | curvature (double) const |
Return curvature at the given point. [詳解] | |
MGCurve * | curve () |
Return curve pointer if this MGGel is an MGCurve, else return null. [詳解] | |
const MGCurve * | curve () const |
virtual double | curvilinear_integral () const |
virtual double | deriv_length () const |
Compute mean length of 1st derivative vector. [詳解] | |
MGUnit_vector | direction (const MGPosition ¶m) const |
Compute direction unit vector of the geometry. [詳解] | |
virtual MGUnit_vector | direction (double) const |
Return tangent vector at the given point. [詳解] | |
virtual void | display_arrows (mgSysGL &sgl) const |
virtual void | display_break_points (mgSysGL &sgl) const |
virtual void | display_curvatures (mgSysGL &sgl, double scale, int density, bool use_radius) const |
int | divide_number () const |
get the a divide number for offset, intersection, or others. [詳解] | |
virtual void | drawWire (mgVBO &vbo, double span_length, int line_density=1) const |
Draw this curve into vbo, approximating with polyline. [詳解] | |
virtual MGPosition | end_point () const |
Return end point(終点を返却する) [詳解] | |
virtual MGVector | eval_deriv (double) const |
Compute 1st derivative. [詳解] | |
void | eval_discrete_deviation (const MGCurve &curve2, std::vector< MGPosition > &sts, int npoint=20, double tolerance=0.1) const |
Evaluate deviations of two curves(this and curve2) at npoint discrete points. [詳解] | |
virtual MGPosition | eval_position (double) const |
Compute positional data. [詳解] | |
MGVector | evaluate (const MGPosition &t, const int *nderiv=0) const |
Evaluate n'th derivative data. n=0 means positional data evaluation. [詳解] | |
virtual void | Frenet_frame2 (double t, MGVector &V2, MGVector &T, MGVector &N, MGVector &B) const |
Compute Frenet_frame, curvature and torsion in 3D space. [詳解] | |
virtual void | Frenet_frame (double t, MGUnit_vector &T, MGUnit_vector &N, MGUnit_vector &B, double &curvature, double &torsion) const |
Compute Frenet_frame, curvature and torsion in 3D space. [詳解] | |
double | get_average_tangent_length () const |
Get average tangent length. [詳解] | |
void | getParamsC0Continuity (std::vector< double > ¶m) const |
bool | has_same_direction_at (double s, const MGCurve &curve2, double t) const |
Test if this curve has the same direction with curve2. [詳解] | |
virtual bool | in_range (double t) const |
Test if input parameter value is inside parameter range of the line. [詳解] | |
bool | in_range (const MGPosition &t) const |
Test if input parameter value is inside parameter range of the line. [詳解] | |
MGCCisect_list | intersect_brute_force (const MGCurve &) const |
Curve to curve intersection. [詳解] | |
virtual MGCCisect_list | intersect (const MGCurve &) const |
Curve to curve intersection. [詳解] | |
MGisects | intersection (const MGObject &obj2) const |
Compute the intersections of two objects. [詳解] | |
MGisects | intersection (const MGCurve &obj2) const |
MGisects | intersection (const MGFSurface &obj2) const |
MGisects | intersection (const MGSurface &obj2) const |
MGisects | intersection (const MGFace &obj2) const |
MGisects | intersection (const MGShell &obj2) const |
MGCSisect_list | intersect_with_plane (const MGPlane &surf) const |
intersections with a plane. [詳解] | |
MGCCisect_list | isect (const MGTrimmedCurve &curve2) const |
MGCCisect_list | isect (const MGCompositeCurve &curve2) const |
MGCSisect_list | isect (const MGFSurface &fs) const |
virtual MGCSisect_list | isect (const MGFace &) const |
MGCFisect_vector | isect (const MGShell &shl) const |
Intersection of a shell and a curve. [詳解] | |
MGCParam_list | isect_1D (double f, int coordinate=0) const |
Compute intersection point of 1D sub curve of original curve. [詳解] | |
bool | is_closed () const |
Test if this is a closed curve. [詳解] | |
bool | is_closedWithError (double err) const |
Terst if this is a closed curve, given the tolerance. [詳解] | |
virtual bool | is_startpoint_parameter (double t) const |
Test if the input parameter t is the start point parameter or not. [詳解] | |
virtual bool | is_endpoint_parameter (double t) const |
Test if the input parameter t is the start point parameter or not. [詳解] | |
bool | is_perpendicular (const MGPosition &P, double t) const |
Test if the vector from P to this->eval(t) is perpendicular. [詳解] | |
virtual bool | is_linear (MGStraight &straight) const |
Test if this cure is linear or not, that is, is straight or not. [詳解] | |
MGKnotVector & | knot_vector () |
Returns the knot vector of the curve. [詳解] | |
virtual double | length (double t1, double t2) const |
Cmpute curve length of the interval. [詳解] | |
virtual double | length () const |
Compute whole curve length. [詳解] | |
virtual double | length_param (double t, double len) const |
Inverse function of length. [詳解] | |
MGCurve & | limit (double t0, double t1) |
int | manifold_dimension () const |
Return manifold dimension, 0:point, 1:curve, 2:surface. [詳解] | |
void | negate_transform (MGGeometry &boundary) const |
virtual MGPvector< MGCurve > | offset (double ofs_value, const MGVector &norm_vector=mgNULL_VEC) const |
Offset of costant deviation from this curve. [詳解] | |
virtual MGPvector< MGCurve > | offset (const MGLBRep &ofs_value_lb, const MGVector &norm_vector=mgNULL_VEC) const |
Offset of variable deviation from this curve. [詳解] | |
virtual MGLBRep | offset_c2 (double ofs_value, const MGVector &norm_vector=mgNULL_VEC) const |
Costant offset curve of C2 continuous curve. [詳解] | |
virtual MGLBRep | offset_c2 (const MGLBRep &ofs_value_lb, const MGVector &norm_vector=mgNULL_VEC) const |
Valuable offset curve of C2 continuous curve. [詳解] | |
virtual bool | on (const MGPosition &point, double &t) const |
Test if given point is on the curve or not. [詳解] | |
bool | on (const MGPosition &P, MGPosition &t) const |
Test if given point is on this geometry or not. [詳解] | |
virtual double | param (const MGPosition &) const |
Compute parameter value of given point. [詳解] | |
virtual double | param_error () const |
Obtain parameter space error. [詳解] | |
virtual MGInterval | param_range () const |
Return parameter range of the curve(パラメータ範囲を返す). [詳解] | |
double | param_round_into_range (double t) const |
Round the parameter t into this parameter range. [詳解] | |
MGBox | parameter_range () const |
Return parameter range of the geometry(パラメータ範囲を返す). [詳解] | |
double | param_se (double t) const |
Return starting or ending parameter value that is nearer to the param t. [詳解] | |
virtual double | param_span () const |
Compute parameter span length. [詳解] | |
virtual int | perp_guess (double t0, double t1, const MGPosition &P, double tg, double &t) const |
Return perpendicular point from a point P. [詳解] | |
virtual int | perp_guess (double s0, double s1, const MGCurve &curve2, double t0, double t1, double sg, double tg, MGPosition &st) const |
Return perpendicular points of two curves. [詳解] | |
virtual int | perp_point (const MGPosition &p, double &t, const double *g=0) const |
Compute a foot point of the perpendicular line from point p to the curve. [詳解] | |
MGPosition_list | perpendiculars (const MGCurve &crv) const |
Compute all the perpendicular points of this curve and the second one. [詳解] | |
MGPosition_list | perps (const MGCompositeCurve &crv2) const |
MGPosition_list | perps (const MGTrimmedCurve &crv2) const |
virtual MGPosition | pick_closest (const MGStraight &sl) const |
Compute the parameter value of the closest point from the straight to this object. [詳解] | |
virtual void | polygonize (double error, MGLBRep &lb2) const |
Approximate this curve by a polyline and output to lb2. [詳解] | |
virtual double | range (double t) const |
Round t into curve's parameter range. [詳解] | |
MGPosition | range (const MGPosition &t) const |
Round t into geometry's parameter range. [詳解] | |
std::auto_ptr< MGCurve > | rebuild (int how_rebuild=1, int parameter_normalization=2, double tol=-1., int ordr=0, const double *param_range=0) const |
Rebuild this curve. [詳解] | |
virtual MGCurve & | rotate_self (const MGVector &v, double, const MGPosition &=mgORIGIN) |
Update curve by rotating around straight line. [詳解] | |
std::auto_ptr< MGLBRep > | scalePolar (double angleBase, double angle1, double angle2) const |
Obtain polar-rotated curve of this. [詳解] | |
virtual MGPosition | start_point () const |
Return start point(始点を返却する). [詳解] | |
virtual int | tangent_guess (double t0, double t1, const MGPosition &P, double tg, double &t) const |
Return tangent point from a point P, given guess starting paramter tg. [詳解] | |
void | trim_end (double t) |
Trim the end part of this curve at the parameter t. [詳解] | |
void | trim_start (double t) |
Trim the start part of this curve at the parameter t. [詳解] | |
void | trim_start_and_end (double ts, double te) |
Trim the start part and end part of this curve at the parameter ts and te. [詳解] | |
virtual std::auto_ptr< MGLBRep > | PolarCoordinatesLBRep () const |
Obtain polar coordinates system MGLBRep of this curve. [詳解] | |
基底クラス MGGeometry に属する継承公開メンバ関数 | |
MGGeometry () | |
Void constructor(初期化なしでオブジェクトを作成する。) [詳解] | |
MGGeometry (const MGGeometry &geo2) | |
Copy constructor. [詳解] | |
virtual | ~MGGeometry () |
Virtual Destructor. [詳解] | |
virtual MGGeometry & | operator= (const MGGeometry &gel2) |
virtual MGGeometry * | geometry () |
Return MGGeometry pointer if this MGGel is an MGGeometry, else return null. [詳解] | |
virtual const MGGeometry * | geometry () const |
const MGBox & | box () const |
Return minimum box that includes whole of the geometry. [詳解] | |
virtual void | draw3DVertex (mgVBO &vbo) const |
bool | is_null () const |
Test if this is null. [詳解] | |
double | parameter_error () const |
Error allowed in the parameter space of the geometry. [詳解] | |
基底クラス MGObject に属する継承公開メンバ関数 | |
MGObject () | |
Void constructor(初期化なしでオブジェクトを作成する。) [詳解] | |
MGObject (const MGObject &obj2) | |
Copy constructor. [詳解] | |
virtual | ~MGObject () |
Virtual Destructor. [詳解] | |
virtual MGObject & | operator= (const MGObject &obj2) |
MGAppearance * | appearance () |
const MGAppearance * | appearance () const |
virtual void | shade (mgVBO &vbo, const MGDrawParam ¶, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const |
Shade the object in world coordinates. [詳解] | |
MGAppearance * | ensure_appearance () |
virtual void | make_display_list (MGCL::VIEWMODE vmode=MGCL::DONTCARE) const |
Make a display list of this gel. [詳解] | |
bool | has_common (const MGObject &obj2) const |
const MGObject * | includes_object () const |
Test if this gel includes an object. [詳解] | |
MGObject * | includes_object () |
Test if this gel includes an object. [詳解] | |
virtual MGisects | intersection (const MGPoint &obj2) const |
void | remove_appearance () |
Remove the MGAppearance of this MGAttribedGel. [詳解] | |
virtual MGObject * | object () |
Return MGObject pointer if this MGGel is an MGObject, else return null. [詳解] | |
virtual const MGObject * | object () const |
virtual const MGFSurface * | fsurface () const |
Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解] | |
virtual MGFSurface * | fsurface () |
void | set_appearance (const MGAppearance &appr2) |
virtual void | transform (const MGVector &v) |
Transform the gel by the argument. [詳解] | |
virtual void | transform (double scale) |
translation [詳解] | |
virtual void | transform (const MGMatrix &mat) |
scaling. [詳解] | |
virtual void | transform (const MGTransf &tr) |
matrix transformation. [詳解] | |
基底クラス MGAttribedGel に属する継承公開メンバ関数 | |
MGAttribedGel () | |
void constructor. [詳解] | |
MGAttribedGel (const MGAttribedGel &gel2) | |
copy constructor. [詳解] | |
virtual MGAttribedGel & | operator= (const MGAttribedGel &gel2) |
virtual | ~MGAttribedGel () |
void | copy_appearance (const MGAttribedGel &gel2) |
mgVBO * | dlist_name () const |
virtual bool | displayList_is_made (MGCL::VIEWMODE vmode) const |
Judge if the display list for vmode is made or not. [詳解] | |
void | deleteDlistName () const |
virtual void | drawAttrib (mgVBO &vbo, bool no_color=false) const |
Process of draw or render attributes. [詳解] | |
virtual void | render_attribute () const |
virtual int | get_draw_attrib_mask () const |
Obtain attribute mask for glPushAttrib(). [詳解] | |
virtual int | get_render_attrib_mask () const |
int | getVBOElementsNumber () const |
Get the number of elements of m_dlistName. [詳解] | |
int | getVBOShaderElementsNumber () const |
Get the number of shading elements of m_dlistName. [詳解] | |
virtual bool | no_display () const |
void | remove_GLattrib (long tid) |
Removed the attribute of specified type. [詳解] | |
virtual void | set_GLattrib (MGGLAttrib *attr) |
virtual void | set_display () |
Set this group as display or no display group. [詳解] | |
virtual void | set_no_display () |
bool | visible () const |
void | set_name (const MGName &newName) |
const MGName * | get_name () const |
void | set_color (const MGColor &newColor) |
const MGColor * | get_color () const |
void | setDlistName (mgVBO *vbo=0) const |
void | setDirty (bool is_dirty) const |
Set dirty flag(s) of this VBO(m_dlistName). [詳解] | |
基底クラス MGGel に属する継承公開メンバ関数 | |
virtual | ~MGGel () |
Virtual Destructor. [詳解] | |
virtual bool | operator!= (const MGGel &gel2) const |
virtual bool | operator> (const MGGel &gel2) const |
virtual MGAttrib * | attrib () |
Return MGAttrib pointer if this MGGel is an MGAttrib, else return null. [詳解] | |
virtual const MGAttrib * | attrib () const |
virtual MGGroup * | group () |
Return MGGroup pointer if this MGGel is an MGGroup, else return null. [詳解] | |
virtual const MGGroup * | group () const |
virtual MGPoint * | point () |
Return point pointer if this MGGel is an MGPoint, else return null. [詳解] | |
virtual const MGPoint * | point () const |
virtual MGSurface * | surf () |
Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解] | |
virtual const MGSurface * | surf () const |
virtual MGTopology * | topology () |
Return MGTopology pointer if this MGGel is an MGTopology, else return null. [詳解] | |
virtual const MGTopology * | topology () const |
virtual MGFace * | face () |
Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解] | |
virtual const MGFace * | face () const |
virtual MGShell * | shell () |
Return MGShell pointer if this MGGel is an MGShell, else return null. [詳解] | |
virtual const MGShell * | shell () const |
std::string | string_content () const |
bool | type_is (const MGAbstractGels &types) const |
限定公開メンバ関数 | |
MGCParam_list | intersect_1D (double f, int coordinate=0) const |
std::auto_ptr< MGCurve > | oneD (const double g[4]) const |
void | ReadMembers (MGIfstream &buf) |
void | WriteMembers (MGOfstream &buf) const |
基底クラス MGCurve に属する継承限定公開メンバ関数 | |
void | approximate_as_LBRep2 (MGLBRep &lb, int order, int is, int ie, bool neglectMulti=false) const |
Approximate this curve as a MGLBRep curve from knot_vector[is] to [ie]. [詳解] | |
virtual void | data_points_for_approximate_as_LBRep2 (int is, int ie, MGKnotVector &t, MGNDDArray &tau, bool neglectMulti=false) const |
Get data points for approximate_as_LBRep2. [詳解] | |
void | extrapolated_pp (double tau, double dk, MGPPRep &pp) const |
Obtain an extrapolated PP-Rep curve by the parameter value. [詳解] | |
MGPosition_list | perpsSl (const MGStraight &sl) const |
Perpendicular points with straight. [詳解] | |
virtual void | update_mark () |
Mark this as updated. [詳解] | |
基底クラス MGGeometry に属する継承限定公開メンバ関数 | |
MGGeometry & | set_geometry (const MGGeometry &geo2) |
Assignment. [詳解] | |
基底クラス MGObject に属する継承限定公開メンバ関数 | |
MGObject & | set_object (const MGObject &gel2) |
フレンド | |
MG_DLL_DECLR friend MGLBRep | operator+ (const MGVector &v, const MGLBRep &lb) |
translation by a vector. [詳解] | |
MG_DLL_DECLR friend MGLBRep | operator* (double scale, const MGLBRep &) |
scaling by a scalar. [詳解] | |
MG_DLL_DECLR friend MGPvector < MGLBRep > | rebuild_knot (const std::vector< const MGCurve * > &brepl, int order=0, MGLBRep **tp=0) |
MG_DLL_DECLR friend MGPvector < MGLBRep > | rebuild_knot (const MGPvector< MGCurve > &brepl, int order=0, MGLBRep **tp=0) |
Same as above, except that the input is MGPvector<>. [詳解] | |
MG_DLL_DECLR friend void | remove_knot_curves (MGPvector< MGLBRep > &brepList, MGLBRep **tp=0, double tp_length=0.) |
その他の継承メンバ | |
基底クラス MGGeometry に属する継承限定公開変数類 | |
MGBox * | m_box |
基底クラス MGAttribedGel に属する継承限定公開変数類 | |
std::auto_ptr< mgVBO > | m_dlistName |
display name if m_dlistName!=0; [詳解] | |
MGLBRep is a class for B-SPline representation.
For a general NURBS(non uniform rational B-Spline) is MGRLBRep. LBRep abbrebiates Line B-Representation. MGLBRep consists of a knot vector(MGKnotVector) and a control polygon(MGBPointSeq) whose B-representaiton dimension are the same.
|
inline |
Default(dummy) constructor.
|
inline |
Dummy constructor that specifies area length.
bdim | b-rep dimension of the lbrep. |
order | order of the lbrep. |
sdim | space dimension of the lbrep |
MGLBRep::MGLBRep | ( | const MGKnotVector & | t, |
const MGBPointSeq & | bcoef | ||
) |
Construct Line B-Representation, providing all the member data. ***** This is the fundamental constructor.*****
t | Knot Vector. |
bcoef | Line B-Coef. |
|
explicit |
Construct Line B-rep by intepolation from Point data only. If circular is true, start and end points must be the same, (that is points[0]==points[n-1]) and the MGLBRep constructed is smoothly connected at the point. If circular is true, order will be always 4, and input order is neglected.
points | Point seq data |
order | Order |
circular | Circular flag. If true, circular. |
MGLBRep::MGLBRep | ( | const MGNDDArray & | tau, |
const MGBPointSeq & | points, | ||
int | order = 4 , |
||
double | ratio = -1. |
||
) |
Construct Line B-rep of a specified order, given data point abscissa and the ordinates.
tau | Data point abscissa |
points | Point seq data |
order | order |
ratio | Maximum of data point ratio of pre and after spans. Let d(i)=tau[i]-tau[i-1], then if d(i)/d(i-1)>ratio or d(i-1)/d(i)>ratio, either tau[i] or tau[i-1] will be removed. This is done to prevent control polygon computation error. When ratio<0. no data point removal will be done. |
MGLBRep::MGLBRep | ( | const MGNDDArray & | tau, |
const MGBPointSeq & | points, | ||
const MGKnotVector & | t | ||
) |
Construct Line B-rep of any order number by interpolation from Point data only with knot vector.
tau | Data point abscissa. |
points | Point seq data(data point ordinate). |
t | knot vector. |
MGLBRep::MGLBRep | ( | const MGLBRepEndC & | begin, |
const MGLBRepEndC & | end, | ||
const MGNDDArray & | tau, | ||
const MGBPointSeq & | value | ||
) |
Construct Line B-rep of order 4 by interpolation from Point data and end condition. (tau(i), value(i,.)) for 0<=i<=n(the length of value). For the start and end point, tau does not have multiplicity. However, if tau has multiplicity at inner point, this means 1st derivative data is provided for the associated value, i.e.: If tau has multiplicity 2 as tau(i)=tau(i+1), value(i,.) is 1st derivative at tau(i) and value(i+1,.) is positional data at tau(i)(=tau(i+1)). If tau has multiplicity 3 as tau(i)=tau(i+1)=tau(i+2), value(i,.) is 1st derivative at tau(i)- , value(i+1,.) is positional data at tau(i)(=tau(i+1)), value(i+2,.) is 1st derivative at tau(i)+. Maximum multiplicity allowed is 3.
begin | Begin end condition |
end | End end conditoion |
tau | Data point abscissa |
value | Data point ordinate |
MGLBRep::MGLBRep | ( | int | order, |
const MGLBRepEndC & | begin, | ||
const MGLBRepEndC & | end, | ||
const MGNDDArray & | tau, | ||
const MGBPointSeq & | value | ||
) |
Construct Line B-rep of any order by interpolation from Point data and end condition. (tau(i), value(i,.)) for 0<=i<=n(the length of value). For the start and end point, tau does not have multiplicity. However, if tau has multiplicity at inner point, this means 1st derivative data is provided for the associated value, i.e.: If tau has multiplicity 2 as tau(i)=tau(i+1), value(i,.) is 1st derivative at tau(i) and value(i+1,.) is positional data at tau(i)(=tau(i+1)). If tau has multiplicity 3 as tau(i)=tau(i+1)=tau(i+2), value(i,.) is 1st derivative at tau(i)- , value(i+1,.) is positional data at tau(i)(=tau(i+1)), value(i+2,.) is 1st derivative at tau(i)+. Maximum multiplicity allowed is 3.
order | Order of the MGLBRep |
begin | Begin end condition |
end | End end conditoion |
tau | Data point abscissa |
value | Data point ordinate |
MGLBRep::MGLBRep | ( | const MGLBRepEndC & | begin, |
const MGLBRepEndC & | end, | ||
const MGNDDArray & | tau, | ||
const MGBPointSeq & | value, | ||
const MGKnotVector & | t | ||
) |
Construct Line B-rep of any order by interpolation from Point data with end condition and the knot vector for the B-rep to construct. (tau(i), value(i,.)) for 0<=i<=n(the length of value). tau(i) and knot vector t must satisfy Shoenberg's variation diminishing constraint. For the start and end point, tau does not have multiplicity. However, if tau has multiplicity at inner point, this means 1st derivative data is provided for the associated value, i.e.: If tau has multiplicity 2 as tau(i)=tau(i+1), value(i,.) is 1st derivative at tau(i) and value(i+1,.) is positional data at tau(i)(=tau(i+1)). If tau has multiplicity 3 as tau(i)=tau(i+1)=tau(i+2), value(i,.) is 1st derivative at tau(i)- , value(i+1,.) is positional data at tau(i)(=tau(i+1)), value(i+2,.) is 1st derivative at tau(i)+. Maximum multiplicity allowed is 3.
begin | Begin end condition |
end | End end conditoion |
tau | Data point abscissa |
value | Data point ordinate |
t | knot vector. |
MGLBRep::MGLBRep | ( | const MGLBRepEndC & | begin, |
const MGLBRepEndC & | end, | ||
const MGBPointSeq & | points, | ||
const int * | point_kind, | ||
const MGOscuCircle & | circle | ||
) |
Construct Line B-rep of order 4 from point and point-kind followed by osculating circle data. point_kind[i] is point kind of the point points(i,.): =0:G2 point, =1:G0 point, =2:G1 point. If two consecutive points are 1 or 2, the span is a straight line. point_kind 2 is a start of G2 curve. If two straight line span meet at points(i), osculating circle can be generated at this point by providing circle data at this point.
begin | Begin end condition |
end | End end conditoion |
points | Point seq data |
point_kind | Point kind of above point. |
circle | Provides osculating circle data. |
|
explicit |
Construct Curve B-Rep. This is an approximation, and the tolerance is MGTolerance::line_zero().
crv | Original Curve. |
order | Order. When order=0 is input, and crv was a MGLBRep, the original order will be used. Otherwise(order=0 and crv was not an MGLBRep) order will be set to 4. |
parameter_normalization | Indicates how the parameter normalization be done: =0: no parameter normalization. =1: normalize to range=(0., 1.); =2: normalize to make the average length of the 1st derivative is as equal to 1. as possible. |
neglectMulti | Indicates if multiple knots be kept. true: multiplicity is removed. false: multiplicity is kept. |
MGLBRep::MGLBRep | ( | const MGLBRep & | old_brep, |
const MGKnotVector & | t | ||
) |
Approximate an original B-Rep by a new knot configuration. The new knot config must be inside the range of the original B-Rep parameter. However new knots may be coarse or fine.
old_brep | Original B-Rep. |
t | knot vector |
MGLBRep::MGLBRep | ( | const MGCurve & | old_curve, |
const MGKnotVector & | t | ||
) |
Construct 3D B-Rep by mixing two 2D B-Rep. The two 2D B-Rep's directions and start and end points must be the same. Second 2D B-Rep can be girth representaion, ie, Let brep1 is f(t)=(f1(t),f2(t)) and brep2 is g(s)=(g1(s),g2(s)), where f1,f2 are two coordinates, g1 is parameter t of f(t), g2(s) is the missing coordinate of f(t). Given parameter s, ( f1(g1(s)), f2(g1(s)), g2(s)) is a 3D space point.
coordinate1 | Missing oordinate kind of the brep1 0:x, 1:y, 2:z. |
brep1 | Original 2D B-Rep1. Coordinates are (y,z), (z,x), (x,y) according to coordinate1. |
coordinate2 | Missing coordinate kind of the brep2. 0:x, 1:y, 2:z, and 3:girth rep. |
brep2 | Original 2D B-Rep2. Coordinates are (y,z), (z,x), (x,y) and (t, g2) according to coordinate2. t is parameter of brep1 and g2 is x, y, or z according to coordinate1. |
MGLBRep::MGLBRep | ( | const MGNDDArray & | tau, |
const MGBPointSeq & | points, | ||
const double * | weight, | ||
const MGKnotVector & | t | ||
) |
Construct Line B-rep of any order number by least square approximation from Point data with approximation weights and knot vector of B-Rep. weight[i] is for points(i,.). For detail information of the approximation method, see "A Practical Guide to Splines by Carl de Boor" Springer-Verlag.
tau | Data point abscissa |
points | Point seq data |
weight | Weights for each points |
t | knot vector |
MGLBRep::MGLBRep | ( | const MGPPRep & | pprep | ) |
Convert PP-Rep to B-rep.
MGLBRep::MGLBRep | ( | const MGPPRep & | pprep, |
const MGKnotVector | t | ||
) |
This constructor constructs B-Rep, converting from PP-Rep. Knot Vector is input. Each knot of the knot vector is break point of pprep. The continuities at all the break points must be C(k-2) where k is the order of pprep.
pprep | PP-rep |
t | Knot Vector |
MGLBRep::MGLBRep | ( | const MGLBRep & | old_brep, |
const MGKnotArray & | knots | ||
) |
Gets new B-Rep by adding knots to an original B-Rep.
old_brep | Original B-Rep. |
knots | Knots to add. |
Construct LBRep by connecting brep1 and brep2 to make one B-Representation. brep1's parameter range will not be changed, instead brep2's range will be so modified that brep2 has the same 1st derivative magnitude as the original brep1's at the connecting point (start or end point of brep1). continuity and which can be obtained using the fucntion continuity().
brep1 | B-Rep 1. |
continuity | continuity. must be>=0. |
which | which point of brep1 to which of brep2. meaingfull when continuity>=0. =0: start of brep1 and start of brep2. =1: start of brep1 and end of brep2. =2: end of brep1 and start of brep2. =3: end of brep1 and end of brep2. |
brep2 | B-Rep 2. |
MGLBRep::MGLBRep | ( | double | t1, |
double | t2, | ||
const MGLBRep & | old_brep, | ||
int | multiple = 0 |
||
) |
Gets new B-Rep by computing a part of the original. New one is exactly the same as the original except that it is partial. If multiple==true(!=0), knot(i)=t1 and knot(n+i)=t2 for i=0,..., k-1 will be guaranteed. Here, n=bdim() and k=order(). Both t1 and t2 must be inside te range of old_brep.
t1 | New parameter range. t1 must be less than t2. |
t2 | End of the parameter range. |
old_brep | Original B-Rep. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGLBRep::MGLBRep | ( | int | id1, |
int | id2, | ||
const MGLBRep & | old_brep | ||
) |
Gets new B-Rep by subdividing the original one into a part. New one is exactly the same as the original except that it is partial. id1 and id2 are id's of old_brep.knot_vector(), and indicates the parameter range of old_brep as from t[id1] to t[id2]. Here t=old_brep.knot_vector(). This constructor employs the partial knot vector of t and old_brep's B-coefficients. And so, knot multiplicity of start and end of the new knot vector is not guaranteed. It depends on the original one.
id1 | start id of old_brep's knot vector. |
id2 | End id of old_brep's knot vector. |
old_brep | Original B-Rep. |
MGLBRep::MGLBRep | ( | int | dim, |
const MGLBRep & | lbrep, | ||
int | start1 = 0 , |
||
int | start2 = 0 |
||
) |
Construct a Line B-Rep by changing space dimension and ordering of coordinates.
dim | New space dimension. |
lbrep | Original Line B-rep. |
start1 | Destination order of new line. |
start2 | Source order of original line. |
|
inline |
|
virtual |
Approximate this curve as a MGLBRep curve within the tolerance MGTolerance::line_zero(). When parameter_normalization=0, reparameterization will not done, and the evaluation at the same parameter has the same values before and after of approximate_as_LBRep.
lb | Approximated obrep will be set. |
ordr | new order. When this is MGLBRep, if ordr=0, ordr=order() will be assumed, else ordr=4 is assumed. |
parameter_normalization | Indicates how the parameter normalization be done: =0: no parameter normalization. =1: normalize to range=(0., 1.); =2: normalize to make the average length of the 1st derivative is as equal to 1. as possible. |
neglectMulti | Indicates if multiple knots be kept. true: multiplicity is removed. false: multiplicity is kept. |
MGCurveを再実装しています。
|
inlinevirtual |
Returns B-Rep Dimension.
MGCurveを実装しています。
|
virtual |
入力のパラメータ範囲の曲線部分を囲むボックスを返す。 Return minimum box that includes the partial line.
MGCurveを実装しています。
const MGBox& MGLBRep::box_unlimit | ( | ) | const |
Return minimum box that includes the whole line.
void MGLBRep::buildSRSmoothedLB_of_1stDeriv | ( | const MGLBRepEndC & | begin, |
const MGLBRepEndC & | end, | ||
const MGNDDArray & | tau, | ||
const MGBPointSeq & | y, | ||
const double * | dy, | ||
double | deviation, | ||
bool | dev_is_sum = false |
||
) |
Build line B-Rep by Schoenberg and Reinsch smoothing function, given 1st derivatives on the start and end points, data points (tau,y), weights dy at data points, and a mean deviation deviation. If dy[i] gets larger, deviation at tau(i) gets larger. n can be any number greater than or equal to 2.
begin | Begin end condition |
end | End end conditoion. begin.cond() and end.cond() must be MGENDC_1D or MGENDC_12D. |
tau | Data point abscissa |
y | Data point ordinates. |
dy | dy[i] is the weight at tau[i] for i=0,..., tau.length()-1. |
deviation | if dev_is_sum is true, deviation is the upper bound of Sum(((points(i)-pout(i))/dp[i])**2. if dev_is_sum is false, deviation is max_deviation of each point at tau[i],i.e., dev_is_sum=true: deviation>=Sum(((points(i)-pout(i))/dp[i])**2), dev_is_sum=false:deviation>=Max((points(i)-pout(i))**2), for i=0,...,n-1. Here pout(i) is the this->eval(tau(i)). |
dev_is_sum | See deviation. |
void MGLBRep::buildSRSmoothedLB_of_FreeEnd | ( | const MGNDDArray & | tau, |
const MGBPointSeq & | y, | ||
const double * | dy, | ||
double | deviation, | ||
bool | dev_is_sum = false |
||
) |
Build line B-Rep by Schoenberg and Reinsch smoothing function, supposing the end conditions are free end conditions, given data points (tau,y), weights dy at data points, and a deviation. If dy[i] gets larger, deviation at tau(i) gets larger. n can be any number greater than or equal to 2. ***End conditions are free end condition.***
tau | Data point abscissa |
y | Data point ordinates. |
dy | dy[i] is the weights at tau[i] for i=0,..., tau.length()-1. |
deviation | if dev_is_sum is true, deviation is the upper bound of Sum(((points(i)-pout(i))/dp[i])**2. if dev_is_sum is false, deviation is max_deviation of each point at tau[i],i.e., dev_is_sum=true: deviation>=Sum(((points(i)-pout(i))/dp[i])**2), dev_is_sum=false:deviation>=Max((points(i)-pout(i))**2), for i=0,...,n-1. Here pout(i) is the this->eval(tau(i)). |
dev_is_sum | See deviation. |
|
virtual |
Changing this object's space dimension.
sdim | new space dimension |
start1 | Destination order of new object. |
start2 | Source order of this object. |
MGCurveを実装しています。
MGLBRep& MGLBRep::change_order | ( | int | order | ) |
Change order of the B-Rep. When new order is greater than the original, new B-rep is guaranteed to be the same line as the original. However, if new order is less than the original one, new line is not the same in general.
order | New order number. |
MGLBRep& MGLBRep::change_order_by_approximation | ( | int | ordr | ) |
Change order of the B-Rep by approximation.
ordr | New order number. |
|
virtual |
Change parameter range, be able to change the direction by providing t1 greater than t2.
t1 | Parameter value for the start of original. |
t2 | Parameter value for the end of original. |
MGCurveを実装しています。
|
virtual |
Construct new curve object by copying to newed area. User must delete this copied object by "delete".
MGCurveを実装しています。
mgTL2Polylineで再実装されています。
|
inline |
Access to (i,j)th element of coef ( left-hand side version)
|
inline |
Access to (i,j)th element of coef (right hand side version)
|
inline |
Returns a pointer to the line b-coef data.
|
inline |
void MGLBRep::connect | ( | int | continuity, |
int | which, | ||
const MGLBRep & | brep2 | ||
) |
Connect brep2 to this brep to make one B-Representation. This parameter range will not be changed, instead brep2's range will be so changed that brep2 has the same 1st derivative magnitude as the original this brep's at the connecting point(start or end point of this). continuity and which can be obtained using the fucntion continuity().
continuity | continuity. must be>=0. |
which | which point of this to which of brep2. =0: start of this and start of brep2. =1: start of this and end of brep2. =2: end of this and start of brep2. =3: end of this and end of brep2. |
brep2 | B-Rep 2. |
int MGLBRep::continuity | ( | const MGLBRep & | brep2, |
int & | which, | ||
double & | ratio | ||
) | const |
Compute continuity with brep2. Function's return value is: -1: G(-1) continuity, i.e. two lines are discontinuous. 0: G0 continuity, i.e. two lines are connected, but tangents are discontinuous 1: G1 continuity, i.e. two lines are connected, and tangents are also continuous. 2: G2 continuity, i.e. two lines are connected, and tangents and curvatures are also continuous.
brep2 | The target 2nd curve. |
which | Indicates which point of this is connected to which of brep2, is meaingfull when continuity>=0. =0: start of this to start of brep2. =1: start of this to end of brep2. =2: end of this to start of brep2. =3: end of this to end of brep2. |
ratio | Ratio of 1st derivatives of the two line will be returned. ratio= d2/d1, where d1=1st deriv of this and d2=of brep2 |
|
virtual |
Convert this curve to Bezier curve. If this is MGLBRep or MGStraight, the shape is exactly the same as the original. Otherwise, this is apporoximated by MGLBRep. The result MGLBRep is of order 2 if original order is 2 and is of order4 otherwise.
MGCurveを再実装しています。
|
virtual |
Exchange ordering of the coordinates. Exchange coordinates (j1) and (j2).
MGCurveを実装しています。
MGLBRep* MGLBRep::copy_as_LBRep | ( | ) | const |
copy as a newed curve. The new curve will be MGLBRep. Returned object must be deleted.
|
inlinevirtual |
|
virtual |
Construct new curve object by changing the original object's space dimension. User must delete this copied object by "delete".
sdim | new space dimension |
start1 | Destination order of new line. |
start2 | Source order of this line. |
MGCurveを実装しています。
|
virtual |
Construct new curve object by copying to newed area, and limitting the parameter range to prange. Returned is newed object and must be deleted.
MGCurveを再実装しています。
|
virtual |
Compute curvilinear integral of the 1st two coordinates. This integral can be used to compute area sorounded by the curve. (線積分)を求める。
MGCurveを再実装しています。
|
virtual |
Display control polygons using mgVBO::MGDrawPointSeq()
MGGelを再実装しています。
Divide this curve at the designated knot multiplicity point. Function's return value is the number of the curves after divided.
crv_list | divided curves will be appended. |
multiplicity | designates the multiplicity of the knot to divide at. When multiplicity<=0, order()-1 is assumed. When multiplicity>=order(), order() is assumed. |
MGCurveを再実装しています。
|
virtual |
Draw this curve into vbo, approximating with polyline.
vbo | The target graphic object. |
span_length | Line segment span length. |
t0 | Start parameter value of the curve. |
t1 | End parameter value of the curve. Draw will be performed from t0 to t1. |
MGCurveを再実装しています。
|
virtual |
Evaluate right continuous n'th derivative data. nderiv=0 means positional data evaluation.
nderiv | Order of Derivative. |
leftcon | Left continuous(leftcon=true) or right continuous(leftcon=false). |
MGCurveを実装しています。
|
virtual |
Compute position, 1st and 2nd derivatives. パラメータ値を与えて位置、一次微分値、二次微分値をもとめる。
MGCurveを再実装しています。
void MGLBRep::eval_all | ( | double | tau, |
int | nderiv, | ||
double * | deriv, | ||
int | leftcon = 0 |
||
) | const |
Evaluate all of i'th derivative data for 0<=i<=nderiv. Output will be put on deriv[j+i*sdim()] for 0<=i<=nderiv and 0<=j<sdim(), i.e. deriv[j+i*sdim()] is i-th derivative data for 0<=j<sdim().
tau | Parameter value to evaluate. |
nderiv | Order of Derivative. |
deriv | Output area of size (nderiv+1)*sdim(). |
leftcon | Left continuous(leftcon=true) or right continuous(leftcon=false). |
void MGLBRep::eval_line | ( | MGENDCOND | begin, |
MGENDCOND | end, | ||
const MGNDDArray & | tau, | ||
MGBPointSeq & | value | ||
) | const |
Evaluate line data at data point seq.(BLELIN)
begin | Begin end condition |
end | End end conditoion |
tau | Data points. |
value | Values evaluated. |
|
inlinevirtual |
Evaluate line data at data point seq.(BLELIN)
tau | Data points. |
value | Values evaluated. |
MGCurveを再実装しています。
MGLBRep& MGLBRep::extend | ( | int | start, |
double | length, | ||
double | dk | ||
) |
Extrapolate the curve by the chord length. The extrapolation is C2 continuous if the order >=4.
start | Flag of start or end poit of the line. If start is true extend on the start point. |
length | chord length to extend. |
dk | Coefficient of how curvature should vary at the connecting point. extrapolation start point. When dk=0, curvature keeps same, i.e. dK/dS=0. When dk=1, curvature becomes zero at length extrapolated point, i.e. dK/dS=-K/length at extrapolation start point. (S=parameter of arc length, K=Curvature at start point) That is, when dk reaches to 1 from 0, curve changes to flat. |
|
virtual |
Extrapolate this curve by an (approximate) chord length. The extrapolation is C2 continuous.
length | approximate chord length to extend. |
start | Flag of which point to extend, start or end point of the line. If start is true extend on the start point. |
MGCurveを実装しています。
MGLBRep& MGLBRep::extend_with_parameter | ( | double | tau, |
double | dk | ||
) |
Extrapolate the curve by the parameter value.
|
virtual |
Extracts control points. Fucntion's return value is true if control points was obtained, false if not.
cpoints | Control points will be output. |
MGCurveを再実装しています。
|
virtual |
Return This object's typeID.
MGCurveを実装しています。
|
protectedvirtual |
Compute intersection point of 1D sub B-Rep of original B-rep.(BLIPP) Parameter values of intersection point will be returned. isect_1D covers this LBRep's C0 ontinuity.
f | Coordinate value |
coordinate | Coordinate kind of the data f(from 0). Id of m_line_bcoef. |
MGCurveを再実装しています。
|
virtual |
Test if this is a Bezier Curve. Functions's return value is MGLBRep* if Bezier, null if not. If input ordr>=2, order is also tested if this Bezier's order is the same as input order. If input ordr<=1, any ordr>=2 is allowed for Bezier curve. Bezier curve is defined as follows. Here t=knot_vector(), k is this LBRep's order, n=bdim(), and m=(n-k)/(k-1). (1) n=k+(k-1)*m. (2) t(0)=t(1)=,...,=t(k-1)=0 (3) t(i)=t(i+1)=,...,=t(i+k-2)=j+1 for i=k, k+(k-1),...,k+j*(k-1) and j=0,...,m-1. (4) t(n)=t(n+1)=,...,=t(n+k-1)=m+1
MGCurveを再実装しています。
|
virtual |
|
virtual |
Spline と Curve の交点を求める。 Intersection point of spline and curve.
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
inline |
Access to i-th element of knot. ( left-hand side version)
|
inlinevirtual |
Access to i-th element of knot. (right hand side version)
MGCurveを実装しています。
|
inline |
Returns a pointer to the knot vector data.
|
inline |
|
inlinevirtual |
Returns the knot vector. (RHS version)
MGCurveを実装しています。
|
inline |
Returns the knot vector. (LHS version)
|
virtual |
Update this by limiting the parameter range of the curve.
自身に指定したパラメータ範囲のlimitをつける.
MGCurveを実装しています。
mgTL2Polylineで再実装されています。
|
inline |
Returns the B-coef's(RHS version).
|
inline |
Returns the B-coef's(LHS version).
MGLBRep& MGLBRep::move | ( | int | move_kind, |
double | move_point_param, | ||
const MGPosition & | to_point, | ||
const double | fix_point[2] | ||
) |
Modify the original line by moving move_point to to_point. fix_point can be applied according to move_kind. move_kind=1: Start and end point of the line are fixed. The line is modified linearly so that move_point_param point is the maximum move. =2: The point fix_point[0] is fixed and the other end of the move_point_param side is moved. In this case, maximum move is the end point of the line. =3: fix_point[0]<move_point_param<fix_point[1], and two point fix_point[.] are fixed. The line is modified linearly so that move_point_param point is the maximum move. otherwise: Two fix point fix_point[.] are computed so that the modify range is the minimum. Other move is same as move_kind=3. Restriction: For the case move_kind=3, actual fix point is wider than specified range. The range is the smallest one possible including fix_point[].
move_kind | Indicates how to move line. |
move_point_param | indicate object point to move by the parameter value. |
to_point | destination point of the abve source point. |
fix_point | See function explanation. |
|
virtual |
|
virtual |
Obtain parameter value if this curve is negated by "negate()".
MGCurveを実装しています。
|
protectedvirtual |
Obtain so transformed 1D curve expression of this curve that f(t)={sum(xi(t)*g[i]) for i=0(x), 1(y), 2(z)}-g[3], where f(t) is the output of oneD and xi(t) is i-th coordinate expression of this curve. This is used to compute intersections with a plane g[4].
g | Plane expression(a,b,c,d) where ax+by+cz=d. |
MGCurveを実装しています。
MGLBRep MGLBRep::operator* | ( | double | ) | const |
bool MGLBRep::operator< | ( | const MGLBRep & | gel2 | ) | const |
Assignment. When the leaf object of this and crv2 are not equal, this assignment does nothing.
MGGelを再実装しています。
bool MGLBRep::operator== | ( | const MGLBRep & | gel2 | ) | const |
comparison
bool MGLBRep::operator== | ( | const MGRLBRep & | gel2 | ) | const |
|
inlinevirtual |
Returns the order.
MGCurveを実装しています。
|
virtual |
|
virtual |
IGES output function. PD126.
Returns the knot vector. MGKnotVector knot_vector_real() const{return knot_vector();}
MGGelを再実装しています。
|
virtual |
Return ending parameter value.
MGCurveを実装しています。
|
virtual |
Normalize parameter value t to the nearest knot if their distance is within tolerance.
MGCurveを実装しています。
|
virtual |
Return starting parameter value.
MGCurveを実装しています。
|
virtual |
Compute part of this curve from parameter t1 to t2. Returned is the pointer to newed object, and so should be deleted by calling program, or memory leaked.
t1 | from parameter t1. |
t2 | To parameter t2. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGCurveを実装しています。
|
virtual |
与ポイントから曲線へ下ろした垂線の足の,曲線のパラメータ値を すべて求める。 Return all the foots of the straight lines that is perpendicular to the line.
point | 与ポイント |
MGCurveを再実装しています。
|
virtual |
Compute all the perpendicular points of this curve and the second one. That is, if f(s) and g(t) are the points of the two curves f and g, then obtains points where the following conditions are satisfied: fs*(f-g)=0. gt*(g-f)=0. Here fs and gt are 1st derivatives at s and t of f and g. MGPosition P in the MGPosition_list contains this and crv's parameter as: P(0)=this curve's parameter, P(1)=crv2's parameter value.
MGCurveを実装しています。
|
virtual |
MGCurveを実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
|
virtual |
MGCurveを再実装しています。
int MGLBRep::planar | ( | MGPlane & | plane, |
MGStraight & | line, | ||
MGPosition & | point | ||
) | const |
Check if the line B-rep is planar. Funtion's return value is; 0: Not planar, nor a point, nor straight line. 1: B-Rep is a point. 2: B-Rep is a straight line. 3: B-Rep is planar.
plane | When Brep is not straight line nor a point, plane is returned. Even when not planar(return value is 0), plane nearest is returned. |
line | When Brep is a line, line is returned. |
point | When Brep is a point, point is returned. |
|
virtual |
曲線を面に面直またはベクトル投影して曲線リストを求める。 投影曲線は面上のパラメータ曲線と3次元曲線としてそれぞれ順番に、 vec_crv_uv, vec_crvに格納される。 uv曲線のトレランスはrc_zero()を、3次元曲線はline_zero()をそれぞれ使用している。 get perpendicular or vector projection curve list. uv projection curves are put into vec_crv_uv(rc_zero() is used), 3d projection curves are put into vec_crv(line_zero() is used) respectively. 戻り値: 投影曲線の数: 投影曲線が求まった 0: 投影曲線が求まらなかった -1: 内部処理エラー -2: 収束処理エラー(収束しなかった) 追記:引数vecが与えられない(null)とき、面直投影する。 Obtain the projected curve of a curve onto the surface. The direction of the projection is along the vector vec if the vec is not NULL, and normal to the surface if the vec is NULL. Output of 'project' is two kind of curves: one is general world coordinate curves('vec_crv'), and the other is (u,v) curves of the parameter space of the surfaces(vec_crv_uv). vec_crv_uv.size() is equal to vec_crv.size(). Let the size be n, then (vec_crv_uv[i], vec_crv[i]) is one pair for 0<=i<n. Function's return value is: >=0: number of curves obtained, <0 : Some error detected.
MGCurveを再実装しています。
int MGLBRep::project | ( | const MGPlane & | plane, |
MGPvector< MGCurve > & | vec_crv_uv, | ||
MGPvector< MGCurve > & | vec_crv, | ||
const MGVector & | vec | ||
) | const |
|
protectedvirtual |
メンバデータを読み出す関数 戻り値boolは正常に読み出しが出来ればtrue、失敗すればfalseになる
MGCurveを再実装しています。
int MGLBRep::reduce | ( | int | ndec | ) |
Change the B-Rep by decreasing B-Rep dimension by ndec. This is an approximation of the origimal B-Rep. Return value is error flag.
ndec | Number of B-rep dimension to decrease |
MGLBRep& MGLBRep::refine | ( | const MGKnotVector & | t | ) |
Change an original B-Rep to new one with subdivided knot configuration. Knots t must be subdivided knots.
t | BLUNKknot vector |
|
inlinevirtual |
ノット削除関数 トレランスはline_zeroを使用する。元のノットが細かいものほど削除しやすい removal knot. line_zero tolerance is used.
MGCurveを再実装しています。
void MGLBRep::remove_knot | ( | int | j, |
int | snum | ||
) |
Remove knot if removed line has the difference less than line_zero(); The difference is checked only for the space id of coef(.,j+k) of j=0, ..., snum-1. When snum=0, snum is set as sdim();
int MGLBRep::remove_knot_one | ( | double | line0, |
int | nKnot, | ||
double & | totalTol, | ||
int & | num_knot, | ||
int | sid = 0 , |
||
int | snum = 0 |
||
) |
ノット削除関数(1つのノット) 戻り値は、削除したノットの数 When snum!=0, tolerance of totalTol is checked only for coef(.,sid+j), where j=0, ..., snum-1. When snum=0, snum is set as sdim();
line0 | Tolerance allowed for the knot removal. When line0=<0., the knot will be removed unconditionally. |
nKnot | 削除しようとするノットの番号 |
totalTol | 誤差合計 |
num_knot | Remained knot number at knot(id) after removed. |
sid | Space dimension start id of this LBRep's B-coef. |
snum | Num of space dimension for the totalTol tolerance check. |
|
inlinevirtual |
Returns the space dimension.
MGCurveを実装しています。
|
virtual |
Return sweep surface from crv Returned is a newed MGSurface, must be deleted. The sweep surface is defined as: This curve(say c(t)) is the rail and the straight line segments from C(t)+start_dist*uvec to C(t)+end_dist*uvec are the generatrix.
uvec | Sweep Direction. |
start_dist | distance to start edge. |
end_dist | distance to end edge. |
MGCurveを実装しています。
|
inlinevirtual |
曲線のタイプをを返す。 Return the curve type.
MGCurveを実装しています。
|
inlinevirtual |
Unlimit parameter range of the curve to the end point direction (終点方向にlimitをはずす)
MGCurveを実装しています。
|
inlinevirtual |
Unlimit parameter range of the curve to the start point direction (始点方向にlimitをはずす)
MGCurveを実装しています。
void MGLBRep::updatePolarCoordinates2Ordinary | ( | ) |
This is a polar coordinate system data. Given polar coordinate LBRep, update this to ordinary coordinates system MGLBRep. This curve's (x,y) coordinates are polar coordinates system(r,theta), where r is the distance from origin and theta is the angel with x coordinate. When return from the function (x,y) are ordinary coordinate system. The space dimension of this curve must be >=2; If this space dimension is lager than 2, the remaining coordinates are unchanged.
|
inlinevirtual |
MGCurveを再実装しています。
|
protectedvirtual |
メンバデータを書き込む関数 戻り値boolは正常に書き込みが出来ればtrue、失敗すればfalseになる
MGCurveを再実装しています。
translation by a vector.
|
friend |
曲線列のノットベクトルを再構築する 入力された複数曲線列を指定オーダーで再構築する。トレランスはline_zero()を使用している。 オーダーが指定されていないとき曲線列のうちで最も大きいオーダーを使用する。このとき、 Ellipse, Straightのオーダーは4として考える。 パラメータ範囲は1次微分値の大きさが1になるようにしたときの長さの平均を使用している。 戻り値は再構築後の曲線列が返却される。エラーのときヌルが返却される。
brepl | 入力曲線列 |
order | 指定オーダー |
tp | 接続面 |
|
friend |
Same as above, except that the input is MGPvector<>.
brepl | 入力曲線列 |
order | 指定オーダー |
tp | 接続面 |
|
friend |
複数カーブの共通で削除できるノットを削除する。 ただし、入力カーブは同じノットベクトルを持つものとする。
brepList | 曲線列 |
tp | 接続面 input and output. if tp[i] for crvl[i] was not null, converted new tp will be output. |
tp_length | ration of angle zero. When =zero, removal is done unconditionally. The actual error of the angle is set to tp_length*MGTolerance::angle_zero(). |