MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
MGLBRep クラス

MGLBRep is a class for B-SPline representation. [詳解]

MGLBRep の継承関係図
MGCurve MGGeometry MGObject MGAttribedGel MGGel mgTL2Polyline

公開メンバ関数

 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 ()
 
MGLBRepoperator= (const MGGel &gel2)
 
MGLBRepoperator= (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
 
MGLBRepoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
MGLBRepoperator-= (const MGVector &v)
 
MGLBRepoperator*= (double scale)
 
MGLBRepoperator*= (const MGMatrix &mat)
 
MGLBRepoperator*= (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 MGBoxbox_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)
 
MGLBRepchange_dimension (int sdim, int start1=0, int start2=0)
 Changing this object's space dimension. [詳解]
 
void change_range (double t1, double t2)
 
MGLBRepchange_order (int order)
 
MGLBRepchange_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
 
MGLBRepcoordinate_exchange (int j1, int j2)
 
virtual MGLBRepclone () const
 
void convert_to_Bezier (MGLBRep &bezier) const
 
MGCurvecopy_as_nurbs () const
 
MGLBRepcopy_as_LBRep () const
 
MGLBRepcopy_change_dimension (int sdim, int start1=0, int start2=0) const
 
MGCurvecopy_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) [詳解]
 
MGLBRepextend (int start, double length, double dk)
 
void extend (double length, bool start=false)
 
MGLBRepextend_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 MGLBRepis_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 MGKnotVectorknot_vector () const
 
MGKnotVectorknot_vector ()
 
virtual MGLBReplimit (const MGInterval &i1)
 Update this by limiting the parameter range of the curve. [詳解]
 
const MGBPointSeqline_bcoef () const
 Returns the B-coef's(RHS version). [詳解]
 
MGBPointSeqline_bcoef ()
 Returns the B-coef's(LHS version). [詳解]
 
