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

MGEllipse is a class to define an ellipse of 2D or 3D. [詳解]

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

公開メンバ関数

 MGEllipse ()
 Void constructor(初期化なしで楕円を生成する) [詳解]
 
 MGEllipse (const MGEllipse &el, bool to_radian=false)
 
 MGEllipse (int sdim, const MGEllipse &ellip, int start1=0, int start2=0)
 Change space dimension and ordering of coordinates. [詳解]
 
 MGEllipse (const MGPosition &center, const MGVector &major_axis, const MGVector &minor_axis, const MGInterval &prange)
 
 MGEllipse (const MGPosition &center, double r, const MGVector &normal=mgZ_UVEC)
 
 MGEllipse (const MGPosition &center, const MGPosition &spoint, double d=mgDBLPAI, const MGVector &v=mgZ_UVEC)
 
 MGEllipse (const MGPlane &plane, const MGPosition &corner1, MGPosition &corner2)
 
 MGEllipse (double r, const MGPosition &start, const MGPosition &end, const MGVector &N, bool whole_circle=false)
 
 MGEllipse (double r, const MGPosition &start, const MGPosition &end, const MGPosition &reference, bool whole_circle=false)
 
 MGEllipse (const MGPosition &P, const MGVector &V1, const MGVector &V2, double d)
 
 MGEllipse (const MGPosition &start, const MGPosition &through, const MGPosition &end, bool whole_circle=false)
 
 MGEllipse (const MGPosition &center, const MGPosition &start, const MGPosition &end, const MGVector &N, bool whole_circle=false)
 Arc from center, start point, end point. [詳解]
 
 MGEllipse (const MGPosition &start, const MGPosition &end, const MGVector &dir_s, bool whole_circle=false)
 
 MGEllipse (const MGCurve &crv1, const MGCurve &crv2, const MGUnit_vector &normal, double dRadius, double &t1, double &t2, int &rc)
 
 MGEllipse (const MGCurve &crv1, const MGCurve &crv2, const MGUnit_vector &normal, double t1, double &t2, int &rc)
 
 MGEllipse (const MGCurve &crv1, const MGCurve &crv2, const MGCurve &crv3, const MGUnit_vector &normal, double &t1, double &t2, double &t3, int &rc)
 
 MGEllipse (const MGCurve &crv, const MGPosition &pos, const MGUnit_vector &normal, double dRadius, double &dParam, int &rc)
 
 MGEllipse (const MGCurve &crv, const MGPosition &P2, const MGUnit_vector &normal, double t)
 
 MGEllipse (const MGIgesDirectoryEntry &de)
 Conversion constructor from MGIgesDirectoryEntry object. [詳解]
 
 ~MGEllipse ()
 
MGEllipseoperator= (const MGGel &gel2)
 
MGEllipseoperator= (const MGEllipse &el2)
 
MGEllipse operator+ (const MGVector &) const
 Transformation object construction. [詳解]
 
MGEllipse operator- (const MGVector &) const
 
MGEllipse operator* (double scale) const
 
MGEllipse operator* (const MGMatrix &) const
 
MGEllipse operator* (const MGTransf &) const
 
MGEllipseoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
MGEllipseoperator-= (const MGVector &v)
 
MGEllipseoperator*= (double scale)
 
MGEllipseoperator*= (const MGMatrix &mat)
 
MGEllipseoperator*= (const MGTransf &tr)
 
bool operator== (const MGEllipse &gel2) const
 comparison [詳解]
 
bool operator== (const MGGel &gel2) const
 Comparison. [詳解]
 
bool operator< (const MGEllipse &gel2) const
 
bool operator< (const MGGel &gel2) const
 
int bdim () const
 Returns B-Rep Dimension. [詳解]
 
MGBox box_limitted (const MGInterval &) const
 
MGPosition center () const
 Return the center of the ellipse:楕円の中心座標を返却する。 [詳解]
 
MGEllipsechange_dimension (int sdim, int start1=0, int start2=0)
 Changing this object's space dimension. [詳解]
 
void change_param_to_radian ()
 Chane the parameter range of this ellipse to radian. [詳解]
 
void change_range (double t1, double t2)
 
bool circle () const
 
MGEllipseclone () const
 
MGCurvecopy_as_nurbs () const
 
