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

MGStraight is a curve of any space dimension, represent a straight line. [詳解]

MGStraight の継承関係図
MGCurve MGGeometry MGObject MGAttribedGel MGGel

公開メンバ関数

 MGStraight ()
 Void constructor. [詳解]
 
 MGStraight (const MGStraight &sl)
 Copy constructor. [詳解]
 
 MGStraight (const MGEReal &endparam, const MGEReal &sparam, const MGVector &direction, const MGPosition &Origin)
 
 MGStraight (double endparam, double sparam, const MGVector &direction, const MGPosition &Origin)
 
 MGStraight (MGSTRAIGHT_TYPE type, const MGVector &vec, const MGPosition &=mgORIGIN)
 
 MGStraight (const MGPosition &end, const MGPosition &start)
 
 MGStraight (const MGPosition &endP, const MGPosition &startP, const double endT, const double startT=0.0)
 
 MGStraight (const MGUnit_vector &v, double d, const MGPosition &p=mgORIGIN)
 
 MGStraight (const MGPosition &P1, const MGPosition &P2, const MGVector &N)
 
 MGStraight (const MGVector &v0, const MGVector &v1, const MGPosition &uv)
 
 MGStraight (int dim, const MGStraight &linne2, int start1=0, int start2=0)
 
 ~MGStraight ()
 
MGStraightoperator= (const MGGel &gel2)
 
MGStraightoperator= (const MGStraight &gel2)
 
MGStraight operator+ (const MGVector &vec) const
 
MGStraight operator- (const MGVector &vec) const
 
MGStraight operator* (double scale) const
 
MGStraight operator* (const MGMatrix &) const
 
MGStraight operator* (const MGTransf &) const
 
MGStraightoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
MGStraightoperator-= (const MGVector &v)
 
MGStraightoperator*= (double scale)
 
MGStraightoperator*= (const MGMatrix &mat)
 
MGStraightoperator*= (const MGTransf &tr)
 
bool operator== (const MGStraight &sl2) const
 comparison [詳解]
 
bool operator== (const MGGel &gel2) const
 Comparison. [詳解]
 
bool operator< (const MGStraight &gel2) const
 
bool operator< (const MGGel &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
 
MGStraightchange_dimension (int sdim, int start1=0, int start2=0)
 Changing this object's space dimension. [詳解]
 
void change_range (double t1, double t2)
 
MGStraightcoordinate_exchange (int i, int j)
 
MGStraightclone () const
 
double closest (const MGPosition &point) const
 Compute the closest point parameter value of this curve from a point. [詳解]
 
MGPosition closest (const MGCurve &curve2) const
 
void convert_to_Bezier (MGLBRep &bezier) const
 
MGCurvecopy_as_nurbs () const
 
MGStraightcopy_change_dimension (int sdim, int start1=0, int start2=0) const
 
double curvature (double) const
 
double curvilinear_integral (double t1, double t2) const
 
MGUnit_vector direction (double) const
 
const MGVectordirection () const
 
double direction_len () const
 Return direction vector length of the straight line. [詳解]
 
double distance (const MGPosition &=mgORIGIN) const
 
double distance (const MGStraight &) const
 
void drawWire (mgVBO &vbo, double span_length, int line_density=1) const
 Draw this curve into vbo, approximating with polyline. [詳解]
 
void drawSE (mgVBO &vbo, double span_length, double t0, double t1) const
 Draw this curve into vbo, approximating with polyline. [詳解]
 
const MGERealend () const
 Return end parameter value. [詳解]
 
double end_param () const
 
MGPosition end_point () const
 
MGVector eval (double t, int nderiv=0, int left=0) const
 
void eval_all (double t, MGPosition &, MGVector &, MGVector &) const
 
MGVector eval_deriv (double t) const
 
MGPosition eval_position (double t) const
 
MGPosition eval_position_unlimitted (double t) const
 
void extend (double length, bool start=false)
 
bool finite () const
 Test if thie straight is a finite line. [詳解]
 
long identify_type () const
 Return This object's typeID. [詳解]
 
bool infinite_above () const
 Test if infinite_above(infinite to larger parameter direction). [詳解]
 
bool infinite_below () const
 Test if infinite_below(infinite to smaller parameter direction). [詳解]
 
bool in_range (double t) const
 Test if input parameter value is inside parameter range of the line. [詳解]
 
int intersect_dnum () const
 Provide divide number of curve span for function intersect. [詳解]
 
bool is_coplanar (const MGCurve &curve2, MGPlane &plane) const
 
bool is_startpoint_parameter (double t) const
 Test if the input parameter t is the start point parameter or not. [詳解]
 
bool is_endpoint_parameter (double t) const
 Test if the input parameter t is the start point parameter or not. [詳解]
 
bool is_linear (MGStraight &straight) const
 
bool is_planar (MGPlane &plane) const
 
MGCCisect_list isect (const MGCurve &) 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 MGSurfCurve &curve2) const
 