MGLBRepmove (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
 
MGCurvepart (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)
 
MGLBReprefine (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. [詳解]
 
MGSurfacesweep (const MGUnit_vector &uvec, double start_dist, double end_dist) const
 
MGCURVE_TYPE type () const
 
void updatePolarCoordinates2Ordinary ()
 
MGCurveunlimit ()
 limitをはずす。 [詳解]
 
MGCurveunlimit_end ()
 
MGCurveunlimit_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 MGCurveoperator= (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. [詳解]
 
MGCurvecurve ()
 Return curve pointer if this MGGel is an MGCurve, else return null. [詳解]
 
const MGCurvecurve () const
 
virtual double curvilinear_integral () const
 
virtual double deriv_length () const
 Compute mean length of 1st derivative vector. [詳解]
 
MGUnit_vector direction (const MGPosition &param) 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 > &param) 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. [詳解]
 
MGKnotVectorknot_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. [詳解]
 
MGCurvelimit (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< MGCurveoffset (double ofs_value, const MGVector &norm_vector=mgNULL_VEC) const
 Offset of costant deviation from this curve. [詳解]
 
virtual MGPvector< MGCurveoffset (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< MGCurverebuild (int how_rebuild=1, int parameter_normalization=2, double tol=-1., int ordr=0, const double *param_range=0) const
 Rebuild this curve. [詳解]
 
virtual MGCurverotate_self (const MGVector &v, double, const MGPosition &=mgORIGIN)
 Update curve by rotating around straight line. [詳解]
 
std::auto_ptr< MGLBRepscalePolar (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< MGLBRepPolarCoordinatesLBRep () const
 Obtain polar coordinates system MGLBRep of this curve. [詳解]
 
- 基底クラス MGGeometry に属する継承公開メンバ関数
 MGGeometry ()
 Void constructor(初期化なしでオブジェクトを作成する。) [詳解]
 
 MGGeometry (const MGGeometry &geo2)
 Copy constructor. [詳解]
 
virtual ~MGGeometry ()
 Virtual Destructor. [詳解]
 
virtual MGGeometryoperator= (const MGGeometry &gel2)
 
virtual MGGeometrygeometry ()
 Return MGGeometry pointer if this MGGel is an MGGeometry, else return null. [詳解]
 
virtual const MGGeometrygeometry () const
 
const MGBoxbox () 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 MGObjectoperator= (const MGObject &obj2)
 
MGAppearanceappearance ()
 
const MGAppearanceappearance () const
 
virtual void shade (mgVBO &vbo, const MGDrawParam &para, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const
 Shade the object in world coordinates. [詳解]
 
MGAppearanceensure_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 MGObjectincludes_object () const
 Test if this gel includes an object. [詳解]
 
MGObjectincludes_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 MGObjectobject ()
 Return MGObject pointer if this MGGel is an MGObject, else return null. [詳解]
 
virtual const MGObjectobject () const
 
virtual const MGFSurfacefsurface () const
 Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解]
 
virtual MGFSurfacefsurface ()
 
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 MGAttribedGeloperator= (const MGAttribedGel &gel2)
 
virtual ~MGAttribedGel ()
 
void copy_appearance (const MGAttribedGel &gel2)
 
mgVBOdlist_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 MGNameget_name () const
 
void set_color (const MGColor &newColor)
 
const MGColorget_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 MGAttribattrib ()
 Return MGAttrib pointer if this MGGel is an MGAttrib, else return null. [詳解]
 
virtual const MGAttribattrib () const
 
virtual MGGroupgroup ()
 Return MGGroup pointer if this MGGel is an MGGroup, else return null. [詳解]
 
virtual const MGGroupgroup () const
 
virtual MGPointpoint ()
 Return point pointer if this MGGel is an MGPoint, else return null. [詳解]
 
virtual const MGPointpoint () const
 
virtual MGSurfacesurf ()
 Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解]
 
virtual const MGSurfacesurf () const
 
virtual MGTopologytopology ()
 Return MGTopology pointer if this MGGel is an MGTopology, else return null. [詳解]
 
virtual const MGTopologytopology () const
 
virtual MGFaceface ()
 Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解]
 
virtual const MGFaceface () const
 
virtual MGShellshell ()
 Return MGShell pointer if this MGGel is an MGShell, else return null. [詳解]
 
virtual const MGShellshell () 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< MGCurveoneD (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 に属する継承限定公開メンバ関数
MGGeometryset_geometry (const MGGeometry &geo2)
 Assignment. [詳解]
 
- 基底クラス MGObject に属する継承限定公開メンバ関数
MGObjectset_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 に属する継承限定公開変数類
MGBoxm_box
 
- 基底クラス MGAttribedGel に属する継承限定公開変数類
std::auto_ptr< mgVBOm_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.

構築子と解体子

MGLBRep::MGLBRep ( )
inline

Default(dummy) constructor.

MGLBRep::MGLBRep ( int  bdim,
int  order,
int  sdim 
)
inline

Dummy constructor that specifies area length.

引数
bdimb-rep dimension of the lbrep.
orderorder of the lbrep.
sdimspace 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.*****

引数
tKnot Vector.
bcoefLine B-Coef.
MGLBRep::MGLBRep ( const MGBPointSeq points,
int  order = 4,
bool  circular = false 
)
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.

引数
pointsPoint seq data
orderOrder
circularCircular 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.

引数
tauData point abscissa
pointsPoint seq data
orderorder
ratioMaximum 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.

引数
tauData point abscissa.
pointsPoint seq data(data point ordinate).
tknot 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.

引数
beginBegin end condition
endEnd end conditoion
tauData point abscissa
valueData 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.

引数
orderOrder of the MGLBRep
beginBegin end condition
endEnd end conditoion
tauData point abscissa
valueData 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.

引数
beginBegin end condition
endEnd end conditoion
tauData point abscissa
valueData point ordinate
tknot 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.

引数
beginBegin end condition
endEnd end conditoion
pointsPoint seq data
point_kindPoint kind of above point.
circleProvides osculating circle data.
MGLBRep::MGLBRep ( const MGCurve crv,
int  order = 0,
int  parameter_normalization = 0,
bool  neglectMulti = false 
)
explicit

Construct Curve B-Rep. This is an approximation, and the tolerance is MGTolerance::line_zero().

引数
crvOriginal Curve.
orderOrder. 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_normalizationIndicates 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.
neglectMultiIndicates 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_brepOriginal B-Rep.
tknot vector
MGLBRep::MGLBRep ( const MGCurve old_curve,
const MGKnotVector t 
)

Gets new B-Rep by a new knots. The parameter range of t must be inside the one of old_curve. The constructed MGLBRep's knot vector is t, and the MGLBRep is the approximation of old_curve's parameter range from t.param_s() to t.param_e();

引数
old_curveOriginal curve.
tknot vector
MGLBRep::MGLBRep ( int  coordinate1,
const MGLBRep brep1,
int  coordinate2,
const MGLBRep brep2 
)

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.

引数
coordinate1Missing oordinate kind of the brep1 0:x, 1:y, 2:z.
brep1Original 2D B-Rep1. Coordinates are (y,z), (z,x), (x,y) according to coordinate1.
coordinate2Missing coordinate kind of the brep2. 0:x, 1:y, 2:z, and 3:girth rep.
brep2Original 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.

引数
tauData point abscissa
pointsPoint seq data
weightWeights for each points
tknot 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.

引数
pprepPP-rep
tKnot Vector
MGLBRep::MGLBRep ( const MGLBRep old_brep,
const MGKnotArray knots 
)

Gets new B-Rep by adding knots to an original B-Rep.

引数
old_brepOriginal B-Rep.
knotsKnots to add.
MGLBRep::MGLBRep ( const MGLBRep brep1,
int  continuity,
int  which,
const MGLBRep brep2 
)

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().

引数
brep1B-Rep 1.
continuitycontinuity. must be>=0.
whichwhich 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.
brep2B-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.

引数
t1New parameter range. t1 must be less than t2.
t2End of the parameter range.
old_brepOriginal B-Rep.
multipleIndicates 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.

引数
id1start id of old_brep's knot vector.
id2End id of old_brep's knot vector.
old_brepOriginal 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.

引数
dimNew space dimension.
lbrepOriginal Line B-rep.
start1Destination order of new line.
start2Source order of original line.
MGLBRep::~MGLBRep ( )
inline

関数詳解

void MGLBRep::approximate_as_LBRep ( MGLBRep lb,
int  ordr = 0,
int  parameter_normalization = 0,
bool  neglectMulti = false 
) const
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.

引数
lbApproximated obrep will be set.
ordrnew order. When this is MGLBRep, if ordr=0, ordr=order() will be assumed, else ordr=4 is assumed.
parameter_normalizationIndicates 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.
neglectMultiIndicates if multiple knots be kept. true: multiplicity is removed. false: multiplicity is kept.

MGCurveを再実装しています。

int MGLBRep::bdim ( ) const
inlinevirtual

Returns B-Rep Dimension.

MGCurveを実装しています。

MGBox MGLBRep::box_limitted ( const MGInterval l) const
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.

引数
beginBegin end condition
endEnd end conditoion. begin.cond() and end.cond() must be MGENDC_1D or MGENDC_12D.
tauData point abscissa
yData point ordinates.
dydy[i] is the weight at tau[i] for i=0,..., tau.length()-1.
deviationif 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_sumSee 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.***

引数
tauData point abscissa
yData point ordinates.
dydy[i] is the weights at tau[i] for i=0,..., tau.length()-1.
deviationif 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_sumSee deviation.
MGLBRep& MGLBRep::change_dimension ( int  sdim,
int  start1 = 0,
int  start2 = 0 
)
virtual

Changing this object's space dimension.

引数
sdimnew space dimension
start1Destination order of new object.
start2Source 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.

引数
orderNew order number.
MGLBRep& MGLBRep::change_order_by_approximation ( int  ordr)

Change order of the B-Rep by approximation.

引数
ordrNew order number.
void MGLBRep::change_range ( double  t1,
double  t2 
)
virtual

Change parameter range, be able to change the direction by providing t1 greater than t2.

引数
t1Parameter value for the start of original.
t2Parameter value for the end of original.

MGCurveを実装しています。

virtual MGLBRep* MGLBRep::clone ( ) const
virtual

Construct new curve object by copying to newed area. User must delete this copied object by "delete".

MGCurveを実装しています。

mgTL2Polylineで再実装されています。

double& MGLBRep::coef ( int  i,
int  j 
)
inline

Access to (i,j)th element of coef ( left-hand side version)

double MGLBRep::coef ( int  i,
int  j 
) const
inline

Access to (i,j)th element of coef (right hand side version)

MGVector MGLBRep::coef ( int  i) const
inline

Extract (i,j)element for 0<=j<sdim().

const double* MGLBRep::coef_data ( int  i = 0,
int  j = 0 
) const
inline

Returns a pointer to the line b-coef data.

double* MGLBRep::coef_data ( int  i = 0,
int  j = 0 
)
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().

引数
continuitycontinuity. must be>=0.
whichwhich 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.
brep2B-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.

引数
brep2The target 2nd curve.
whichIndicates 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.
ratioRatio of 1st derivatives of the two line will be returned. ratio= d2/d1, where d1=1st deriv of this and d2=of brep2
void MGLBRep::convert_to_Bezier ( MGLBRep bezier) const
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を再実装しています。

MGLBRep& MGLBRep::coordinate_exchange ( int  j1,
int  j2 
)
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.

MGCurve* MGLBRep::copy_as_nurbs ( ) const
inlinevirtual

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.

MGCurveを実装しています。

MGLBRep* MGLBRep::copy_change_dimension ( int  sdim,
int  start1 = 0,
int  start2 = 0 
) const
virtual

Construct new curve object by changing the original object's space dimension. User must delete this copied object by "delete".

引数
sdimnew space dimension
start1Destination order of new line.
start2Source order of this line.

MGCurveを実装しています。

MGCurve* MGLBRep::copy_limitted ( const MGInterval prange) const
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を再実装しています。

double MGLBRep::curvilinear_integral ( double  t1,
double  t2 
) const
virtual

Compute curvilinear integral of the 1st two coordinates. This integral can be used to compute area sorounded by the curve. (線積分)を求める。

MGCurveを再実装しています。

void MGLBRep::display_control_polygon ( mgSysGL sgl) const
virtual

Display control polygons using mgVBO::MGDrawPointSeq()

MGGelを再実装しています。

int MGLBRep::divide_multi ( MGPvector< MGCurve > &  crv_list,
int  multiplicity = -1 
) const
virtual

Divide this curve at the designated knot multiplicity point. Function's return value is the number of the curves after divided.

引数
crv_listdivided curves will be appended.
multiplicitydesignates the multiplicity of the knot to divide at. When multiplicity<=0, order()-1 is assumed. When multiplicity>=order(), order() is assumed.

MGCurveを再実装しています。

virtual void MGLBRep::drawSE ( mgVBO vbo,
double  span_length,
double  t0,
double  t1 
) const
virtual

Draw this curve into vbo, approximating with polyline.

引数
vboThe target graphic object.
span_lengthLine segment span length.
t0Start parameter value of the curve.
t1End parameter value of the curve. Draw will be performed from t0 to t1.

MGCurveを再実装しています。

MGVector MGLBRep::eval ( double  ,
int  nderiv = 0,
int  leftcon = 0 
) const
virtual

Evaluate right continuous n'th derivative data. nderiv=0 means positional data evaluation.

引数
nderivOrder of Derivative.
leftconLeft continuous(leftcon=true) or right continuous(leftcon=false).

MGCurveを実装しています。

void MGLBRep::eval_all ( double  ,
MGPosition ,
MGVector ,
MGVector  
) const
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().

引数
tauParameter value to evaluate.
nderivOrder of Derivative.
derivOutput area of size (nderiv+1)*sdim().
leftconLeft 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)

引数
beginBegin end condition
endEnd end conditoion
tauData points.
valueValues evaluated.
void MGLBRep::eval_line ( const MGNDDArray tau,
MGBPointSeq value 
) const
inlinevirtual

Evaluate line data at data point seq.(BLELIN)

引数
tauData points.
valueValues 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.

引数
startFlag of start or end poit of the line. If start is true extend on the start point.
lengthchord length to extend.
dkCoefficient 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.
void MGLBRep::extend ( double  length,
bool  start = false 
)
virtual

Extrapolate this curve by an (approximate) chord length. The extrapolation is C2 continuous.

引数
lengthapproximate chord length to extend.
startFlag 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.

引数
tauThe parameter value at the end of extended point. When tau<param_s(), extension will be done at the starting point. When tau>param_e(), extension will be done at the end point.
dkCoefficient of how curvature should vary at the connecting point. See extend();
bool MGLBRep::get_control_points ( MGBPointSeq cpoints) const
virtual

Extracts control points. Fucntion's return value is true if control points was obtained, false if not.

引数
cpointsControl points will be output.

MGCurveを再実装しています。

long MGLBRep::identify_type ( ) const
virtual

Return This object's typeID.

MGCurveを実装しています。

MGCParam_list MGLBRep::intersect_1D ( double  f,
int  coordinate = 0 
) const
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.

引数
fCoordinate value
coordinateCoordinate kind of the data f(from 0). Id of m_line_bcoef.

MGCurveを再実装しています。

const MGLBRep* MGLBRep::is_Bezier ( int  ordr = 0) const
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を再実装しています。

bool MGLBRep::is_coplanar ( const MGCurve curve2,
MGPlane plane 
) const
virtual

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.

MGCurveを再実装しています。

bool MGLBRep::is_planar ( MGPlane plane) const
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.

MGCurveを再実装しています。

MGCCisect_list MGLBRep::isect ( const MGCurve curve2) const
virtual

Spline と Curve の交点を求める。 Intersection point of spline and curve.

MGCurveを実装しています。

MGCCisect_list MGLBRep::isect ( const MGStraight curve2) const
virtual

MGCurveを実装しています。

MGCCisect_list MGLBRep::isect ( const MGRLBRep curve2) const
virtual

MGCurveを再実装しています。

MGCCisect_list MGLBRep::isect ( const MGEllipse curve2) const
virtual

MGCurveを再実装しています。

MGCCisect_list MGLBRep::isect ( const MGLBRep curve2) const
virtual

MGCurveを再実装しています。

MGCCisect_list MGLBRep::isect ( const MGSurfCurve curve2) const
virtual

MGCurveを実装しています。

MGCCisect_list MGLBRep::isect ( const MGBSumCurve curve2) const
virtual

MGCurveを再実装しています。

MGCSisect_list MGLBRep::isect ( const MGSurface surf) const
virtual

Intersection of MGLBRep and Surface.

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGPlane surf) const
virtual

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGSphere surf) const
virtual

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGCylinder surf) const
virtual

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGSBRep surf) const
virtual

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGRSBRep surf) const
virtual