MGEllipsecopy_change_dimension (int sdim, int start1=0, int start2=0) const
 
MGEllipsecoordinate_exchange (int i, int j)
 
bool create_ellipse (const MGPosition &F0, const MGPosition &F1, const MGPosition &P)
 
double curvilinear_integral (double t1, double t2) const
 
void drawSE (mgVBO &vbo, double span_length, double t0, double t1) const
 From t1 to t2;. [詳解]
 
MGELLIPSE_TYPE ellipse_type () const
 Return ellipse type:楕円のタイプを返却する。 [詳解]
 
MGVector eval (double, int nderiv=0, int left=0) const
 
MGVector eval_deriv (double) const
 
void eval_all (double d, MGPosition &p, MGVector &v1, MGVector &v2) const
 
MGVector eval_in_radian (double t, int nderiv=0) const
 
MGVector eval_in_degree (double degree, int nderiv=0) const
 
MGPosition eval_position (double t) const
 
void extend (double length, bool start=false)
 
double gp_to_radian (double t) const
 Compute the radian parameter of the general parameter t;. [詳解]
 
long identify_type () const
 Return This object's typeID. [詳解]
 
bool in_RelativeRange_of_radian (double t) const
 
int intersect_dnum () const
 Provide divide number of curve span for function intersect. [詳解]
 
MGCCisect_list isect (const MGCurve &) const
 