MGCCisect_list isect (const MGBSumCurve &curve2) const
 
MGCSisect_list isect (const MGSurface &surf) const
 Intersection of Straight 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
 
MGCSisect_list isect (const MGFace &f) const
 
double knot (int i) const
 
const MGKnotVectorknot_vector () const
 Returns the knot vector of the curve. [詳解]
 
MGKnotVectorknot_vector ()
 
double length (double t1, double t2) const
 
double length () const
 
double length_param (double t, double len) const
 
MGStraightlimit (const MGInterval &)
 
MGStraightlimit (const MGBox &box)
 
MGPosition nearest_to_origin () const
 Compute nearest point on the line to the origin. [詳解]
 
void negate ()
 
double negate_param (double t) const
 Obtain parameter value if this curve is negated by "negate()". [詳解]
 
MGPvector< MGCurveoffset (double ofs_value, const MGVector &norm_vector=mgNULL_VEC) const
 
bool on (const MGPosition &, double &) const
 
bool on (const MGPlane &) const
 
int order () const
 Returns the order. [詳解]
 
double param (const MGPosition &) const
 
double param_e () const
 Return ending parameter value. [詳解]
 
double param_error () const
 Obtain parameter space error. [詳解]
 
double param_normalize (double t) const
 
MGInterval param_range () const
 Return parameter range of the curve(パラメータ範囲を返す) [詳解]
 
double param_s () const
 Return starting parameter value. [詳解]
 
MGStraightpart (double t1, double t2, int multiple=0) const
 
double perp_param (const MGPosition &) const
 
int perp_point (const MGPosition &, double &d1, const double *d2=NULL) 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 MGSurfCurve &crv2) const
 
MGPosition_list perps (const MGBSumCurve &crv2) const
 