MGCurveを実装しています。

MGCSisect_list MGLBRep::isect ( const MGBSumSurf surf) const
virtual

MGCurveを実装しています。

double& MGLBRep::knot ( int  i)
inline

Access to i-th element of knot. ( left-hand side version)

double MGLBRep::knot ( int  i) const
inlinevirtual

Access to i-th element of knot. (right hand side version)

MGCurveを実装しています。

const double* MGLBRep::knot_data ( ) const
inline

Returns a pointer to the knot vector data.

double* MGLBRep::knot_data ( )
inline
const MGKnotVector& MGLBRep::knot_vector ( ) const
inlinevirtual

Returns the knot vector. (RHS version)

MGCurveを実装しています。

MGKnotVector& MGLBRep::knot_vector ( )
inline

Returns the knot vector. (LHS version)

virtual MGLBRep& MGLBRep::limit ( const MGInterval rng)
virtual

Update this by limiting the parameter range of the curve.

自身に指定したパラメータ範囲のlimitをつける.

MGCurveを実装しています。

mgTL2Polylineで再実装されています。

const MGBPointSeq& MGLBRep::line_bcoef ( ) const
inline

Returns the B-coef's(RHS version).

MGBPointSeq& MGLBRep::line_bcoef ( )
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_kindIndicates how to move line.
move_point_paramindicate object point to move by the parameter value.
to_pointdestination point of the abve source point.
fix_pointSee function explanation.
virtual void MGLBRep::negate ( )
virtual