MGCCisect_list isect (const MGStraight &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 Ellipse 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
 
bool is_linear (MGStraight &straight) const
 
bool is_planar (MGPlane &plane) const
 
bool is_whole_ellipse () const
 
double knot (int i) const
 
const MGKnotVectorknot_vector () const
 Returns the knot vector of the curve. [詳解]
 
MGKnotVectorknot_vector ()
 
MGEllipselimit (const MGInterval &)
 
void negate ()
 
double negate_param (double t) const
 Obtain parameter value if this curve is negated by "negate()". [詳解]
 
MGCurveunlimit ()
 Unlimit parameter range of the curve(limitをはずす) [詳解]
 
MGCurveunlimit_end ()
 
MGCurveunlimit_start ()
 
double length (double t1, double t2) const
 
double length () const
 
double length_param (double t, double len) const
 
const MGVectormajor_axis () const
 Return major axis:長軸を返却する。 [詳解]
 
double major_len () const
 Return major axis length:長軸の長さを返却する。 [詳解]
 
const MGVectorminor_axis () const
 Return minor axis:短軸を返却する [詳解]
 
double minor_len () const
 Return major axis length:長軸の長さを返却する。 [詳解]
 
const MGUnit_vectornormal () const
 Return normal:楕円のある平面の法線ベクトルを返却する。 [詳解]
 
bool on (const MGPosition &, double &d1) const
 
int order () const
 Returns the order. [詳解]
 
double param_e () const
 Return ending parameter value. [詳解]
 
double param_normalize (double t) const
 
double param_s () const
 Return starting parameter value. [詳解]
 
bool param_range_is_in_radian () const
 Test if this ellipase 's parameter range is expressed in radian. [詳解]
 
MGEllipsepart (double t1, double t2, int multiple=0) const
 
int perp_point (const MGPosition &p, double &d, const double *g=NULL) const
 value of the ellipse. [詳解]
 
MGCParam_list perps (const MGPosition &) const
 
MGPosition_list perps (const MGCurve &crv2) const
 
MGPosition_list perps (const MGStraight &crv2) const
 
double radian_to_gp (double angle) const
 Compute general parameter t from the radian parameter angle. [詳解]
 
double radius () const
 Return the radius of the circle. This is valid only when circle() is true. [詳解]
 
int sdim () const
 Return space dimension. [詳解]
 
void set_arc (const MGPosition &start, const MGPosition &end, const MGVector &dir_s)
 
MGSurfacesweep (const MGUnit_vector &uvec, double start_dist, double end_dist) const
 
MGCURVE_TYPE type () const
 Return curve type(曲線のタイプを返す) [詳解]
 
std::ostream & out (std::ostream &ostrm) const
 Debug function:デバッグ関数 [詳解]
 
int out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
 Output to IGES stream file. [詳解]
 
- 基底クラス 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
 
virtual void approximate_as_LBRep (MGLBRep &lb, int ordr=0, int parameter_normalization=0, bool neglectMulti=false) const
 Approximate this curve as a MGLBRep. [詳解]
 
void arrow (double t, MGPosition data[4]) const
 Generate arrow data of the tangent at the parameter value t of the curve. [詳解]
 
virtual 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 void convert_to_Bezier (MGLBRep &bezier) const
 Convert this curve to Bezier curve. [詳解]
 
virtual MGCurvecopy_limitted (const MGInterval &prange) const
 Construct new curve object limitting the parameter range to prange. [詳解]
 
virtual double curvature (double) const
 Return curvature at the given point. [詳解]
 
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
 
virtual int divide_multi (MGPvector< MGCurve > &crv_list, int multiplicity=-1) const
 Divide this curve at the designated knot multiplicity point. [詳解]
 
int divide_number () const
 get the a divide number for offset, intersection, or others. [詳解]
 
virtual void 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(終点を返却する) [詳解]
 
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. [詳解]
 
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. [詳解]
 
virtual MGCCisect_list isect (const MGRLBRep &curve2) const
 
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
 
virtual MGCSisect_list isect (const MGFace &) const
 
MGCFisect_vector isect (const MGShell &shl) const
 Intersection of a shell and a curve. [詳解]
 
MGCParam_list isect_1D (double f, int coordinate=0) const
 Compute intersection point of 1D sub curve of original curve. [詳解]
 
virtual const 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. [詳解]
 
virtual bool is_coplanar (const MGCurve &curve2, MGPlane &plane) const
 Test if this cure is co-planar with the 2nd curve curve2. [詳解]
 
virtual bool is_startpoint_parameter (double t) const
 Test if the input parameter t is the start point parameter or not. [詳解]
 
virtual bool is_endpoint_parameter (double t) const
 Test if the input parameter t is the start point parameter or not. [詳解]
 
bool is_perpendicular (const MGPosition &P, double t) const
 Test if the vector from P to this->eval(t) is perpendicular. [詳解]
 
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 (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. [詳解]
 
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. [詳解]
 
MGPosition_list perpendiculars (const MGCurve &crv) const
 Compute all the perpendicular points of this curve and the second one. [詳解]
 
virtual MGPosition_list perps (const MGRLBRep &crv2) const
 
virtual MGPosition_list perps (const MGEllipse &crv2) const
 
virtual MGPosition_list perps (const MGLBRep &crv2) const
 
virtual MGPosition_list perps (const MGSurfCurve &crv2) const
 
virtual MGPosition_list perps (const MGBSumCurve &crv2) const
 
MGPosition_list perps (const MGCompositeCurve &crv2) const
 
MGPosition_list perps (const MGTrimmedCurve &crv2) const
 
virtual MGPosition pick_closest (const MGStraight &sl) const
 Compute the parameter value of the closest point from the straight to this object. [詳解]
 
virtual void polygonize (double error, MGLBRep &lb2) const
 Approximate this curve by a polyline and output to lb2. [詳解]
 
virtual int project (const MGFSurface &surf, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const
 Obtain the projected curve of a curve onto the surface. [詳解]
 
virtual double range (double t) const
 Round t into curve's parameter range. [詳解]
 
MGPosition range (const MGPosition &t) const
 Round t into geometry's parameter range. [詳解]
 
std::auto_ptr< 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 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
 
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
 メンバデータを書き込む関数 [詳解]
 
std::string whoami () 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 MGCCisect_list isect_withC1LB (const MGLBRep &curve2) const
 Compute intersections with MGLBRep curve2 that does not have C0 continuity in it. [詳解]
 
virtual MGCCisect_list isect_with_noCompoSC (const MGSurfCurve &curve2) const
 isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve. [詳解]
 
virtual 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 MGEllipse operator+ (const MGVector &v, const MGEllipse &e)
 Object transformation. [詳解]
 
MG_DLL_DECLR friend MGEllipse operator* (double scale, const MGEllipse &el)
 

その他の継承メンバ

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

詳解

MGEllipse is a class to define an ellipse of 2D or 3D.

Ellipse is expressed as below using parameter t(radian): Point(t) = m_center + m_m * cos(t) + m_n * sin(t), where t0 <= t <= t1, -2 pai<=t0<t1<=2 pai and t1-t0<=2 pai.

構築子と解体子

MGEllipse::MGEllipse ( )

Void constructor(初期化なしで楕円を生成する)

MGEllipse::MGEllipse ( const MGEllipse el,
bool  to_radian = false 
)

Copy constructor. If to_radian is true, the parameter range will be changed to radian values.

MGEllipse::MGEllipse ( int  sdim,
const MGEllipse ellip,
int  start1 = 0,
int  start2 = 0 
)

Change space dimension and ordering of coordinates.

引数
sdimnew space dimension
elliporiginal ellipse data
start1start position coordinate of new ellipse
start2start position coordinate of original
MGEllipse::MGEllipse ( const MGPosition center,
const MGVector major_axis,
const MGVector minor_axis,
const MGInterval prange 
)

Ellipase from center, major axis vector, minor axis vector, and the parameter range. If minor axis vector is not normal to major, it is set to normal. 中心、2つのベクトル、パラメータ範囲から楕円を生成する. ******This is the fundamental constructor.******

引数
centerCenter:中心点
major_axisMajor axis:第1ベクタ
minor_axisMinor axis:第2ベクタ
prangeParameter range in radian:角度の範囲(ラジアン)
MGEllipse::MGEllipse ( const MGPosition center,
double  r,
const MGVector normal = mgZ_UVEC 
)

A whole circle form center, radius, and the normal. 中心、半径、パラメータ範囲と法線ベクトルを指定して真円を作成する。

引数
centerCenter:中心点
rRadius:半径
normalNormal:法線
MGEllipse::MGEllipse ( const MGPosition center,
const MGPosition spoint,
double  d = mgDBLPAI,
const MGVector v = mgZ_UVEC 
)

Arc from center, start point, angle d, and the normal. The angle can be negative value. When it is negative, the arc's direction is clockwise around v. When positive, anti-clockwise. The start point's angle is zero, and the the end point's angle is d. 中心、始点、角度と法線を指定して円弧を作成する。

引数
centerCenter:中心点
spointStart point:始点
dAngle in radian.
vNormal:法線
MGEllipse::MGEllipse ( const MGPlane plane,
const MGPosition corner1,
MGPosition corner2 
)

矩形に内接する楕円を生成する plane 楕円が乗る平面に平行な平面 corner1 楕円が内接する矩形のコーナーの座標 corner2 corner1 の対頂角の座標のヒント

もし corner2 が corner1 を通る plane に平行な平面に 乗っていない場合、corner2 は平行な平面に面直投影され、 それが計算に用いられる。

MGEllipse::MGEllipse ( double  r,
const MGPosition start,
const MGPosition end,
const MGVector N,
bool  whole_circle = false 
)

An arc of radius r whose start point is start, and the end point is end. and that is normal to the vector N. The circle lies on the plane whose normal is N and that passes through start and end. radius r is able to have minus value, in which case the longer part of the arc out of the whole circle is constructed. The center of the circle C is: C=M+MGUnit_vector(sign(r)*N*(end-start))*sqrt(r*r-d*d), where M=(start+end)*.5, and d is the distance between start and M.

引数
rradius
startstart point.
endend point.
NNormal.
whole_circletrue if the whole circle is to generate.
MGEllipse::MGEllipse ( double  r,
const MGPosition start,
const MGPosition end,
const MGPosition reference,
bool  whole_circle = false 
)

An arc of radius r whose start point is start, and the end point is end. The circle lies on the plane that the three points start, end, and reference lie on. The center of the circle C is: C=M+MGUnit_vector(sign(r)*N*(end-start))*sqrt(r*r-d*d), where M=(start+end)*.5, d is the distance between start and M, and N=(reference-start)*(end-start). That is, if r>0., the position reference indicates on which side the C lies against the vector (end-start), C and reference lie in the same half plane that the vector (end-start) divides. If r<0., C and reference lie in the opposite side. When r>0., smaller part arc of the circle is selected, and when r<0., larger part of the circle is selected.

引数
rradius
startstart point.
endend point.
referencereference point.
whole_circletrue if the whole circle is to generate.
MGEllipse::MGEllipse ( const MGPosition P,
const MGVector V1,
const MGVector V2,
double  d 
)

Arc of the circle that osculates to two straight lines that passes point P and whose directional vectors are V1 and V2. The starting point is the contact point with the 1st line, and end point is the contact point with 2nd line. If radius d is positive, the arc is the one of point P side, and if negative, the other side. 1点Pと2つのベクトル(V1, V2)からなる2直線に接する指定半径の 円弧を作成する。 第一ベクトルとの接点を始点、他方を終点とし、 d>0 のときこれらで分割された円弧の指定点P側を d<0 のときPと反対側を作成する。

引数
PStart point of two straight lines:直線の始点
V1Directional vector 1:直線の方向ベクトル1
V2Directional vector 2:直線の方向ベクトル2
dRadius:半径
MGEllipse::MGEllipse ( const MGPosition start,
const MGPosition through,
const MGPosition end,
bool  whole_circle = false 
)

Arc from start point, through point, and end point. 始点、通過点、終点を指定して円弧を作成する。

引数
startStart point:始点
throughThrough point:通過点
endEnd point:終点
whole_circletrue if the whole circle is to generate.
MGEllipse::MGEllipse ( const MGPosition center,
const MGPosition start,
const MGPosition end,
const MGVector N,
bool  whole_circle = false 
)

Arc from center, start point, end point.

引数
centercenter of the circle.
startStart point:始点
endEnd point:終点
NNormal of the plane the circle lies on.
whole_circletrue if the whole circle is to generate.
MGEllipse::MGEllipse ( const MGPosition start,
const MGPosition end,
const MGVector dir_s,
bool  whole_circle = false 
)

Construct the arc whose start point is start, whose end point is end, and whose tangent at the start point is dir_s.

引数
startstart point.
endend point.
dir_stangent at the start point.
whole_circletrue if the whole circle is to generate.
MGEllipse::MGEllipse ( const MGCurve crv1,
const MGCurve crv2,
const MGUnit_vector normal,
double  dRadius,
double &  t1,
double &  t2,
int &  rc 
)

目的: 基本線2本と半径からコーナーRを作成する 初期パラメータはコーナーRを作成したい側に設定し、基本線は同一平面上にあること 戻り値: 0: 正常終了 -1: 基本線の曲率半径より半径Rが大きい -2: 基本線同士の交点が求まらない Start point of the generated ellipse is either t1 side or t2, which depends on normal direction. The ellipse direction is defined from normal, If the arc length from t1 to t2(arond normal) is smaller than from t2 to t1(around normal), the start point is on t1 side. If the arc length from t1 to t2 is longer than from t2 to t1, the start point is on t2 side.

引数
crv1I:基本線1
crv2I:基本線2
normalI:基本線のノーマルベクトル
dRadiusI:コーナーRの半径
t1I:基本線1の初期パラメータ(コーナーRを作成する側を指定) O:コーナーRと接する基本線1のパラメータ値
t2I:基本線2の初期パラメータ(コーナーRを作成する側を指定) O:コーナーRと接する基本線2のパラメータ値
rcO:リターンコード
MGEllipse::MGEllipse ( const MGCurve crv1,
const MGCurve crv2,
const MGUnit_vector normal,
double  t1,
double &  t2,
int &  rc 
)

目的: 基本線2本とR止まり点からコーナーRを作成する 初期パラメータはコーナーRを作成したい側に設定し、基本線は同一平面上にあること 戻り値: 0: 正常終了 -1: 入力値が不正 -2: crv2上の接点が求まらない(交点なし) -3: crv2上の接点が求まらない(収束しない) Start point of the generated ellipse is either t1 side or t2, which depends on normal direction. The ellipse direction is defined from normal, If the arc length from t1 to t2(arond normal) is smaller than from t2 to t1(around normal), the start point is on t1 side. If the arc length from t1 to t2 is longer than from t2 to t1, the start point is on t2 side.

引数
crv1I:基本線1
crv2I:基本線2
normalI:基本線のノーマルベクトル
t1I:基本線1上のR止まり点のパラメータ値
t2I:基本線2の初期パラメータ(コーナーRを作成する側を指定) O:コーナーRと接する基本線2のパラメータ値
rcO:リターンコード
MGEllipse::MGEllipse ( const MGCurve crv1,
const MGCurve crv2,
const MGCurve crv3,
const MGUnit_vector normal,
double &  t1,
double &  t2,
double &  t3,
int &  rc 
)

目的: 基本線3本からコーナーRを作成する crv1, crv2, crv3がそれぞれ始点、通過点、終点となるようにする。 初期パラメータはコーナーRが接する近辺に設定し、基本線は同一平面上にあること 戻り値: 0: 正常終了 -1: 連立方程式が解けなかった -2: 収束しなかった(パラメータ範囲を超えてしまった) -3: 収束しなかった(無限ループにおちいった)

引数
crv1I:基本線1(始点)
crv2I:基本線2(通過点)
crv3I:基本線3(終点)
normalI:基本線のノーマルベクトル
t1I:基本線1の初期パラメータ(コーナーRの始点近辺) O:コーナーRの始点における基本線1のパラメータ値
t2I:基本線2の初期パラメータ(コーナーRの通過点近辺) O:コーナーRの通過点における基本線2のパラメータ値
t3I:基本線3の初期パラメータ(コーナーRの終点近辺) O:コーナーRの終点における基本線2のパラメータ値
rcO:リターンコード
MGEllipse::MGEllipse ( const MGCurve crv,
const MGPosition pos,
const MGUnit_vector normal,
double  dRadius,
double &  dParam,
int &  rc 
)

目的: 基本線と円弧端点と半径からコーナーRを作成する 初期パラメータはコーナーRを作成したい側に設定し、基本線と円弧端点は同一平面上にあること 戻り値: 0: 正常終了 -1: 入力値が不正 -2: 半径値が小さすぎる -3: 半径値が大きすぎる -4: 基本線をオフセットしたカーブと円弧端点から作成した円の交点が求まらなかった

引数
crvI:基本線
posI:円弧端点
normalI:基本線のノーマルベクトル
dRadiusI:コーナーRの半径
dParamI:基本線の初期パラメータ(コーナーRを作成する側を指定) O:コーナーRと接する基本線1のパラメータ値
rcO:リターンコード
MGEllipse::MGEllipse ( const MGCurve crv,
const MGPosition P2,
const MGUnit_vector normal,
double  t 
)

目的: 基本線と基本線上R止まりと円弧端点からコーナーRを作成する 初期パラメータはコーナーRを作成したい側に設定し、基本線と円弧端点は同一平面上にあること

引数
crvI:基本線
P2I:円弧端点
normalI:基本線のノーマルベクトル
tI:R止まり点のパラメータ
MGEllipse::MGEllipse ( const MGIgesDirectoryEntry de)

Conversion constructor from MGIgesDirectoryEntry object.

引数
detype number must be 100(Circular Arc).
MGEllipse::~MGEllipse ( )

関数詳解

int MGEllipse::bdim ( ) const
inlinevirtual

Returns B-Rep Dimension.

MGCurveを実装しています。

MGBox MGEllipse::box_limitted ( const MGInterval ) const
virtual

Return minimum box that includes the curve of parameter interval. パラメータ値による楕円上のポイントによって境界が与えられた 部分または、楕円の周りを含む最小のボックスを返す。

MGCurveを実装しています。

MGPosition MGEllipse::center ( ) const
inlinevirtual

Return the center of the ellipse:楕円の中心座標を返却する。

MGCurveを再実装しています。

MGEllipse& MGEllipse::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 MGEllipse::change_param_to_radian ( )

Chane the parameter range of this ellipse to radian.

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

bool MGEllipse::circle ( ) const
inline

Test if true circle. If circle, return true. 円か調べる。円のときtrue。

MGEllipse* MGEllipse::clone ( ) const
virtual

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

MGCurveを実装しています。

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

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

MGCurveを実装しています。

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

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

bool MGEllipse::create_ellipse ( const MGPosition F0,
const MGPosition F1,
const MGPosition P 
)

焦点と通過点を与えて楕円を生成する F0 焦点 F1 焦点 P 楕円上の点

F0 と F1 は相異なる焦点でなければ失敗する。 P が2焦点を結ぶ直線上にあるとき失敗する。

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

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

MGCurveを再実装しています。

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

From t1 to t2;.

引数
vboTarget 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を再実装しています。

MGELLIPSE_TYPE MGEllipse::ellipse_type ( ) const

Return ellipse type:楕円のタイプを返却する。

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

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

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

MGCurveを実装しています。

void MGEllipse::eval_all ( double  d,
MGPosition p,
MGVector v1,
MGVector v2 
) const
virtual

Compute position, 1st and 2nd derivatives. パラメータを与え、位置、一次微分値、二次微分値を求める。

引数
dparameter value of this.
p位置
v1一次微分値
v2二次微分値

MGCurveを再実装しています。

MGVector MGEllipse::eval_deriv ( double  ) const
virtual

Evaluatefirst derivative data. 楕円上の与えられたパラメータ値における一次微分値を返却する。

MGCurveを再実装しています。

MGVector MGEllipse::eval_in_degree ( double  degree,
int  nderiv = 0 
) const

Evaluate ellipse data. Input parameter degree must be in degree.

引数
degreeParameter value in degree.
nderivOrder of Derivative.
MGVector MGEllipse::eval_in_radian ( double  t,
int  nderiv = 0 
) const

Evaluate ellipse data. Input parameter t must be in radian.

引数
tParameter value in radian.
nderivOrder of Derivative.
MGPosition MGEllipse::eval_position ( double  t) const
inlinevirtual

Compute positional data. 与えられたパラメータ値に相当する楕円上の点を返却する。 Input parameter t must be in radian.

MGCurveを再実装しています。

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

double MGEllipse::gp_to_radian ( double  t) const
inline

Compute the radian parameter of the general parameter t;.

long MGEllipse::identify_type ( ) const
virtual

Return This object's typeID.

MGCurveを実装しています。

bool MGEllipse::in_RelativeRange_of_radian ( double  t) const

Test if angle t is in the parameter range. t is increased or decreased by 2*PAI if necessary in testing. Radian version. Input t must be of radian.

MGCParam_list MGEllipse::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 MGEllipse::intersect_dnum ( ) const
virtual

Provide divide number of curve span for function intersect.

MGCurveを実装しています。

bool MGEllipse::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 MGEllipse::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 MGEllipse::is_whole_ellipse ( ) const

Test if this ellipse is whole ellipse or not. Function's return value is true if this is whole.

MGCCisect_list MGEllipse::isect ( const MGCurve ) const
virtual

Intersection of ellipse and curve. Ellipse と Curve の交点を求める。

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを再実装しています。

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

MGCurveを実装しています。

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

MGCurveを再実装しています。

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

Intersection of Ellipse and Surface.

Intersection of MGEllipse and Surface

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

double MGEllipse::knot ( int  i) const
virtual

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

MGCurveを実装しています。

const MGKnotVector& MGEllipse::knot_vector ( ) const
virtual

Returns the knot vector of the curve.

MGCurveを実装しています。

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

Cmpute curve length of the interval. If t1 is greater than t2, return negative value. 与えられたパラメータ間の曲線に沿った距離を返却する。 パラメータ値が昇順で与えられたとき正値、降順のとき負値を 返す。

MGCurveを再実装しています。

double MGEllipse::length ( ) const
virtual

Compute whole curve length. 楕円の全体の長さを返却する。

MGCurveを再実装しています。

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

Inverse function of length. Compute the point that is away from the point t by length len. パラメータtで示される点から指定距離lenはなれた点のパラメータ を返す。

MGCurveを再実装しています。

MGEllipse& MGEllipse::limit ( const MGInterval )
virtual

Update this by limiting the parameter range of the curve. 自身の楕円に指定された範囲のlimitを付加する。

MGCurveを実装しています。

const MGVector& MGEllipse::major_axis ( ) const
inline

Return major axis:長軸を返却する。

double MGEllipse::major_len ( ) const
inline

Return major axis length:長軸の長さを返却する。

const MGVector& MGEllipse::minor_axis ( ) const
inline

Return minor axis:短軸を返却する

double MGEllipse::minor_len ( ) const
inline

Return major axis length:長軸の長さを返却する。

void MGEllipse::negate ( )
virtual

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

MGCurveを実装しています。

double MGEllipse::negate_param ( double  t) const
virtual

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

MGCurveを実装しています。

const MGUnit_vector& MGEllipse::normal ( ) const
inline

Return normal:楕円のある平面の法線ベクトルを返却する。

bool MGEllipse::on ( const MGPosition ,
double &  d1 
) const
virtual

Test if given point is on the curve or not. If yes, return parameter value of the curve. Even if not, return nearest point's parameter. Function's return value is true(>0) if the point is on the curve, and false(0) if the point is not on the curve. 点が楕円上にあるか調べる。楕円上であれば,そのパラメータ値を, そうでなくても最近傍点のパラメータ値を返す。

引数
d1Parameter value will be returned:パラメータ

MGCurveを再実装しています。

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

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

MGEllipse MGEllipse::operator+ ( const MGVector ) const

Transformation object construction.

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

Object transformation.

MGCurveを実装しています。

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

MGCurveを実装しています。

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

MGCurveを実装しています。

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

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

MGGelを再実装しています。

MGEllipse& MGEllipse::operator= ( const MGEllipse el2)
bool MGEllipse::operator== ( const MGEllipse gel2) const

comparison

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

Comparison.

MGCurveを実装しています。

int MGEllipse::order ( ) const
inlinevirtual

Returns the order.

MGCurveを実装しています。

std::ostream& MGEllipse::out ( std::ostream &  ostrm) const
virtual

Debug function:デバッグ関数

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

MGCurveを再実装しています。

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

Output to IGES stream file.

MGGelを再実装しています。

double MGEllipse::param_e ( ) const
inlinevirtual

Return ending parameter value.

MGCurveを実装しています。

double MGEllipse::param_normalize ( double  t) const
virtual

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

MGCurveを実装しています。

bool MGEllipse::param_range_is_in_radian ( ) const
inline

Test if this ellipase 's parameter range is expressed in radian.

double MGEllipse::param_s ( ) const
inlinevirtual

Return starting parameter value.

MGCurveを実装しています。

MGEllipse* MGEllipse::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 the calling program, or memory leaked.

引数
t1Starting parameter value.
t2Ending.
multipleIndicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary.

MGCurveを実装しています。

int MGEllipse::perp_point ( const MGPosition p,
double &  d,
const double *  g = NULL 
) const
virtual

value of the ellipse.

Compute a foot point of the perpendicular line from point p to the curve. If more than one points are found, return nearest one. Function's return value is if point is obtained(>0) or not(0) 与ポイントから楕円への垂線の足、そのポイントでの楕円の パラメータ値を返却する。

引数
pA point:与ポイント
dParameter value will be returned:パラメータ
gguess parameter value of the foot parameter

MGCurveを再実装しています。

MGCParam_list MGEllipse::perps ( const MGPosition ) const
virtual

Compute all foot points of the perpendicular line from point p to the curve. 与ポイントから楕円へ下ろした垂線の足の,楕円のパラメータ値を すべて求める。

MGCurveを再実装しています。

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

MGCurveを実装しています。

double MGEllipse::radian_to_gp ( double  angle) const
inline

Compute general parameter t from the radian parameter angle.

double MGEllipse::radius ( ) const
inline

Return the radius of the circle. This is valid only when circle() is true.

void MGEllipse::ReadMembers ( MGIfstream buf)
protectedvirtual

メンバデータを読み出す関数

MGCurveを再実装しています。

int MGEllipse::sdim ( ) const
virtual

Return space dimension.

MGCurveを実装しています。

void MGEllipse::set_arc ( const MGPosition start,
const MGPosition end,
const MGVector dir_s 
)

Replace this ellipse with the arc whose start point is start, whose end point is end, and whose tangent at the start point is dir_s.

MGSurface* MGEllipse::sweep ( const MGUnit_vector uvec,
double  start_dist,
double  end_dist 
) const
virtual

Return sweep surface from crv. Output 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 MGEllipse::type ( ) const
inlinevirtual

Return curve type(曲線のタイプを返す)

MGCurveを実装しています。

MGCurve& MGEllipse::unlimit ( )
virtual

Unlimit parameter range of the curve(limitをはずす)

MGCurveを実装しています。

MGCurve& MGEllipse::unlimit_end ( )
virtual

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

MGCurveを実装しています。

MGCurve& MGEllipse::unlimit_start ( )
virtual

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

MGCurveを実装しています。

std::string MGEllipse::whoami ( ) const
inlineprotectedvirtual

MGCurveを再実装しています。

void MGEllipse::WriteMembers ( MGOfstream buf) const
protectedvirtual

メンバデータを書き込む関数

MGCurveを再実装しています。

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

MG_DLL_DECLR friend MGEllipse operator* ( double  scale,
const MGEllipse el 
)
friend
MG_DLL_DECLR friend MGEllipse operator+ ( const MGVector v,
const MGEllipse e 
)
friend

Object transformation.


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