MGCL V10
V10
MGCL V10
|
MGCurve is an abstract class which represents a whole curve. [詳解]
公開メンバ関数 | |
MGCurve () | |
Void constructor(初期化なしでオブジェクトを作成する。). [詳解] | |
MGCurve (const MGCurve &curve) | |
Copy constructor. [詳解] | |
virtual | ~MGCurve () |
Virtual Destructor. [詳解] | |
virtual MGCurve & | operator= (const MGCurve &gel2) |
Assignment. [詳解] | |
virtual MGCurve & | operator+= (const MGVector &v)=0 |
Object transformation. [詳解] | |
virtual MGCurve & | operator-= (const MGVector &v)=0 |
virtual MGCurve & | operator*= (double scale)=0 |
virtual MGCurve & | operator*= (const MGMatrix &mat)=0 |
virtual MGCurve & | operator*= (const MGTransf &tr)=0 |
virtual bool | operator== (const MGCompositeCurve &crv) const |
Comparison. [詳解] | |
virtual bool | operator== (const MGTrimmedCurve &crv) const |
virtual bool | operator== (const MGGel &gel2) const =0 |
Comparison. [詳解] | |
virtual bool | operator< (const MGGel &gel2) const =0 |
virtual void | approximate_as_LBRep (MGLBRep &lb, int ordr=0, int parameter_normalization=0, bool neglectMulti=false) const |
Approximate this curve as a MGLBRep. [詳解] | |
void | arrow (double t, MGPosition data[4]) const |
Generate arrow data of the tangent at the parameter value t of the curve. [詳解] | |
virtual int | bdim () const =0 |
Returns B-Rep Dimension. [詳解] | |
virtual MGBox | box_limitted (const MGInterval &) const =0 |
Return minimum box that includes the curve of parameter interval. [詳解] | |
virtual MGPosition | center () const |
Obtain ceter coordinate of the geometry. [詳解] | |
virtual MGPosition | center_param () const |
Obtain ceter parameter value of the geometry. [詳解] | |
virtual MGCurve & | change_dimension (int sdim, int start1=0, int start2=0)=0 |
Changing this object's space dimension. [詳解] | |
virtual void | change_range (double t1, double t2)=0 |
Change parameter range. [詳解] | |
virtual MGCurve * | clone () const =0 |
Construct new geometry object by copying to newed area. [詳解] | |
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 MGCurve & | coordinate_exchange (int i, int j)=0 |
Exchange ordering of the coordinates. [詳解] | |
virtual MGCurve * | copy_as_nurbs () const =0 |
copy as a newed curve. [詳解] | |
virtual void | convert_to_Bezier (MGLBRep &bezier) const |
Convert this curve to Bezier curve. [詳解] | |
virtual MGCurve * | copy_change_dimension (int sdim, int start1=0, int start2=0) const =0 |
Construct new curve object by changing the original object's space dimension. [詳解] | |
virtual MGCurve * | copy_limitted (const MGInterval &prange) const |
Construct new curve object limitting the parameter range to prange. [詳解] | |
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 (double t1, double t2) const |
Compute curvilinear integral of the 1st two coordinates. [詳解] | |
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 |
virtual int | divide_multi (MGPvector< MGCurve > &crv_list, int multiplicity=-1) const |
Divide this curve at the designated knot multiplicity point. [詳解] | |
int | divide_number () const |
get the a divide number for offset, intersection, or others. [詳解] | |
virtual void | drawSE (mgVBO &vbo, double span_length, double t0, double t1) const |
Draw this curve into vbo, approximating with polyline. [詳解] | |
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 (double, int nderiv=0, int left=0) const =0 |
Evaluate n'th derivative data. [詳解] | |
virtual void | eval_all (double, MGPosition &, MGVector &, MGVector &) const |
Compute position, 1st and 2nd derivatives. [詳解] | |
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 void | eval_line (const MGNDDArray &tau, MGBPointSeq &value) const |
Evaluate line data at data point tau. [詳解] | |
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 | extend (double length, bool start=false)=0 |
Extrapolate this curve by an (approximate) chord length. [詳解] | |
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. [詳解] | |
virtual bool | get_control_points (MGBPointSeq &cpoints) const |
Extracts control points. [詳解] | |
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 long | identify_type () const =0 |
Return This object's typeID. [詳解] | |
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 |
virtual int | intersect_dnum () const =0 |
Provide divide number of curve span for function intersect. [詳解] | |
MGCSisect_list | intersect_with_plane (const MGPlane &surf) const |
intersections with a plane. [詳解] | |
virtual MGCCisect_list | isect (const MGCurve &curve2) const =0 |
Intersection of Curve and other geometry. [詳解] | |
virtual MGCCisect_list | isect (const MGStraight &curve2) const =0 |
virtual MGCCisect_list | isect (const MGRLBRep &curve2) const |
virtual MGCCisect_list | isect (const MGEllipse &curve2) const |
virtual MGCCisect_list | isect (const MGLBRep &curve2) const |
virtual MGCCisect_list | isect (const MGSurfCurve &curve2) const =0 |
virtual MGCCisect_list | isect (const MGBSumCurve &curve2) const |
MGCCisect_list | isect (const MGTrimmedCurve &curve2) const |
MGCCisect_list | isect (const MGCompositeCurve &curve2) const |
virtual MGCSisect_list | isect (const MGSurface &surf) const =0 |
virtual MGCSisect_list | isect (const MGPlane &surf) const =0 |
virtual MGCSisect_list | isect (const MGSphere &surf) const =0 |
virtual MGCSisect_list | isect (const MGCylinder &surf) const =0 |
virtual MGCSisect_list | isect (const MGSBRep &surf) const =0 |
virtual MGCSisect_list | isect (const MGRSBRep &surf) const =0 |
virtual MGCSisect_list | isect (const MGBSumSurf &surf) const =0 |
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. [詳解] | |
virtual const MGLBRep * | is_Bezier (int ordr=0) const |
Test if this is a Bezier 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_coplanar (const MGCurve &curve2, MGPlane &plane) const |
Test if this cure is co-planar with the 2nd curve curve2. [詳解] | |
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. [詳解] | |
virtual bool | is_planar (MGPlane &plane) const |
Test if this cure is planar or not. [詳解] | |
virtual double | knot (int i) const =0 |
Access to i-th element of knot. [詳解] | |
virtual const MGKnotVector & | knot_vector () const =0 |
Returns the knot vector of the curve. [詳解] | |
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. [詳解] | |
virtual MGCurve & | limit (const MGInterval &rng)=0 |
Update this by limiting the parameter range of the curve. [詳解] | |
MGCurve & | limit (double t0, double t1) |
int | manifold_dimension () const |
Return manifold dimension, 0:point, 1:curve, 2:surface. [詳解] | |
virtual void | negate ()=0 |
Negate the curve direction(曲線の方向を反転する). [詳解] | |
virtual double | negate_param (double t) const =0 |
Obtain the parameter value to t when this curve is negated by "negate()". [詳解] | |
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 int | order () const =0 |
Returns the order. [詳解] | |
virtual double | param (const MGPosition &) const |
Compute parameter value of given point. [詳解] | |
virtual double | param_e () const =0 |
Return ending parameter value. [詳解] | |
virtual double | param_error () const |
Obtain parameter space error. [詳解] | |
virtual double | param_normalize (double t) const =0 |
Normalize parameter value t to the nearest knot if their distance is within tolerance. [詳解] | |
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(パラメータ範囲を返す). [詳解] | |
virtual double | param_s () const =0 |
Return starting parameter value. [詳解] | |
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 MGCurve * | part (double t1, double t2, int multiple=0) const =0 |
Compute part of this curve from parameter t1 to t2. [詳解] | |
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. [詳解] | |
virtual MGCParam_list | perps (const MGPosition &P) const |
Compute all foot points of the perpendicular line from point to the curve. [詳解] | |
virtual MGPosition_list | perps (const MGCurve &crv2) const =0 |
Compute all the perpendicular points of this curve and the second one. [詳解] | |
virtual MGPosition_list | perps (const MGStraight &crv2) const =0 |
virtual MGPosition_list | perps (const MGRLBRep &crv2) const |
virtual MGPosition_list | perps (const MGEllipse &crv2) const |
virtual MGPosition_list | perps (const MGLBRep &crv2) const |
virtual MGPosition_list | perps (const MGSurfCurve &crv2) const |
virtual MGPosition_list | perps (const MGBSumCurve &crv2) const |
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 int | project (const MGFSurface &surf, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const |
Obtain the projected curve of a curve onto the surface. [詳解] | |
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 void | remove_knot () |
Remove redundant knot, and reduce the b-rep dimension. [詳解] | |
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 int | sdim () const =0 |
Return space dimension. [詳解] | |
virtual MGPosition | start_point () const |
Return start point(始点を返却する). [詳解] | |
virtual MGSurface * | sweep (const MGUnit_vector &uvec, double start_dist, double end_dist) const =0 |
Return sweep surface from crv. [詳解] | |
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 MGCURVE_TYPE | type () const =0 |
Return curve type(曲線のタイプを返す). [詳解] | |
virtual MGCurve & | unlimit ()=0 |
Unlimit parameter range of the curve(limitをはずす). [詳解] | |
virtual MGCurve & | unlimit_end ()=0 |
Unlimit parameter range of the curve to the end point direction. [詳解] | |
virtual MGCurve & | unlimit_start ()=0 |
Unlimit parameter range of the curve to the start point direction. [詳解] | |
virtual std::auto_ptr< MGLBRep > | PolarCoordinatesLBRep () const |
Obtain polar coordinates system MGLBRep of this curve. [詳解] | |
virtual std::ostream & | out (std::ostream &) const |
Output virtual function. [詳解] | |
virtual std::string | whoami () const |
基底クラス 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 MGGel & | operator= (const MGGel &gel2) |
virtual bool | operator!= (const MGGel &gel2) const |
virtual bool | operator> (const MGGel &gel2) const |
virtual int | out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) 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 |
virtual void | display_control_polygon (mgSysGL &sgl) const |
限定公開メンバ関数 | |
virtual void | ReadMembers (MGIfstream &buf) |
メンバデータを読み出す関数. [詳解] | |
virtual void | WriteMembers (MGOfstream &buf) const |
メンバデータを書き込む関数. [詳解] | |
virtual MGCParam_list | intersect_1D (double f, int coordinate=0) const |
Compute intersection point of 1D sub curve of original curve. [詳解] | |
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. [詳解] | |
virtual MGCCisect_list | isect_withC1LB (const MGLBRep &curve2) const |
Compute intersections with MGLBRep curve2 that does not have C0 continuity in it. [詳解] | |
virtual MGCCisect_list | isect_with_noCompoSC (const MGSurfCurve &curve2) const |
isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve. [詳解] | |
virtual std::auto_ptr< MGCurve > | oneD (const double g[4]) const =0 |
Obtain transformed 1D curve expression of this curve. [詳解] | |
virtual MGPosition_list | perps_withC1LB (const MGLBRep &lbC1) const |
Perpendicular points with C1 conitnuity LBRep. [詳解] | |
virtual MGPosition_list | perps_with_noCompoSC (const MGSurfCurve &curve2) const |
Perpendicular points of this to curve2. [詳解] | |
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) |
その他の継承メンバ | |
基底クラス MGGeometry に属する継承限定公開変数類 | |
MGBox * | m_box |
基底クラス MGAttribedGel に属する継承限定公開変数類 | |
std::auto_ptr< mgVBO > | m_dlistName |
display name if m_dlistName!=0; [詳解] | |
MGCurve is an abstract class which represents a whole curve.
MGCurve::MGCurve | ( | ) |
Void constructor(初期化なしでオブジェクトを作成する。).
MGCurve::MGCurve | ( | const MGCurve & | curve | ) |
Copy constructor.
|
virtual |
Virtual Destructor.
|
virtual |
Approximate this curve as a MGLBRep.
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 lbrep 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. |
MGLBRep, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
protected |
Approximate this curve as a MGLBRep curve from knot_vector[is] to [ie].
This is an internal program of MGLBRep constructor.
lb | Approximated LBRep will be set. |
order | new order |
is | approximation parameter range, from knot_vector()[is]. |
ie | approximation parameter range, to knot_vector()[ie]. |
neglectMulti | Indicates if multiple knots be kept. true: multiplicity is removed. false: multiplicity is kept. |
void MGCurve::arrow | ( | double | t, |
MGPosition | data[4] | ||
) | const |
Generate arrow data of the tangent at the parameter value t of the curve.
data[0] is the origin, data[1] is top of the arrow, data[2], [3] are two bottoms of arrowhead.
|
pure virtual |
Returns B-Rep Dimension.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurveで実装されています。
|
pure virtual |
Return minimum box that includes the curve of parameter interval.
入力のパラメータ範囲の曲線部分を囲むボックスを返す。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurveで実装されています。
|
virtual |
|
virtual |
Obtain ceter parameter value of the geometry.
MGGeometryを実装しています。
|
pure virtual |
Changing this object's space dimension.
sdim | new space dimension |
start1 | Destination order of new object. |
start2 | Source order of this object. |
MGGeometryを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurveで実装されています。
|
pure 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. |
MGLBRep, MGEllipse, MGStraight, MGRLBRep, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurveで実装されています。
|
pure virtual |
Construct new geometry object by copying to newed area.
User must delete this copied object by "delete".
MGGeometryを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurve, mgTL2Polylineで実装されています。
|
virtual |
Compute the closest point parameter value of this curve from a point.
MGStraight, MGCompositeCurveで再実装されています。
|
virtual |
Compute the closest point parameter value pair of this curve and curve2.
MGPosition P of the function return contains this and curve2's parameter as: P(0)=this curve's parameter, P(1)=curve2's parameter value.
MGStraightで再実装されています。
|
virtual |
Compute the nearest point from input point on this curve's (x,y) 2D part.
bool MGCurve::cn_continuity | ( | int | n | ) | const |
Test if this curve is cn continuous.
曲線がCn連続かどうか調べる LBRep以外はかならずtrueが返却される
|
virtual |
Test if this has a common line part with the 2nd curve.
目的:与えられた曲線と自身の共通部分があるかどうか調べる。 引数: const MGCurve& curve2, (I/ ) 与えられる曲線 std::vector<double>& vecComSpan ( /O) 共通部分のパラメータ範囲 4nの配列で、vecComSpan(4*i+0),vecComSpan(4*i+1)が自身のパラメータ範囲 (vecComSpan(4*i+0) < vecComSpan(4*i+1))、 vecComSpan(4*i+2),vecComSpan(4*i+3)がcurve2のパラメータ範囲 MGCCisect_list& isect ( /O) 交点 戻り値: 3:交点も共通部分も求まった 2:交点のみが求まった 1:共通部分のみが求まった 0:交点も共通部分もなかった -1:共通エッジの収束計算エラー -2:共通エッジが4個以上求まった(のっていないと見なす) 追記: 曲線が共通かどうかの誤差にはline_zero()、をパラメータ範囲の収束計算の 誤差には、パラメータ範囲*rc_zero()を使用する。
MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
virtual |
Test if this has a common line part with the 2nd curve.
関数名:common 目的:与えられた曲線と自身の共通部分があるかどうか調べる。 引数: const MGCurve& curve2, (I/ ) 与えられる曲線 std::vector<double>& vecComSpan ( /O) 共通部分のパラメータ範囲 4nの配列で、vecComSpan(4*i+0),vecComSpan(4*i+1)が自身のパラメータ範囲 (vecComSpan(4*i+0) < vecComSpan(4*i+1))、 vecComSpan(4*i+2),vecComSpan(4*i+3)がcurve2のパラメータ範囲 戻り値: 共通部分の数: 共通部分が求まった 0: 共通部分がなかった -1: 共通エッジの収束計算エラー -2: 共通エッジが4個以上求まった(のっていないと見なす) 追記: 曲線が共通かどうかの誤差にはline_zero()を、パラメータ範囲の収束計算の誤差には、 パラメータ範囲*rc_zero()を使用する。
MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
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.
MGLBRep, MGStraightで再実装されています。
|
pure virtual |
Exchange ordering of the coordinates.
Exchange coordinates (i) and (j).
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
|
pure virtual |
copy as a newed curve.
The new curve will be MGLBRep or MGRLBRep. When original curve was a MGRLBRep, the new curve will be a MGRLBRep. Otherwise, the new curve will be a MGLBRep. Returned object must be deleted.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Construct new curve object by changing the original object's space dimension.
Returned is a newed object, user must delete this copied object by "delete".
sdim | new space dimension |
start1 | Destination order of new line. |
start2 | Source order of this line. |
MGGeometryを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Construct new curve object limitting the parameter range to prange.
Construct new curve object by copying to newed area, and limitting the parameter range to prange. Returned is a newed object and must be deleted.
MGLBRep, MGRLBRep, MGTrimmedCurveで再実装されています。
|
virtual |
Return curvature at the given point.
When the curve is 2D, curvature has sign. when 3D, curvature is always plus. 与えられた点における曲線の曲率を返却する。
MGStraightで再実装されています。
|
inlinevirtual |
|
virtual |
Compute curvilinear integral of the 1st two coordinates.
線積分を求める。 This integral can be used to compute area sorounded by the curve. Second form is from param_s() to param_e(); curvilinear_integral from t1 to t2 can be obtained by Integral of (x*dy-y*dx) about t, where curve is expressed by f(t)=(x(t),y(t)), dx=dx/dt, and dy=dy/dt.
MGLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
inlinevirtual |
MGCompositeCurveで再実装されています。
|
protectedvirtual |
Get data points for approximate_as_LBRep2.
is | approximation parameter range, from knot_vector()[is]. |
ie | to [ie]. |
t | New knot configuration will be output. t's order is input. other information of t will be updated. |
tau | Data point for t will be output. |
neglectMulti | Indicates if multiple knots be kept. true: multiplicity is removed. false: multiplicity is kept. |
MGSurfCurveで再実装されています。
|
virtual |
Compute mean length of 1st derivative vector.
|
virtual |
Compute direction unit vector of the geometry.
MGGeometryを再実装しています。
|
virtual |
|
virtual |
MGGelを再実装しています。
MGCompositeCurveで再実装されています。
|
virtual |
sgl | Sgl to make curvature pictures in. |
scale | scaling of the graph. |
density | densitiy of the graph. |
use_radius | true:radius display, false:curvature display. |
MGGelを再実装しています。
MGCompositeCurveで再実装されています。
|
virtual |
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. |
MGLBRep, MGRLBRep, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
inline |
get the a divide number for offset, intersection, or others.
|
virtual |
Draw this curve into vbo, approximating with polyline.
vbo | 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. |
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
inlinevirtual |
Draw this curve into vbo, approximating with polyline.
vbo | Target graphic object. |
span_length | Line segment span length. |
line_density | line density to draw a surface in wire mode. |
MGObjectを実装しています。
MGStraightで再実装されています。
|
virtual |
Return end point(終点を返却する)
MGStraightで再実装されています。
|
pure virtual |
Evaluate n'th derivative data.
n=0 means positional data evaluation.
nderiv | Order of Derivative. |
left | Left continuous(left=true) or right continuous(left=false). |
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Compute position, 1st and 2nd derivatives.
パラメータ値を与えて位置、一次微分値、二次微分値をもとめる。
MGLBRep, MGEllipse, MGRLBRep, MGStraightで再実装されています。
|
virtual |
void MGCurve::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.
(1)Search the common curve spans which have the distance within tolerance. (2)Compute the nearest points from npoint discrete points of this to curve2. Let sti=sts[i], then sti[0] is this curve's parameter value s, and sti[1] is the parameter value t of curve2 which is the nearest point from the point s. If this and curve2 have the minimum distance more than tolerance, sts.size()==1 and sts[0] is the minimum distance points of this and curve2.
curve2 | 2nd target curve. |
sts | Parameter values of this and curve2 will be output. sts[i] is i-th parameter value. |
npoint | indicates how many discrete points be obtained. |
tolerance | tolerance to get two edge to compute deviation. |
|
virtual |
Evaluate line data at data point tau.
tau | Data points. |
value | Values evaluated. value(i,.)=eval(tau[i]); |
MGLBRepで再実装されています。
|
virtual |
|
virtual |
Evaluate n'th derivative data. n=0 means positional data evaluation.
t | Parameter value. t's space dimension is geometry's manifold dimension. |
nderiv | Order of derivative of i-th parameter in nderiv[i]. When nderiv=null, nderiv[i]=0 is assumed for all i. |
MGGeometryを実装しています。
|
pure 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. |
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
protected |
Obtain an extrapolated PP-Rep curve by the parameter value.
|
virtual |
Compute Frenet_frame, curvature and torsion in 3D space.
t | Input parameter value(パラメータ値) |
T | Tangent |
N | Principal Normal |
B | Binormal |
curvature | Curvature is always >=0. |
torsion | Tortion |
|
virtual |
Compute Frenet_frame, curvature and torsion in 3D space.
t | Input parameter value(パラメータ値) |
V2 | 2nd derivative at t. |
T | Tangent |
N | Principal Normal |
B | Binormal |
double MGCurve::get_average_tangent_length | ( | ) | const |
Get average tangent length.
The average means the average of start, mid, and end point's tangent.
|
inlinevirtual |
void MGCurve::getParamsC0Continuity | ( | std::vector< double > & | param | ) | const |
Find C0 cotinuity parameter values o fhtis curve, and push back the parameter values to param. Obtained parameter values are pushed in ascending order.
bool MGCurve::has_same_direction_at | ( | double | s, |
const MGCurve & | curve2, | ||
double | t | ||
) | const |
Test if this curve has the same direction with curve2.
Test at the point s(of this) and t(of curve2). Function's return value is true if they have the same direction. "same direction" means their tangent vectors have the angle less than 90 degree.
|
pure virtual |
Return This object's typeID.
MGGelを実装しています。
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Test if input parameter value is inside parameter range of the line.
MGStraight, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
Test if input parameter value is inside parameter range of the line.
MGGeometryを再実装しています。
|
virtual |
Curve to curve intersection.
|
protectedvirtual |
Compute intersection point of 1D sub curve of original curve.
Parameter values of intersection point will be returned.
f | Coordinate value |
coordinate | Coordinate kind of the data f(from 0). |
MGLBRep, MGStraight, MGRLBRep, MGEllipse, MGCompositeCurve, MGTrimmedCurveで再実装されています。
MGCCisect_list MGCurve::intersect_brute_force | ( | const MGCurve & | ) | const |
Curve to curve intersection.
Curve と Curve の交点を求める。
|
pure virtual |
Provide divide number of curve span for function intersect.
MGRLBRep, MGEllipse, MGStraight, MGTrimmedCurve, MGBSumCurve, MGSurfCurveで実装されています。
MGCSisect_list MGCurve::intersect_with_plane | ( | const MGPlane & | surf | ) | const |
intersections with a plane.
Compute the intersections of two objects.
Intersections are obtained from two objects, which are known using the MGisects::object1() and object2(). ****NOTE**** When two objects' manifold dimension are the same, object1 is this object at the invocation of MGObject::intersection(), and object2 is the argument object. However, their manifold dimension are not the same, object1 is always the lower dimension's object and object2 is the higer dimension's object.
MGObjectを実装しています。
|
virtual |
MGObjectを実装しています。
|
virtual |
Test if this is a Bezier Curve.
Functions's return value is true if Bezier, false 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
MGLBRepで再実装されています。
|
inline |
Test if this is a closed curve.
曲線が閉曲線かどうかを返す
bool MGCurve::is_closedWithError | ( | double | err | ) | const |
Terst if this is a closed curve, given the tolerance.
Test if this cure is co-planar with the 2nd curve curve2.
MGPlane expression will be out to plane if this is co-planar. Function's return value is true if co-planar.
MGLBRep, MGRLBRep, MGStraightで再実装されています。
|
virtual |
Test if the input parameter t is the start point parameter or not.
MGStraightで再実装されています。
|
virtual |
Test if this cure is linear or not, that is, is straight or not.
MGStraight expression will be out to straight if this is linear or not. Function's return value is true if linear.
MGEllipse, MGStraightで再実装されています。
bool MGCurve::is_perpendicular | ( | const MGPosition & | P, |
double | t | ||
) | const |
Test if the vector from P to this->eval(t) is perpendicular.
Perpendicular to the tangent of this curve at t.
|
virtual |
Test if this cure is planar or not.
MGPlane expression will be out to plane if this is planar. Function's return value is true if planar.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
virtual |
Test if the input parameter t is the start point parameter or not.
MGStraightで再実装されています。
|
pure virtual |
Intersection of Curve and other geometry.
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
MGCCisect_list MGCurve::isect | ( | const MGTrimmedCurve & | curve2 | ) | const |
MGCCisect_list MGCurve::isect | ( | const MGCompositeCurve & | curve2 | ) | const |
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
inline |
|
virtual |
MGStraightで再実装されています。
MGCFisect_vector MGCurve::isect | ( | const MGShell & | shl | ) | const |
Intersection of a shell and a curve.
MGCParam_list MGCurve::isect_1D | ( | double | f, |
int | coordinate = 0 |
||
) | const |
Compute intersection point of 1D sub curve of original curve.
Parameter values of intersection point will be returned.
f | Coordinate value |
coordinate | Coordinate kind of the data f(from 0). |
|
protectedvirtual |
isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve.
|
protectedvirtual |
Compute intersections with MGLBRep curve2 that does not have C0 continuity in it.
|
pure virtual |
Access to i-th element of knot.
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Returns the knot vector of the curve.
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
MGKnotVector& MGCurve::knot_vector | ( | ) |
Returns the knot vector of the curve.
|
virtual |
Cmpute curve length of the interval.
If t1 is greater than t2, return negative value. 与えられたパラメータ値間の曲線の長さを返す。 パラメータが昇順で与えられたときは正値、降順のときは負値を返す。
MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
inlinevirtual |
Compute whole curve length.
If the curve is infinite, return -1. 自身の曲線が有界の場合、その曲線の距離を返却する。非有界の場 合はー1を返却をする。
MGEllipse, MGStraight, MGCompositeCurveで再実装されています。
|
virtual |
Inverse function of length.
Compute the point that is away from the point t by length len. lengthの逆関数。指定パラメータtで示される点から指定距離len 曲線上に沿って離れた点を示すパラメータ値を返す。
MGEllipse, MGStraight, MGTrimmedCurveで再実装されています。
|
pure virtual |
Update this by limiting the parameter range of the curve.
自身に指定したパラメータ範囲のlimitをつける.
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurve, mgTL2Polylineで実装されています。
MGCurve& MGCurve::limit | ( | double | t0, |
double | t1 | ||
) |
|
inlinevirtual |
Return manifold dimension, 0:point, 1:curve, 2:surface.
MGGelを再実装しています。
|
pure virtual |
Negate the curve direction(曲線の方向を反転する).
MGGeometryを再実装しています。
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGBSumCurve, mgTL2Polylineで実装されています。
|
pure virtual |
Obtain the parameter value to t when this curve is negated by "negate()".
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGBSumCurveで実装されています。
|
virtual |
Transform the coordinates of boundary of this geometry so that new coordinate of boundary is the same coordinate as the new one of this geometry after negate() of this geometry is done. That is, boundary coordinates are parameter world of this geometry.
MGGeometryを実装しています。
|
virtual |
Offset of costant deviation from this curve.
一定オフセット関数 オフセット方向は、法線方向から見て入力曲線の進行方向左側を正とする。 法線ベクトルがヌルの場合、始点において曲率中心方向を正とする。ただし、曲率中心へ曲率半径以上のオフセット は行わない。トレランスはline_zero()を使用している。戻り値は、オフセット曲線リストが返却される。 If the norm_vector is given, the positive offset direction decide to left hand side from ahead, or the direction to center of curvature at start parameter. the offset value is less than radius of curvature. line_zero() is used.
ofs_value | オフセット量 |
norm_vector | 法線ベクトル |
MGStraight, MGCompositeCurveで再実装されています。
|
virtual |
Offset of variable deviation from this curve.
可変オフセット関数 オフセット量は空間次元1の線B表現で与えられる。 オフセット方向は、法線方向から見て入力曲線の進行方向左側を正とする。 法線ベクトルがヌルの場合、始点において曲率中心方向を正とする。ただし、曲率中心へ曲率半径以上のオフセット は行わない。トレランスはline_zero()を使用している。戻り値は、オフセット曲線リストが返却される。 If the norm_vector is given, the positive offset direction decide to left hand side from ahead, or the direction to center of curvature at start parameter. the offset value is less than radius of curvature. line_zero() is used.
ofs_value_lb | 空間次元1の線B表現で示したオフセット量 |
norm_vector | 法線ベクトル |
MGCompositeCurveで再実装されています。
|
virtual |
Costant offset curve of C2 continuous curve.
C2連続曲線の一定オフセット関数 オフセット方向は、法線方向から見て入力曲線の進行方向左側を正とする。 法線ベクトルがヌルの場合、始点において曲率中心方向を正とする。ただし、曲率中心へ曲率半径以上のオフセット は行わない。トレランスはline_zero()を使用している。戻り値は、オフセット曲線が返却される。 costant offset curve of C2 continuous curve. if the norm_vector is given, the positive offset direction decide to left hand side from ahead, or the direction to center of curvature at start parameter. the offset value is less than radius of curvature. line_zero() is used.
ofs_value | オフセット量 |
norm_vector | 法線ベクトル |
MGCompositeCurveで再実装されています。
|
virtual |
Valuable offset curve of C2 continuous curve.
C2連続曲線の可変オフセット関数 オフセット量は空間次元1の線B表現で与えられる。 オフセット方向は、法線方向から見て入力曲線の進行方向左側を正とする。 法線ベクトルがヌルの場合、始点において曲率中心方向を正とする。ただし、曲率中心へ曲率半径以上のオフセット は行わない。トレランスはline_zero()を使用している。戻り値は、オフセット曲線が返却される。 valuable offset curve of C2 continuous curve. if the norm_vector is given, the positive offset direction decide to left hand side from ahead, or the direction to center of curvature at start parameter. the offset value is less than radius of curvature. line_zero() is used.
ofs_value_lb | 空間次元1の線B表現で示したオフセット量 |
norm_vector | 法線ベクトル |
MGCompositeCurveで再実装されています。
|
virtual |
Test if given point is on the curve or not.
If given point is on the curve, return parameter value of the curve. Even if not, return nearest point's parameter t. 指定点が自身上にあるかを調べる。曲線上にあれば,そのパラメーター値を, なくても最近傍点のパラメータ値を返す。 Function's return value is >0 if the point is on the curve, and 0 if the point is not on the curve.
point | point(指定点) |
t | Parameter of the curve(パラメータ) will be returned. |
MGEllipse, MGStraight, MGCompositeCurveで再実装されています。
bool MGCurve::on | ( | const MGPosition & | P, |
MGPosition & | t | ||
) | const |
Test if given point is on this geometry or not.
If the point is on this geometry, return parameter value of the geometry. Even if not, return nearest point's parameter. 指定点が自身上にあるかを調べる。曲線上にあれば,そのパラメーター値を, なくても最近傍点のパラメータ値を返す。 Function's return value is >0 if the point is on the geometry, and 0 if the point is not on the geometry.
P | Point(指定点) |
t | Parameter of the geometry(パラメータ) |
|
protectedpure virtual |
Obtain transformed 1D curve expression of this curve.
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. |
MGLBRep, MGStraight, MGRLBRep, MGEllipse, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGObjectを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
MGObjectを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
MGObjectを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
Object transformation.
MGObjectを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
MGObjectを実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGGelを再実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
Assignment.
When the leaf object of this and geo2 are not equal, this assignment does nothing.
|
virtual |
Comparison.
MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
virtual |
MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
pure virtual |
Comparison.
MGGelを再実装しています。
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Returns the order.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Output virtual function.
MGGeometryを再実装しています。
MGLBRep, MGRLBRep, MGStraight, MGEllipse, MGCompositeCurve, MGSurfCurve, MGTrimmedCurve, MGBSumCurve, mgTL2Polylineで再実装されています。
|
virtual |
Compute parameter value of given point.
自身の上の指定点を表すパラメータ値を返す。 If input point is not on the curve, return the nearest point on the curve.
MGStraightで再実装されています。
|
pure virtual |
Return ending parameter value.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Obtain parameter space error.
MGStraightで再実装されています。
|
pure virtual |
Normalize parameter value t to the nearest knot if their distance is within tolerance.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Return parameter range of the curve(パラメータ範囲を返す).
MGStraight, MGTrimmedCurve, MGSurfCurveで再実装されています。
double MGCurve::param_round_into_range | ( | double | t | ) | const |
Round the parameter t into this parameter range.
|
pure virtual |
Return starting parameter value.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
double MGCurve::param_se | ( | double | t | ) | const |
Return starting or ending parameter value that is nearer to the param t.
|
inlinevirtual |
Compute parameter span length.
|
virtual |
Return parameter range of the geometry(パラメータ範囲を返す).
MGGeometryを実装しています。
|
pure 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 | Start prameter value. |
t2 | End prameter value. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Return perpendicular point from a point P.
Given guess starting paramter values. Function's return value is: perp_guess=true if perpendicular points obtained, perp_guess=false if perpendicular points not obtained,
t0 | parameter range of this, start. |
t1 | End. (t0>=t1) indicates no range specified. |
P | Point(指定点) |
tg | Guess parameter values of this curve. |
t | Output parameter |
MGCompositeCurveで再実装されています。
|
virtual |
Return perpendicular points of two curves.
Given guess starting paramter values. Function's return value is: perp_guess=true if perpendicular points obtained, perp_guess=false if perpendicular points not obtained,
s0 | parameter range of this, start. |
s1 | End. <When s0>="">=s1, no limit for this parameter range. |
curve2 | 2nd curve. |
t0 | parameter range of curve2, start. |
t1 | End. When t0>=t1, no limit for curve2 parameter range. |
sg | Guess parameter values of the two curves, for this. |
tg | curve2's parameter. |
st | perpendicular points' parameter values will be output. st(0): this curve's parameter, st(1):curve2's parameter. |
MGCompositeCurveで再実装されています。
|
virtual |
Compute a foot point of the perpendicular line from point p to the curve.
If more than one points are found, return nearest one. 指定点からの自身への垂線の足とパラメータ値を返す。 Function's return value is if point is obtained(1) or not(0)
p | Point(指定点) |
t | Parameter of the curve(パラメータ値) |
g | guess parameter value of line |
MGEllipse, MGStraightで再実装されています。
MGPosition_list MGCurve::perpendiculars | ( | const MGCurve & | crv | ) | const |
Compute all the perpendicular points of this curve and the second one.
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. **** NOTE 1 **** perpendiculars is general function of perps, used in perps. General users should use function perps, not perpendiculars, since perps is optimized for each curve type. **** NOTE 2 **** perpendiculars can not be used for infinite parameter range curve. param_s() and param_e() of both curves must return their finite parameter range. MGPosition P in the MGPosition_list contains this and crv's parameter as: P(0)=this curve's parameter, P(1)=crv's parameter value.
crv | The second curve |
|
virtual |
Compute all foot points of the perpendicular line from point to the curve.
与ポイントから曲線へ下ろした垂線の足の,曲線のパラメータ値を すべて求める。
P | Point(指定点) |
MGLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurveで再実装されています。
|
pure 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)=curve2's parameter value.
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
MGLBRep, MGEllipse, MGRLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
MGPosition_list MGCurve::perps | ( | const MGCompositeCurve & | crv2 | ) | const |
MGPosition_list MGCurve::perps | ( | const MGTrimmedCurve & | crv2 | ) | const |
|
protectedvirtual |
Perpendicular points of this to curve2.
curve2 is a MGSurfcurve and the composite parameter curve must not a MGTrimmedCurve of MGCompositeCurve.
|
protectedvirtual |
Perpendicular points with C1 conitnuity LBRep.
MGPosition P in the MGPosition_list contains this and crv's parameter as: P(0)=this curve's parameter, P(1)=crv's parameter value.
|
protected |
Perpendicular points with straight.
MGPosition P in the MGPosition_list contains this and crv's parameter as: P(0)=this curve's parameter, P(1)=crv's parameter value.
sl | The second curve |
|
virtual |
Compute the parameter value of the closest point from the straight to this object.
sl is the eye projection line whose direction is from yon to hither, and if sl had multiple intersection points, The closest point to the eye will be selected.
MGObjectを再実装しています。
|
virtual |
Obtain polar coordinates system MGLBRep of this curve.
This curve's (x,y) coordinates are changed polar coordinates system(r,theta) where r is the distance from origin and theta is the angel with x coordinate. The space dimension of this curve must be >=2; If this space dimension is lager than 2, the remaining coordinates are set unchanged to MGLBRep.
|
virtual |
Approximate this curve by a polyline and output to lb2.
The tolerance of the approximation is error.
error | tolerance allowed for the approximation |
lb2 | Obtained polyline will be output as an MGLBRep of order2. |
MGCompositeCurveで再実装されています。
|
virtual |
Obtain the projected curve of a curve onto the surface.
投影曲線は面上のパラメータ曲線と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.
MGLBRep, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurveで再実装されています。
|
virtual |
Round t into curve's parameter range.
入力パラメータをパラメータ範囲でまるめて返却する。
MGStraight, MGTrimmedCurve, MGSurfCurveで再実装されています。
MGPosition MGCurve::range | ( | const MGPosition & | t | ) | const |
Round t into geometry's parameter range.
入力パラメータをパラメータ範囲でまるめて返却する。 t's space dimension is geometry's manifold dimension.
|
protectedvirtual |
メンバデータを読み出す関数.
ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGGeometryを再実装しています。
MGLBRep, MGStraight, MGRLBRep, MGEllipse, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで再実装されています。
std::auto_ptr<MGCurve> 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.
how_rebuild | intdicates how rebuild be done. =0: no approximation(only parameter change) =1: if this is rational spline(MGRLBRep), reconstructed with new knot configuration as rational spline(MGRLBRep). Otherwise approximated by non-rational spline(MGLBRep) with new knot configuration. =2: approximated by non-rational spline(MGLBRep) with new knot configuration if this is rational spline. If this is not rational spline, same as =1. |
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. =3: specify parameter range in param_range. |
tol | tolerance allowed for the approximation When tol<=0., MGTolerance::line_zero() will be employed. |
ordr | order of the new MGLBRep, >=4 is recommended. When order=0 is input, the original order is unchanged if this curve is MGLBRep or MGRLBRep. Otherwise order is set to 4. |
param_range | Input new paramter range, from param_range[0] to param_range[1]. When param_range=0, parameter_normalization is set to 2 and the starting parameter is set to 0. |
|
virtual |
Remove redundant knot, and reduce the b-rep dimension.
ノット削除関数(B表現曲線のみ) トレランスはline_zeroを使用する。元のノットが細かいものほど削除しやすい Remove redundant knot, and reduce the b-rep dimension. The tolerance used is MGTolerance::line_zero().
MGLBRep, MGRLBRep, MGCompositeCurveで再実装されています。
|
virtual |
Update curve by rotating around straight line.
指定点を通る指定ベクトルを軸として回転させたものを自身とする。
v | Vector of the line to rotate around. |
std::auto_ptr<MGLBRep> MGCurve::scalePolar | ( | double | angleBase, |
double | angle1, | ||
double | angle2 | ||
) | const |
Obtain polar-rotated curve of this.
This curve's (x,y) are updated. No other coordinates are unchanged. The returned curve is always MGLBRep. Rotation is performed from angle1 to angle2, around angleBase. That is, when angle1=angle2, no change is done. When angle2 is angleBase, all the data will lie on the straight of from origin to (cos(angleBase), sin(angleBase)).
angleBase | base angle. |
angle1 | 1st angle. |
angle2 | 2nd angle. |
|
pure virtual |
Return space dimension.
MGGeometryを実装しています。
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Return start point(始点を返却する).
MGStraightで再実装されています。
|
pure 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. |
MGLBRep, MGStraight, MGEllipse, MGRLBRep, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
virtual |
Return tangent point from a point P, given guess starting paramter tg.
Searching is done only from t0 to t1.
t0 | parameter range of this, starting. |
t1 | Ending. If t0>t1, whole range of this. |
P | Point(指定点) |
tg | Guess parameter values of the two curves |
t | Output parameter |
void MGCurve::trim_end | ( | double | t | ) |
Trim the end part of this curve at the parameter t.
The new curve range is [start_of_original, t] t must be inside this parameter rage, else does nothing.
void MGCurve::trim_start | ( | double | t | ) |
Trim the start part of this curve at the parameter t.
The new curve range is [t,end_of_original] t must be inside this parameter rage, else does nothing.
void MGCurve::trim_start_and_end | ( | double | ts, |
double | te | ||
) |
Trim the start part and end part of this curve at the parameter ts and te.
The new curve range is [ts,te] Both ts and te must be inside this parameter rage.
|
pure virtual |
Return curve type(曲線のタイプを返す).
MGLBRep, MGStraight, MGRLBRep, MGEllipse, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Unlimit parameter range of the curve(limitをはずす).
MGLBRep, MGStraight, MGRLBRep, MGCompositeCurve, MGEllipse, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Unlimit parameter range of the curve to the end point direction.
(終点方向にlimitをはずす)
MGLBRep, MGStraight, MGRLBRep, MGCompositeCurve, MGEllipse, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
pure virtual |
Unlimit parameter range of the curve to the start point direction.
(始点方向にlimitをはずす)
MGLBRep, MGStraight, MGRLBRep, MGCompositeCurve, MGEllipse, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで実装されています。
|
inlineprotectedvirtual |
Mark this as updated.
MGGeometryを再実装しています。
|
inlinevirtual |
MGGeometryを再実装しています。
MGLBRep, MGRLBRep, MGEllipse, MGStraight, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで再実装されています。
|
protectedvirtual |
メンバデータを書き込む関数.
ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGGeometryを再実装しています。
MGLBRep, MGStraight, MGRLBRep, MGEllipse, MGCompositeCurve, MGTrimmedCurve, MGSurfCurve, MGBSumCurveで再実装されています。