Change direction of the line.

MGCurveを実装しています。

mgTL2Polylineで再実装されています。

double MGLBRep::negate_param ( double  t) const
virtual

Obtain parameter value if this curve is negated by "negate()".

MGCurveを実装しています。

std::auto_ptr<MGCurve> MGLBRep::oneD ( const double  g[4]) const
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].

引数
gPlane expression(a,b,c,d) where ax+by+cz=d.

MGCurveを実装しています。

MGLBRep MGLBRep::operator* ( double  ) const
MGLBRep MGLBRep::operator* ( const MGMatrix ) const
MGLBRep MGLBRep::operator* ( const MGTransf ) const
MGLBRep& MGLBRep::operator*= ( double  scale)
virtual

MGCurveを実装しています。

MGLBRep& MGLBRep::operator*= ( const MGMatrix mat)
virtual

MGCurveを実装しています。

MGLBRep& MGLBRep::operator*= ( const MGTransf tr)
virtual

MGCurveを実装しています。

MGLBRep MGLBRep::operator+ ( const MGVector ) const

Transformation object construction.

MGLBRep& MGLBRep::operator+= ( const MGVector v)
virtual

Object transformation.

MGCurveを実装しています。

MGLBRep MGLBRep::operator- ( const MGVector ) const
MGLBRep& MGLBRep::operator-= ( const MGVector v)
virtual