int project (const MGFSurface &surf, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const
 
double range (double) const
 
MGPSRELATION relation (const MGStraight &sl2, MGCCisect &ip) const
 
MGPSRELATION relation (const MGPlane &, MGCSisect &) const
 
const MGPositionroot_point () const
 
int sdim () const
 Return space dimension. [詳解]
 
MGStraightset_straight (MGSTRAIGHT_TYPE type, const MGVector &vec, const MGPosition &=mgORIGIN)
 
const MGVectorsl_direction () const
 Return straight line's direction. [詳解]
 
const MGERealstart () const
 Return start point parameter value. [詳解]
 
MGPosition start_point () const
 
MGSTRAIGHT_TYPE straight_type () const
 
MGSurfacesweep (const MGUnit_vector &uvec, double start_dist, double end_dist) const
 
MGCURVE_TYPE type () const
 
MGCurveunlimit ()
 
MGCurveunlimit_end ()
 
MGCurveunlimit_start ()
 
void update_root (const MGPosition &rootP)
 
std::ostream & out (std::ostream &) const
 
int out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
 
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 closest2D (const MGPosition &point) const
 Compute the nearest point from input point on this curve's (x,y) 2D part. [詳解]
 
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 MGCurvecopy_limitted (const MGInterval &prange) const
 Construct new curve object limitting the parameter range to prange. [詳解]
 
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 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. [詳解]
 
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. [詳解]
 
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. [詳解]
 
virtual bool get_control_points (MGBPointSeq &cpoints) const
 Extracts control points. [詳解]
 
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. [詳解]
 
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. [詳解]
 
virtual MGCCisect_list isect (const MGLBRep &curve2) const
 
MGCCisect_list isect (const MGTrimmedCurve &curve2) const
 
MGCCisect_list isect (const MGCompositeCurve &curve2) const
 
MGCSisect_list isect (const MGFSurface &fs) 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 MGLBRepis_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. [詳解]
 
bool is_perpendicular (const MGPosition &P, double t) const
 Test if the vector from P to this->eval(t) is perpendicular. [詳解]
 
MGKnotVectorknot_vector ()
 Returns the knot vector of the curve. [詳解]
 
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 (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. [詳解]
 
bool on (const MGPosition &P, MGPosition &t) const
 Test if given point is on this geometry or not. [詳解]
 
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. [詳解]
 
MGPosition_list perpendiculars (const MGCurve &crv) const
 Compute all the perpendicular points of this curve and the second one. [詳解]
 
virtual MGPosition_list perps (const MGLBRep &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. [詳解]
 
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 void remove_knot ()
 Remove redundant knot, and reduce the b-rep dimension. [詳解]
 
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 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
 
virtual void display_control_polygon (mgSysGL &sgl) 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. [詳解]
 
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 に属する継承限定公開メンバ関数
MGGeometryset_geometry (const MGGeometry &geo2)
 Assignment. [詳解]
 
- 基底クラス MGObject に属する継承限定公開メンバ関数
MGObjectset_object (const MGObject &gel2)
 

フレンド

MG_DLL_DECLR friend MGStraight operator+ (const MGVector &v, const MGStraight &sl)
 
MG_DLL_DECLR friend MGStraight operator* (double scale, const MGStraight &)
 

その他の継承メンバ

- 基底クラス MGGeometry に属する継承限定公開変数類
MGBoxm_box
 
- 基底クラス MGAttribedGel に属する継承限定公開変数類
std::auto_ptr< mgVBOm_dlistName
 display name if m_dlistName!=0; [詳解]
 

詳解

MGStraight is a curve of any space dimension, represent a straight line.

Parameterization of the MGStraight is as below using parameter t: point(t) = m_root_point + t*m_direction. MGStraight can be a line segment that has start and end points. Let t be the parameter of the straight line(i.e. length from m_root_point), then straight lien f(t) can be expressed as: f(t)=m_root_point+m_direction*t.

構築子と解体子

MGStraight::MGStraight ( )

Void constructor.

MGStraight::MGStraight ( const MGStraight sl)

Copy constructor.

MGStraight::MGStraight ( const MGEReal endparam,
const MGEReal sparam,
const MGVector direction,
const MGPosition Origin 
)
explicit

Straight specifying all the member data. All of the data are employed as member data of this straight.

引数
endparamend parameter value
sparamstart parameter value
directionDirection, which will be the direction of this.
OriginOrigin
MGStraight::MGStraight ( double  endparam,
double  sparam,
const MGVector direction,
const MGPosition Origin 
)
explicit
引数
endparamend parameter value
sparamstart parameter value
directionDirection, which will be the direction of this.
OriginOrigin
MGStraight::MGStraight ( MGSTRAIGHT_TYPE  type,
const MGVector vec,
const MGPosition = mgORIGIN 
)

直線のタイプ,方向ベクトル,始点を指定して直線を生成する。 Straight from straight line type, direction vector, and an origin. This constrcutor converts input vec to a unit vector. If you do not like the conversion, use set_straight().

引数
typeType Straight line type(直線の種類) enum MGSTRAIGHT_TYPE { MGSTRAIGHT_EMPTY //Empty. 空 ,MGSTRAIGHT_SEGMENT //Line segment. 線分 ,MGSTRAIGHT_HALF_LIMIT //Half unlimit. 半直線 ,MGSTRAIGHT_UNLIMIT //Unlimit line for both direction. 無限直線 };
vecDirection
MGStraight::MGStraight ( const MGPosition end,
const MGPosition start 
)

2点から直線を生成する。 MGSTRAIGHT_SEGMENT straight from two points. Start point is start and end point is end. Parameter value of the start point is set to be 0.

引数
endEnd point.
startStart point.
MGStraight::MGStraight ( const MGPosition endP,
const MGPosition startP,
const double  endT,
const double  startT = 0.0 
)

始終点の座標、パラメータ値から直線を生成する。 MGSTRAIGHT_SEGMENT straight from two points. Start point is start and end point is end. In this version, can specify start and end parameter values.

引数
endPEnd point.
startPStart point.
endTEnd Parameter.
startTStart Parameter.
MGStraight::MGStraight ( const MGUnit_vector v,
double  d,
const MGPosition p = mgORIGIN 
)

単位方向ベクトル、終点のパラメータ値、始点を指定して直線を生成する。 Straight line from direction vector, end point parameter, and an origin.

引数
vUnit direction vector
dParameter value of end point
pOrigin
MGStraight::MGStraight ( const MGPosition P1,
const MGPosition P2,
const MGVector N 
)
explicit

Construct the infinite straight line that is a perpendicular bisect of the two point P1 and P2 and that is normal to the vector N. The line's direction is N*(P2-P1). N is the normal of the plane P1, P2, and the constructed line lie on.

引数
P1point 1.
P2point 2.
NNormal.
MGStraight::MGStraight ( const MGVector v0,
const MGVector v1,
const MGPosition uv 
)
explicit

Construct the unlimitted straight that pass through the point uv, and the direction is the middle vector of (-v0, v1). All of v0, v1, uv, and this straight are objects of space dimension 2. Construct Straight Line copying original line. Able to change space dimension and ordering of axis.

MGStraight::MGStraight ( int  dim,
const MGStraight linne2,
int  start1 = 0,
int  start2 = 0 
)
引数
dimNew space dimension.
linne2Original line.
start1Destination order of new line.
start2Source order of original line.
MGStraight::~MGStraight ( )

関数詳解

void MGStraight::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 lbrep will be set.
ordrnew order. When this is MGLBRep, if ordr=0, ordr=order() will be assumed, else ordr=4 is assumed. For MGStraight, ordr=2 is always employed.
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 MGStraight::bdim ( ) const
inlinevirtual

Returns B-Rep Dimension.

MGCurveを実装しています。

MGBox MGStraight::box_limitted ( const MGInterval l) const
virtual

指定線分を囲むボックスを返却する。 Minimum box that includes the line limitted by interval l.

MGCurveを実装しています。

MGStraight& MGStraight::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を実装しています。

void MGStraight::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 the original.
t2Parameter value for the end of the original.

MGCurveを実装しています。

MGStraight* MGStraight::clone ( ) const
virtual

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

MGCurveを実装しています。

double MGStraight::closest ( const MGPosition point) const
virtual

Compute the closest point parameter value of this curve from a point.

MGCurveを再実装しています。

MGPosition MGStraight::closest ( const MGCurve curve2) const
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.

MGCurveを再実装しています。

void MGStraight::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.

MGCurveを再実装しています。

MGStraight& MGStraight::coordinate_exchange ( int  i,
int  j 
)
virtual

Exchange ordering of the coordinates. Exchange coordinates (i) and (j).

MGCurveを実装しています。

MGCurve* MGStraight::copy_as_nurbs ( ) const
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.

MGCurveを実装しています。

MGStraight* MGStraight::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を実装しています。

double MGStraight::curvature ( double  ) const
inlinevirtual

曲率を返却する。直線の場合は0。 Return curvature, i.e. return 0.

MGCurveを再実装しています。

double MGStraight::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を再実装しています。

MGUnit_vector MGStraight::direction ( double  ) const
inlinevirtual

直線上のポイントにおける接線の傾きを返却する。 直線のときは一定。 Return direction vector of the line at a parameter.

MGCurveを再実装しています。

const MGVector& MGStraight::direction ( ) const
inline

線分の方向ベクトルを返却する。 Return direction vector of the line.

double MGStraight::direction_len ( ) const
inline

Return direction vector length of the straight line.

double MGStraight::distance ( const MGPosition = mgORIGIN) const

自身と与えられた点との距離を返す。 Return the ditance between a position.

double MGStraight::distance ( const MGStraight ) const

自身と与えられた直線との距離を返す。 Return distance between two striaght lines.

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

Draw this curve into vbo, approximating with polyline.

引数
vboThe target vbo element.
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を再実装しています。

void MGStraight::drawWire ( mgVBO vbo,
double  span_length,
int  line_density = 1 
) const
virtual

Draw this curve into vbo, approximating with polyline.

引数
vboThe target vbo element.
span_lengthLine segment span length.
line_densityline density to draw surface in wire mode.

MGCurveを再実装しています。

const MGEReal& MGStraight::end ( ) const
inline

Return end parameter value.

double MGStraight::end_param ( ) const
inline

終点のパラメータ値を返却する。 Return end point parameter, valid only when type=MGSTRAIGHT_SEGMENT.

MGPosition MGStraight::end_point ( ) const
virtual

終点の座標値を返却する。 Return end point coordinate, valid only when type=MGSTRAIGHT_SEGMENT.

MGCurveを再実装しています。

MGVector MGStraight::eval ( double  t,
int  nderiv = 0,
int  left = 0 
) const
virtual

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

引数
tParameter value.
nderivOrder of Derivative.
leftLeft continuous(left=true) or right continuous(left=false).

MGCurveを実装しています。

void MGStraight::eval_all ( double  t,
MGPosition ,
MGVector ,
MGVector  
) const
virtual

パラメータ値を与えて位置、一次微分値、二次微分値を求める。 Evaluate positional data, 1st derivative, and 2nd derivative at parameter t.

引数
tParameter of the straight.

MGCurveを再実装しています。

MGVector MGStraight::eval_deriv ( double  t) const
virtual

直線上の与えられたパラメータ値における一次微分値を求める。 Evaluate 1st derivative at parameter t.

MGCurveを再実装しています。

MGPosition MGStraight::eval_position ( double  t) const
virtual

与えられたパラメータ値に相当する直線上の点を返却する。 Evaluate positional data at parameter t. Evaluation is done after t is limitted within the parameter range.

MGCurveを再実装しています。

MGPosition MGStraight::eval_position_unlimitted ( double  t) const

与えられたパラメータ値に相当する直線上の点を返却する。 Evaluate positional data at parameter t. Evaluation is done without limitting the parameter value t within the parameter range.

void MGStraight::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を実装しています。

bool MGStraight::finite ( ) const
inline

Test if thie straight is a finite line.

long MGStraight::identify_type ( ) const
virtual

Return This object's typeID.

MGCurveを実装しています。

bool MGStraight::in_range ( double  t) const
virtual

Test if input parameter value is inside parameter range of the line.

MGCurveを再実装しています。

bool MGStraight::infinite_above ( ) const
inline

Test if infinite_above(infinite to larger parameter direction).

bool MGStraight::infinite_below ( ) const
inline

Test if infinite_below(infinite to smaller parameter direction).

MGCParam_list MGStraight::intersect_1D ( double  f,
int  coordinate = 0 
) const
protectedvirtual

Compute intersection point of 1D sub curve of original curve. Parameter values of intersection point will be returned.

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

MGCurveを再実装しています。

int MGStraight::intersect_dnum ( ) const
inlinevirtual

Provide divide number of curve span for function intersect.

MGCurveを実装しています。

bool MGStraight::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 MGStraight::is_endpoint_parameter ( double  t) const
virtual

Test if the input parameter t is the start point parameter or not.

MGCurveを再実装しています。

bool MGStraight::is_linear ( MGStraight straight) const
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.

MGCurveを再実装しています。

bool MGStraight::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を再実装しています。

bool MGStraight::is_startpoint_parameter ( double  t) const
virtual

Test if the input parameter t is the start point parameter or not.

MGCurveを再実装しています。

MGCCisect_list MGStraight::isect ( const MGCurve ) const
virtual

Straight と Curve の交点を求める。 Intersection of straight and a curve.

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを再実装しています。

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

MGCurveを再実装しています。

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

MGCurveを実装しています。

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

MGCurveを再実装しています。

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

Intersection of Straight and Surface.

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

MGCSisect_list MGStraight::isect ( const MGFace f) const
virtual

MGCurveを再実装しています。

double MGStraight::knot ( int  i) const
virtual

Access to i-th element of knot. i=0, 1 and returns start or end parameter value of the straight.

MGCurveを実装しています。

const MGKnotVector& MGStraight::knot_vector ( ) const
virtual

Returns the knot vector of the curve.

MGCurveを実装しています。

MGKnotVector& MGStraight::knot_vector ( )
double MGStraight::length ( double  t1,
double  t2 
) const
virtual

パラメータ値が昇順であたえられた場合正の値で、降順の場合 負の値でパラメータ間の直線の代数的距離を返却する。 Return curve length from parameter t1 to t2. If t1>t2, the result is minus value.

MGCurveを再実装しています。

double MGStraight::length ( ) const
virtual

自身の直線が有界の場合、その直線の距離を返却する。 非有界のとき−1を返却する。 When type=MGSTRAIGHT_SEGMENT, return the whole length of straight line segment. Else, return -1.

MGCurveを再実装しています。

double MGStraight::length_param ( double  t,
double  len 
) const
virtual

パラメータtで示される点から指定距離lenはなれた点のパラメータ値を返す。 Return the parameter of the line away from point t by length len along the straight.

MGCurveを再実装しています。

MGStraight& MGStraight::limit ( const MGInterval )
virtual

自身の直線に指定されたlimitを付与する。 Compute sub straight line limitted by an interval.

MGCurveを実装しています。

MGStraight& MGStraight::limit ( const MGBox box)

Compute sub straight line limitted by an box. This box's coordinates consist of world coordinates.

MGPosition MGStraight::nearest_to_origin ( ) const

Compute nearest point on the line to the origin.

void MGStraight::negate ( )
virtual

直線の方向を反転する(方向ベクトルを逆向きにする。)。 始終点があるときは入れ換える。 Negate the direction of the curve.

MGCurveを実装しています。

double MGStraight::negate_param ( double  t) const
virtual

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

MGCurveを実装しています。

MGPvector<MGCurve> MGStraight::offset ( double  ofs_value,
const MGVector norm_vector = mgNULL_VEC 
) const
virtual

一定オフセット関数 オフセット方向は、法線方向から見て入力曲線の進行方向左側を正とする。 法線ベクトルがヌルの場合、空間次元のエレメント番号が最も大きいエレメントが1の単位ベクトルを正とする。 トレランスはline_zero()を使用する。戻り値は、オフセット曲線リストが返却される。 costant offset curve. if the norm_vector is given, the positive offset direction decide to left hand side from ahead, or the MGUnit_vector() direction. line_zero() is used. return value is number of offset curve.

引数
ofs_valueオフセット量
norm_vector法線ベクトル

MGCurveを再実装しています。

bool MGStraight::on ( const MGPosition ,
double &   
) const
virtual

点が直線上にあるかを試験する。直線上にあれば,その点のパラメーター値を,  直線上になくても最近傍点のパラメーター値を返す。 Test if input point is on the line or not. Even if the point is not on the line, return nearest point's parameter value. Function's return value is true if input point is on the line, and false if the point is not on the line.

MGCurveを再実装しています。

bool MGStraight::on ( const MGPlane ) const

直線が平面上にあるか調べる。(平面上ならばtrue) Test if the straight is on a plane or not. Function's return value is true if on the line, and false if not on the line.

std::auto_ptr<MGCurve> MGStraight::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を実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

MGStraight MGStraight::operator+ ( const MGVector vec) const

直線の平行移動を行いオブジェクトを生成する。 Transformation

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

Object transformation.

MGCurveを実装しています。

MGStraight MGStraight::operator- ( const MGVector vec) const
MGStraight& MGStraight::operator-= ( const MGVector v)
virtual

MGCurveを実装しています。

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

MGCurveを実装しています。

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

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

MGGelを再実装しています。

MGStraight& MGStraight::operator= ( const MGStraight gel2)
bool MGStraight::operator== ( const MGStraight sl2) const

comparison

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

Comparison.

MGCurveを実装しています。

int MGStraight::order ( ) const
inlinevirtual

Returns the order.

MGCurveを実装しています。

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

Output function. Output to ostream. メンバデータを標準出力に出力する。

MGCurveを再実装しています。

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

IGES output function (Default function is no operation to output) Function's return value is the directory entry id created.

MGGelを再実装しています。

double MGStraight::param ( const MGPosition ) const
virtual

直線上の与えられたポイントにおけるパラメータ値を返す。 Return parameter of the straight of input point. If input point is not on the curve, return the nearest point's parameter on the curve.

MGCurveを再実装しています。

double MGStraight::param_e ( ) const
inlinevirtual

Return ending parameter value.

MGCurveを実装しています。

double MGStraight::param_error ( ) const
virtual

Obtain parameter space error.

MGCurveを再実装しています。

double MGStraight::param_normalize ( double  t) const
virtual

Normalize parameter value t to the nearest knot if their distance is within tolerance. For straight, the knots are start and end points.

MGCurveを実装しています。

MGInterval MGStraight::param_range ( ) const
virtual

Return parameter range of the curve(パラメータ範囲を返す)

MGCurveを再実装しています。

double MGStraight::param_s ( ) const
inlinevirtual

Return starting parameter value.

MGCurveを実装しています。

MGStraight* MGStraight::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.
t2To parameter.
multipleIndicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary.

MGCurveを実装しています。

double MGStraight::perp_param ( const MGPosition ) const

与点から直線への垂線の足のパラメータ値を返却する。 Return the foot of the straight line that is perpendicular from a point. Function's return value is parameter value of this straight line, may not be in_range.

int MGStraight::perp_point ( const MGPosition ,
double &  d1,
const double *  d2 = NULL 
) const
virtual

与えられたポイントから直線への垂線の足のパラメータ値を返却する。 Return the foot of the straight line that is perpendicular from a point. Function's return value is if point is obtained(1) or not(0).

引数
d1parameter value will be returned.
d2guess parameter value, dummy, not used.

MGCurveを再実装しています。

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

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

引数
point与ポイント

MGCurveを再実装しています。

MGPosition_list MGStraight::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 MGStraight::perps ( const MGStraight crv2) const
virtual

MGCurveを実装しています。

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

MGCurveを再実装しています。

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

MGCurveを再実装しています。

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

MGCurveを再実装しています。

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

MGCurveを再実装しています。

int MGStraight::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を再実装しています。

double MGStraight::range ( double  ) const
virtual

入力パラメータをパラメータ範囲でまるめて返却する。 Round the input parameter value t into the parameter range of the line.

MGCurveを再実装しています。

void MGStraight::ReadMembers ( MGIfstream buf)
protectedvirtual

メンバデータを読み込む関数 戻り値boolは正常に読み出しが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。

MGCurveを再実装しています。

MGPSRELATION MGStraight::relation ( const MGStraight sl2,
MGCCisect ip 
) const
引数
sl22nd straight line.
ipWhen MGPSREL_PARALLEL or MGPSREL_COIN, a pair of parameter values of the nearest point of the two will be returned. When MGPSREL_ISECT or MGPSREL_VIRTUAL_ISECT, the intersection point parameter values will be returned. When MGPSREL_TORSION, MGPSREL_VIRTUAL_ISECT intersection point parameter value after transformed to lie on the same plane will be returned.
MGPSRELATION MGStraight::relation ( const MGPlane ,
MGCSisect  
) const

自身と与えられた平面の関係を調べる。 Return relationship with a plane.

const MGPosition& MGStraight::root_point ( ) const
inline
int MGStraight::sdim ( ) const
virtual

Return space dimension.

MGCurveを実装しています。

MGStraight& MGStraight::set_straight ( MGSTRAIGHT_TYPE  type,
const MGVector vec,
const MGPosition = mgORIGIN 
)

直線のタイプ,方向ベクトル,始点を指定して直線を生成する。 Straight from straight line type, direction vector, and an origin. Construct a straight and replce this with it. This fuction does not convert input vec to a unit vector. If you like the conversion, use MGStraight() constructor.

引数
typeType Straight line type(直線の種類) enum MGSTRAIGHT_TYPE { MGSTRAIGHT_EMPTY //Empty. 空 ,MGSTRAIGHT_SEGMENT //Line segment. 線分 ,MGSTRAIGHT_HALF_LIMIT //Half unlimit. 半直線 ,MGSTRAIGHT_UNLIMIT //Unlimit line for both direction. 無限直線 };
vecDirection
const MGVector& MGStraight::sl_direction ( ) const
inline

Return straight line's direction.

const MGEReal& MGStraight::start ( ) const
inline

Return start point parameter value.

MGPosition MGStraight::start_point ( ) const
virtual

自身の直線の始点を返却する。 Return start(root) point of the straight.

MGCurveを再実装しています。

MGSTRAIGHT_TYPE MGStraight::straight_type ( ) const

直線のタイプを返却する。 Return the straight line type. Straight line type(直線の種類) enum MGSTRAIGHT_TYPE { MGSTRAIGHT_EMPTY //Empty. 空 ,MGSTRAIGHT_SEGMENT //Line segment. 線分 ,MGSTRAIGHT_HALF_LIMIT //Half unlimit. 半直線 ,MGSTRAIGHT_UNLIMIT //Unlimit line for both direction. 無限直線 };

MGSurface* MGStraight::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 MGStraight::type ( ) const
inlinevirtual

曲線タイプを返却する。 Return curve type, i.e. MGCURVE_STRAIGHT.

MGCurveを実装しています。

MGCurve& MGStraight::unlimit ( )
virtual

自身の直線からlimitを取り除く。 Unlimit the parameter range, i.e. change to infinite striahgt line for both direction.

MGCurveを実装しています。

MGCurve& MGStraight::unlimit_end ( )
virtual

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

MGCurveを実装しています。

MGCurve& MGStraight::unlimit_start ( )
virtual

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

MGCurveを実装しています。

void MGStraight::update_root ( const MGPosition rootP)
std::string MGStraight::whoami ( ) const
inlinevirtual

MGCurveを再実装しています。

void MGStraight::WriteMembers ( MGOfstream buf) const
protectedvirtual

メンバデータを書き込む関数 戻り値boolは正常に書き込みが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。

MGCurveを再実装しています。

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

MG_DLL_DECLR friend MGStraight operator* ( double  scale,
const MGStraight  
)
friend
MG_DLL_DECLR friend MGStraight operator+ ( const MGVector v,
const MGStraight sl 
)
friend

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