MGCurveを実装しています。

bool MGLBRep::operator< ( const MGLBRep gel2) const
bool MGLBRep::operator< ( const MGGel gel2) const
virtual

MGCurveを実装しています。

MGLBRep& MGLBRep::operator= ( const MGGel gel2)
virtual

Assignment. When the leaf object of this and crv2 are not equal, this assignment does nothing.

MGGelを再実装しています。

MGLBRep& MGLBRep::operator= ( const MGLBRep el2)

Assignment.

bool MGLBRep::operator== ( const MGLBRep gel2) const

comparison

bool MGLBRep::operator== ( const MGGel gel2) const
virtual

Comparison.

MGCurveを実装しています。

bool MGLBRep::operator== ( const MGRLBRep gel2) const
int MGLBRep::order ( ) const
inlinevirtual

Returns the order.

MGCurveを実装しています。

virtual std::ostream& MGLBRep::out ( std::ostream &  ) const
virtual

Debug Function.

MGCurveを再実装しています。

mgTL2Polylineで再実装されています。

int MGLBRep::out_to_IGES ( MGIgesOfstream igesfile,
int  SubordinateEntitySwitch = 0 
) const
virtual

IGES output function. PD126.

Returns the knot vector. MGKnotVector knot_vector_real() const{return knot_vector();}

MGGelを再実装しています。

double MGLBRep::param_e ( ) const
virtual

Return ending parameter value.

MGCurveを実装しています。

double MGLBRep::param_normalize ( double  t) const
virtual

Normalize parameter value t to the nearest knot if their distance is within tolerance.

MGCurveを実装しています。

double MGLBRep::param_s ( ) const
virtual

Return starting parameter value.

MGCurveを実装しています。

MGCurve* MGLBRep::part ( double  t1,
double  t2,
int  multiple = 0 
) const
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.

引数
t1from parameter t1.
t2To parameter t2.
multipleIndicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary.

MGCurveを実装しています。

MGCParam_list MGLBRep::perps ( const MGPosition point) const
virtual

与ポイントから曲線へ下ろした垂線の足の,曲線のパラメータ値を すべて求める。 Return all the foots of the straight lines that is perpendicular to the line.

引数
point与ポイント

MGCurveを再実装しています。

MGPosition_list MGLBRep::perps ( const MGCurve crv2) const
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を実装しています。

MGPosition_list MGLBRep::perps ( const MGStraight crv2) const
virtual

MGCurveを実装しています。

MGPosition_list MGLBRep::perps ( const MGRLBRep crv2) const
virtual

MGCurveを再実装しています。

MGPosition_list MGLBRep::perps ( const MGEllipse crv2) const
virtual

MGCurveを再実装しています。

MGPosition_list MGLBRep::perps ( const MGLBRep crv2) const
virtual

MGCurveを再実装しています。

MGPosition_list MGLBRep::perps ( const MGSurfCurve crv2) const
virtual

MGCurveを再実装しています。

MGPosition_list MGLBRep::perps ( const MGBSumCurve crv2) const
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.

引数
planeWhen Brep is not straight line nor a point, plane is returned. Even when not planar(return value is 0), plane nearest is returned.
lineWhen Brep is a line, line is returned.
pointWhen Brep is a point, point is returned.
int MGLBRep::project ( const MGFSurface surf,
MGPvector< MGCurve > &  vec_crv_uv,
MGPvector< MGCurve > &  vec_crv,
const MGVector vec 
) const
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
void MGLBRep::ReadMembers ( MGIfstream buf)
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.

引数
ndecNumber 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.

引数
tBLUNKknot vector
void MGLBRep::remove_knot ( )
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();

引数
line0Tolerance allowed for the knot removal. When line0=<0., the knot will be removed unconditionally.
nKnot削除しようとするノットの番号
totalTol誤差合計
num_knotRemained knot number at knot(id) after removed.
sidSpace dimension start id of this LBRep's B-coef.
snumNum of space dimension for the totalTol tolerance check.
int MGLBRep::sdim ( ) const
inlinevirtual

Returns the space dimension.

MGCurveを実装しています。

MGSurface* MGLBRep::sweep ( const MGUnit_vector uvec,
double  start_dist,
double  end_dist 
) const
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.

引数
uvecSweep Direction.
start_distdistance to start edge.
end_distdistance to end edge.

MGCurveを実装しています。

MGCURVE_TYPE MGLBRep::type ( ) const
inlinevirtual

曲線のタイプをを返す。 Return the curve type.

MGCurveを実装しています。

MGCurve& MGLBRep::unlimit ( )
inlinevirtual

limitをはずす。

MGCurveを実装しています。

MGCurve& MGLBRep::unlimit_end ( )
inlinevirtual

Unlimit parameter range of the curve to the end point direction (終点方向にlimitをはずす)

MGCurveを実装しています。

MGCurve& MGLBRep::unlimit_start ( )
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.

std::string MGLBRep::whoami ( ) const
inlinevirtual

MGCurveを再実装しています。

void MGLBRep::WriteMembers ( MGOfstream buf) const
protectedvirtual

メンバデータを書き込む関数 戻り値boolは正常に書き込みが出来ればtrue、失敗すればfalseになる

MGCurveを再実装しています。

フレンドと関連関数の詳解

MG_DLL_DECLR friend MGLBRep operator* ( double  scale,
const MGLBRep  
)
friend

scaling by a scalar.

MG_DLL_DECLR friend MGLBRep operator+ ( const MGVector v,
const MGLBRep lb 
)
friend

translation by a vector.

MG_DLL_DECLR friend MGPvector<MGLBRep> rebuild_knot ( const std::vector< const MGCurve * > &  brepl,
int  order = 0,
MGLBRep **  tp = 0 
)
friend

曲線列のノットベクトルを再構築する 入力された複数曲線列を指定オーダーで再構築する。トレランスはline_zero()を使用している。 オーダーが指定されていないとき曲線列のうちで最も大きいオーダーを使用する。このとき、 Ellipse, Straightのオーダーは4として考える。 パラメータ範囲は1次微分値の大きさが1になるようにしたときの長さの平均を使用している。 戻り値は再構築後の曲線列が返却される。エラーのときヌルが返却される。

引数
brepl入力曲線列
order指定オーダー
tp接続面
MG_DLL_DECLR friend MGPvector<MGLBRep> rebuild_knot ( const MGPvector< MGCurve > &  brepl,
int  order = 0,
MGLBRep **  tp = 0 
)
friend

Same as above, except that the input is MGPvector<>.

引数
brepl入力曲線列
order指定オーダー
tp接続面
MG_DLL_DECLR friend void remove_knot_curves ( MGPvector< MGLBRep > &  brepList,
MGLBRep **  tp = 0,
double  tp_length = 0. 
)
friend

複数カーブの共通で削除できるノットを削除する。 ただし、入力カーブは同じノットベクトルを持つものとする。

引数
brepList曲線列
tp接続面 input and output. if tp[i] for crvl[i] was not null, converted new tp will be output.
tp_lengthration of angle zero. When =zero, removal is done unconditionally. The actual error of the angle is set to tp_length*MGTolerance::angle_zero().

このクラス詳解は次のファイルから抽出されました: