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

MGPlane is infinite plane in 3D space. [詳解]

MGPlane の継承関係図
MGSurface MGGeometry MGFSurface MGObject MGAttribedGel MGGel MGPlaneImage

公開メンバ関数

 MGPlane (void)
 Void constructor 初期化なしで平面を生成する。 [詳解]
 
 MGPlane (const MGPlane &pl)
 Copy constructor. [詳解]
 
 MGPlane (int dim, const MGPlane &plane, int start1=0, int start2=0)
 Construct a plane by changing this space dimension or ordering the coordinates. [詳解]
 
 MGPlane (const double g[4], const double *root_point=0)
 
 MGPlane (const MGUnit_vector &normal, double d)
 
 MGPlane (const MGUnit_vector &normal, const MGPosition &p)
 
 MGPlane (const MGStraight &st, const MGPosition &point)
 
 MGPlane (const MGVector &uderiv, const MGVector &vderiv, const MGPosition &origin)
 
 MGPlane (const MGPlane &plane1, const MGPlane &plane2, double t)
 
 MGPlane (const MGPosition &P1, const MGPosition &P2, const MGPosition &P3)
 Construct a plane from three points on the plane. [詳解]
 
 ~MGPlane ()
 
MGPlaneoperator= (const MGPlane &gel2)
 
MGPlaneoperator= (const MGGel &gel2)
 
MGPlane operator+ (const MGVector &v) const
 Transformation object construction. [詳解]
 
MGPlane operator- (const MGVector &v) const
 
MGPlane operator* (double scale) const
 
MGPlane operator* (const MGMatrix &mat) const
 
MGPlane operator* (const MGTransf &tr) const
 
MGPlaneoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
MGPlaneoperator-= (const MGVector &v)
 
MGPlaneoperator*= (double scale)
 
MGPlaneoperator*= (const MGMatrix &mat)
 
MGPlaneoperator*= (const MGTransf &tr)
 
bool operator== (const MGPlane &gel2) const
 Comparison of two curves. [詳解]
 
bool operator== (const MGGel &gel2) const
 comparison [詳解]
 
bool operator< (const MGPlane &gel2) const
 
bool operator< (const MGGel &gel2) const
 
bool operator!= (const MGGel &gel2) const
 
bool operator!= (const MGPlane &gel2) const
 
int out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
 Output to IGES stream file(=PD190). [詳解]
 
std::ostream & out (std::ostream &) const
 
void abcd (double g[4]) const
 Gets parameters(a,b,c,d) of the plane expression a*x+b*y+c*z=d. [詳解]
 
MGBox box_limitted (const MGBox &uvrange) const
 g[.]=(a,b,c,d) [詳解]
 
virtual MGPosition center () const
 Obtain ceter coordinate of the geometry. [詳解]
 
MGPlanechange_dimension (int sdim, int start1=0, int start2=0)
 Changing this object's space dimension. [詳解]
 
MGPlanechange_range (int is_u, double t1, double t2)
 
void change_root_point (const MGPosition &new_point)
 Change root point. [詳解]
 
MGPosition closest (const MGPosition &point) const
 
MGPlaneclone () const
 
MGPlanecopy_change_dimension (int sdim, int start1=0, int start2=0) const
 
void display_arrows (mgSysGL &sgl) const
 
double distance () const
 
double distance (const MGPosition &point) const
 
virtual void drawWire (mgVBO &vbo, double span_length, int line_density=1) const
 
void drawWirePlane (mgVBO &vbo, double span_length, int line_density=1, mgVBO::ELEMENT_TARGET target=mgVBO::WIRE) const
 
virtual void shade (mgVBO &vbo, const MGDrawParam &para, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const
 Shade the object in world coordinates. [詳解]
 
MGVector eval (double u, double v, int ndu=0, int ndv=0) const
 Evaluate surface data. [詳解]
 
MGVector eval (const MGPosition &uv, int ndu=0, int ndv=0) const
 Evaluate surface data. [詳解]
 
void eval_all (double u, double v, MGPosition &f, MGVector &fu, MGVector &fv, MGVector &fuv, MGVector &fuu, MGVector &fvv) const
 
MGSurfaceexchange_uv ()
 Exchange parameter u and v. [詳解]
 
long identify_type () const
 Return This object's typeID. [詳解]
 
bool in_range (double u, double v) const
 Test if the parameter(u,v) is in this surface's parameter range. [詳解]
 
bool in_range (const MGPosition &uv) const
 
int intersect_dnum_u () const
 
int intersect_dnum_v () const
 
MGCSisect_list isect (const MGCurve &curve) const
 
MGCSisect_list isect (const MGStraight &curve) const
 
MGCSisect_list isect (const MGRLBRep &curve) const
 
MGCSisect_list isect (const MGEllipse &curve) const
 
MGCSisect_list isect (const MGLBRep &curve) const
 
MGCSisect_list isect (const MGSurfCurve &curve) const
 
MGCSisect_list isect (const MGBSumCurve &curve) const
 
MGSSisect_list isect (const MGSurface &srf2) const
 
MGSSisect_list isect (const MGPlane &srf2) const
 
MGSSisect_list isect (const MGSphere &srf2) const
 
MGSSisect_list isect (const MGCylinder &srf2) const
 
MGSSisect_list isect (const MGSBRep &srf2) const
 
MGSSisect_list isect (const MGRSBRep &srf2) const
 
MGSSisect_list isect (const MGBSumSurf &srf2) const
 
int isect_startHPL (const MGPosition &uvuv_startIn, MGPosition_list &uvuv_list, const MGSurface &sf2, MGSSisect &ssi, MGPosition_list::iterator &uvuv_id) const
 
double knot_u (int) const
 Return knot value of (infinite-minus, infinite-plus) [詳解]
 
double knot_v (int) const
 Access to i-th element of v knot. [詳解]
 
const MGKnotVectorknot_vector_u () const
 Returns the u knot vector. [詳解]
 
MGKnotVectorknot_vector_u ()
 
const MGKnotVectorknot_vector_v () const
 Returns the v knot vector. [詳解]
 
MGKnotVectorknot_vector_v ()
 
virtual void make_display_list (MGCL::VIEWMODE vmode=MGCL::DONTCARE) const
 Make a display list of this gel. [詳解]
 
void negate (int is_u)
 Negate the normal of the plane,平面を反転する。ノーマルを逆方向にする. [詳解]
 
MGPosition negate_param (const MGPosition &uv, int is_u=1) const
 
MGVector normal (double u, double v) const
 Return the normal of the plane, 平面の法線を返却する. [詳解]
 
MGVector normal (const MGPosition &uv) const
 Compute normal vector(not unit) at uv. [詳解]
 
const MGUnit_vectornormal () const
 
void normalize ()
 
std::auto_ptr< MGSurfaceoffset_c1 (double ofs_value, int &error) const
 
bool on (const MGPosition &point) const
 
bool on (const MGPosition &point, MGPosition &puv) const
 Test if point P is ont the surface or not. [詳解]
 
bool on (const MGStraight &) const
 
bool on_a_perimeter (double &u, double &v, int &perim_num) const
 
bool on_the_perimeter (int perim_num, double u, double v) const
 
MGPosition param (const MGPosition &) const
 
double param_error () const
 Obtain parameter space error. [詳解]
 
double param_error_u () const
 
double param_error_v () const
 
virtual double param_e_u () const
 Return ending parameter value. [詳解]
 
virtual double param_e_v () const
 
virtual MGBox param_range () const
 
virtual double param_s_u () const
 Return starting parameter value. [詳解]
 
virtual double param_s_v () const
 
virtual MGCurveparameter_curve (int is_u, double x) const
 
MGSurfacepart (const MGBox &uvbox, int multiple=0) const
 
virtual MGCurveperimeter_curve (int i) const
 
virtual int perimeter_num () const
 Return how many perimeters this surface has. [詳解]
 
virtual MGPosition perimeter_uv (int i, double t) const
 
int perp_point (const MGPosition &P, MGPosition &uv, const MGPosition *uvguess=NULL) const
 
MGPosition_list perps (const MGPosition &P) const
 Return all(actually one) foots of perpendicular straight lines from P. [詳解]
 
int planar (MGPlane &plane, double &deviation) const
 
int planar (const MGBox &uvbox, double tol, int *divideU=0) const
 
int project (const MGStraight &sl, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec=mgNULL_VEC) const
 
int project (const MGCurve &crv, MGPvector< MGCurve > &vec_crv, const MGVector &vec=mgNULL_VEC) const
 
MGPosition range (const MGPosition &uv) const
 
MGPSRELATION relation (const MGPlane &, MGStraight &) const
 
MGPSRELATION relation (const MGStraight &, MGCSisect &) const
 
const MGPositionroot_point () const
 
int sdim () const
 Return the space dimension. [詳解]
 
virtual MGPvector< MGCurveskeleton (int density=1) const
 
MGPvector< MGCurveskeleton_at_knots () const
 Obtain all the parameter curves at knots of u and v knot vector. [詳解]
 
void split (double param, bool is_u, MGPvector< MGFSurface > &surfaces) const
 split this fsurface at the parameter param. [詳解]
 
virtual MGSURFACE_TYPE type () const
 
const MGVectoru_deriv () const
 
const MGVectorv_deriv () const
 
MGPosition uv (const MGPosition &p) const
 
MGVector uv (const MGVector &v) const
 
std::string whoami () const
 
- 基底クラス MGSurface に属する継承公開メンバ関数
 MGSurface (void)
 Void Constructor. 初期化なしでオブジェクトを作成する。 [詳解]
 
 MGSurface (const MGSurface &srf)
 Copy Constructor. [詳解]
 
virtual ~MGSurface ()
 
virtual MGSurfaceoperator= (const MGSurface &gel2)
 
std::auto_ptr< MGSBRepapproximate_as_SBRep (int parameter_normalization=2, double tol=-1., int *order=0) const
 Approximate this surface as an MGSBRep. [詳解]
 
double average_chord_length (int is_u, const double para[3], const MGNDDArray &tau) const
 
void arrow (double u, double v, MGPosition data[10]) const
 Generate arrow data of the tangent along u and v and the normal. [詳解]
 
void arrow (const MGPosition &uv, MGPosition data[10]) const
 
void arrow (const MGBox &box, double u, double v, MGPosition data[10]) const
 Generate arrow data, given box. The length of the arrows are defined from box.len(). [詳解]
 
virtual int bdim_u () const
 Returns B-Rep Dimension of u. [詳解]
 
virtual int bdim_v () const
 Returns B-Rep Dimension of v. [詳解]
 
MGBox box_param () const
 Return box of the parameter space of the surface. [詳解]
 
const MGBox box_param2 () const
 Return box of the parameter space of the FSurface after trimmed one. [詳解]
 
virtual MGPosition center_param () const
 Obtain ceter parameter value of the geometry. [詳解]
 
virtual int coef_sdim () const
 Obtain coefficient's space dimension. [詳解]
 
virtual MGFSurfaceclone_fsurface () const
 Get the clone of this MGFSurface. [詳解]
 
MGFaceclone_as_face () const
 Get the clone of this as a MGFace. [詳解]
 
virtual MGPosition closest_on_perimeter (const MGPosition &point) const
 Compute the closest point on all the perimeters of the surface. [詳解]
 
virtual MGPosition closest_on_perimeter (const MGStraight &sl) const
 
virtual MGPosition closest_on_boundary (const MGStraight &sl) const
 Compute closest point from a line to the boundary of the MGFSurface. [詳解]
 
void compute_sample_point (double u0, double u1, double v0, double v1, MGPosition Pn[9], MGPosition &center, MGUnit_vector &normal, MGVector *Nn_in=0) const
 compute sample point of the surface to get the approximate plane. [詳解]
 
void curvatures (const MGPosition &uv, double value[4], MGUnit_vector &N) const
 Compute surface curvatures. [詳解]
 
void curvatures (double u, double v, double value[4], MGUnit_vector &N) const
 
MGUnit_vector direction (const MGPosition &param) const
 Compute direction unit vector of the geometry. [詳解]
 
virtual MGSurfacecopy_surface () const
 Construct new curve object by copying to newed area. [詳解]
 
virtual int divide_multi_knot (MGPvector< MGSurface > &srfl) const
 
int equal_direction (const MGCurve &param_curve, const MGCurve &world_curve) const
 Compute if MGSurfCurve scurve(*this, param_curve) has the same direction to world_curve. [詳解]
 
MGVector eval (const MGPosition &uv, int ndu=0, int ndv=0) const
 
virtual void eval_spoint (const MGNDDArray &utau, const MGNDDArray &vtau, MGSPointSeq &spoint) const
 Evaluate all the points (ui, vj) into spoint(i,j,.). [詳解]
 
virtual void eval_all (const MGPosition &uv, MGPosition &f, MGVector &fu, MGVector &fv, MGVector &fuv, MGVector &fuu, MGVector &fvv) const
 Evaluate right continuous surface data. [詳解]
 
double eval_gap (const MGCurve &curve, int iperi, MGPosition &uv) const
 evaluate gap between this surface's perimeter iperi and the given curve curve. [詳解]
 
double eval_gap (const MGCurve *curve[4], MGPosition &uv) const
 evaluate gap between this surface's perimeters and the given curve curve. [詳解]
 
MGVector evaluate (const MGPosition &t, const int *nderiv) const
 Evaluate n'th derivative data. n=0 means positional data evaluation. [詳解]
 
virtual MGSurfaceextend (int perimeter, double param, double length, double dk=0.)
 Modify the original Surface by extrapolating the specified perimeter. [詳解]
 
const MGFSurfacefsurface () const
 Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解]
 
MGFSurfacefsurface ()
 
void fundamentals (const MGPosition &uv, double Q[6], MGUnit_vector &UN) const
 Compute 1st and 2nd fundamental quantities of the surface. [詳解]
 
void fundamentals (double u, double v, double Q[6], MGUnit_vector &N) const
 
void get_approximate_plane (double u0, double u1, double v0, double v1, MGPlane &plane, double *width=0, double *height=0) const
 Compute the approximate plane in the parameter range from (u0, v0) to (u1,v1). [詳解]
 
MGFaceget_face_pointer ()
 get face pointer if this is MGFace, else null will be returned. [詳解]
 
const MGFaceget_face_pointer () const
 
int getPerimeterCommon (const MGCurve &crv, std::vector< double > pspan[2], int peri_num[2]) const
 Compute common curve part of this surface's perimeter and the crv. [詳解]
 
MGSurfaceget_surface_pointer ()
 get surface pointer. Null will never be returned if this is valid MGFSurface. [詳解]
 
const MGSurfaceget_surface_pointer () const
 
virtual int get_number_of_boundaries () const
 Get number of inner boundaries as the output of the function. [詳解]
 
MGCurveget_parameterCurve (const MGCurve &wcrv) const
 Given world curve wcrv on this face, get the parameter space representation pcrv. [詳解]
 
void get_new_surface_knots (int parameter_normalization, MGKnotVector &uknots, MGKnotVector &vknots, double *Oldparameter=0) const
 Given MGSBRep or MGRSBRep as srf, compute normalize MGKnotVector along u and v. [詳解]
 
bool on_a_perimeter2 (int is_u, double &x, int &perim_num) const
 Test if input x is parameter value on a perimeter of the surface. [詳解]
 
virtual bool has_commonFS (const MGObject &obj2) const
 Test if this and 2nd object has common area about their box(),taking error into account. [詳解]
 
virtual void triangulate (const MGDrawParam &para, MGCL::TL_DATA_KIND dkind, std::vector< mgTL2Triangles > &trisVec) const
 Triangulate this object(MGShell, MGFace, or MGSurface is the target). [詳解]
 
bool test_and_get_approximate_plane (double u0, double u1, double v0, double v1, double surface_tol, double angle, MGPlane &plane, double &width, double &height) const
 Compute the approximate plane in the parameter range from (u0, v0) to (u1,v1). [詳解]
 
bool in_range (const MGPosition &uv) const
 
int in_range_with_on (const MGPosition &uv) const
 Test if (u,v) is inside the face. [詳解]
 
bool is_flat_and_small (const MGBox &bx, double surftol, double melen2, bool &direction) const
 Test if surface limitted by the parameter range bx is flat and small. [詳解]
 
virtual MGPvector< MGCurveinner_boundary (int i) const
 Obtain i-th inner_boundary curves(world coordinates representation) of the FSurface. [詳解]
 
virtual MGPvector< MGCurveinner_boundary_param (int i) const
 Obtain i-th inner_boundary curves. [詳解]
 
MGCSisect_list intersect (const MGCurve &curve) const
 Default surface-curve intersection function. [詳解]
 
MGCSisect_list intersect (const MGEllipse &el) const
 Default surface-curve intersection function. [詳解]
 
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
 
MGSSisect_list isect (const MGFace &f) const
 
MGSSisect_list isect (const MGFSurface &fsurf) const
 
MGHHisect_vector isect (const MGShell &shl) const
 Intersection. [詳解]
 
virtual bool less_than (int i, const MGPosition &uv1, const MGPosition &uv2) const
 Compare two parameter values. If uv1 is less than uv2, return true. [詳解]
 
int manifold_dimension () const
 Get manifold dimension. [詳解]
 
virtual void negate ()
 Negate direction of surface. [詳解]
 
virtual void negateFS ()
 Negate the FSurface. [詳解]
 
void negate_transform (MGGeometry &boundary) const
 Transform the coordinates of boundary of this geometry. [詳解]
 
virtual const MGObjectobject_pointer () const
 Get the object point of this MGFSurface. [詳解]
 
virtual MGObjectobject_pointer ()
 
virtual MGPvector< MGSurfaceoffset (double ofs_value, int &error) const
 Surface offset. [詳解]
 
int offset_fs (double distance, MGPvector< MGFSurface > &vecOfsFSurface) const
 Offset. [詳解]
 
virtual bool on_perimeter (const MGCurve &uvcurve, int &perim_num) const
 Test the uvcurve is on a perimeter. [詳解]
 
virtual int order_u () const
 Returns the order of u. [詳解]
 
virtual int order_v () const
 Returns the order of v. [詳解]
 
std::ostream & outFS (std::ostream &ostrm) const
 Output virtual function. [詳解]
 
virtual MGPvector< MGCurveouter_boundary () const
 Obtain outer_boundary curves(world coordinates representation) of the FSurface. [詳解]
 
virtual MGPvector< MGCurveouter_boundary_param () const
 Obtain boundary curves(parameter space representation) of the FSurface. [詳解]
 
double param_of_pcurve (double tw, const MGCurve &wcurve, const MGCurve &pcurve, const double *guess=0) const
 Obtain the parameter of pcurve that represent the same point as wcurve.eval(tw). [詳解]
 
MGPosition parameter (const MGPosition &P) const
 Compute parameter value of given point. [詳解]
 
MGPvector< MGCurveparameter_curves (int is_u, double x) const
 Obtain parameter curves. [詳解]
 
MGPosition param_mid () const
 Return parameter value of the middle point of the surface. [詳解]
 
MGBox parameter_range () const
 Return parameter range of the geometry(パラメータ範囲を返す). [詳解]
 
virtual double param_span () const
 Compute square of parameter span length from (u.min, v.min) to (u.max, v.max). [詳解]
 
virtual int perp_guess (const MGPosition &uv0, const MGPosition &uv1, const MGPosition &P, const MGPosition &uvguess, MGPosition &uv) const
 Compute a perpendicular point from a point P, given guess parameter value uvguess. [詳解]
 
bool perp_guess (const MGPosition &P, const MGPosition &uvguess, MGPosition &uv) const
 Return the foot of the perpendicular straight line from P. [詳解]
 
virtual int perp_guess (const MGPosition &uv0, const MGPosition &uv1, const MGCurve &curve, double t0, double t1, const MGPosition &tuvg, MGPosition &tuv) const
 Compute perpendicular points of a curve and a surface. [詳解]
 
virtual int perp_guess (const MGPosition &uv0, const MGPosition &uv1, const MGCompositeCurve &crv, double t0, double t1, const MGPosition &tuvg, MGPosition &tuv) const
 Compute perpendicular points of a curve and a surface. [詳解]
 
virtual bool perp_guess (const MGCurve &curve, const MGPosition &uvguess, double tguess, MGPosition &uv, double &t) const
 Compute perpendicular points of a curve and a surface. [詳解]
 
MGPosition pick_closest (const MGStraight &sl) const
 Compute the parameter value of the closest point from the straight to this object. [詳解]
 
virtual void remove_knot ()
 removal redundant knots within the tolerance line_zero(). [詳解]
 
virtual MGSurfacerotate_self (const MGVector &vec, double angle, const MGPosition &origin=mgORIGIN)
 Rotate the surface around the straight line. [詳解]
 
virtual void shrink_to_knot (const MGBox &uvbx, int multiple=0)
 Shrink this surface to the part limitted by the parameter range of uvbx. [詳解]
 
const MGSurfacesurf () const
 Return MGSurface pointer. [詳解]
 
MGSurfacesurf ()
 Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解]
 
MGUnit_vector unit_normal (const MGPosition &uv) const
 Compute unit normal vector at uv. [詳解]
 
MGUnit_vector unit_normal (double u, double v) const
 Compute unit normal vector at uv. [詳解]
 
- 基底クラス 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
 
MGAppearanceensure_appearance ()
 
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
 
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 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 MGCurvecurve ()
 Return curve pointer if this MGGel is an MGCurve, else return null. [詳解]
 
virtual const MGCurvecurve () 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_break_points (mgSysGL &sgl) const
 
virtual void display_control_polygon (mgSysGL &sgl) const
 
virtual void display_curvatures (mgSysGL &sgl, double scale, int density, bool use_radius) const
 
- 基底クラス MGFSurface に属する継承公開メンバ関数
 MGFSurface ()
 Null FSurface. [詳解]
 
 MGFSurface (const MGFSurface &fsurf)
 Copy constructor. [詳解]
 
virtual ~MGFSurface ()
 
bool operator< (const MGFSurface &f2) const
 Comparison operator. [詳解]
 
bool operator> (const MGFSurface &f2) const
 
const MGBoxget_box () const
 Get the box of the object. [詳解]
 
void display_arrowsFS (mgSysGL &sgl, int udiv=4, int vdiv=4) const
 Display arrows on the surface. [詳解]
 
void drawWireFS (mgVBO &vbo, double span_length, int line_density=1) const
 
void drawWireFS_to_highlight (mgVBO &vbo, double span_length, int line_density) const
 
void eval_discrete_deviation (const MGFSurface &face2, std::vector< MGPosition > &uvuvs, int npoint=20, double tolerance=0.1) const
 
MGPvector< MGCurveget_all_boundaries (void) const
 Obtain all the boundaries(i.e., outer boundary and all the inner boundaries) [詳解]
 
bool hasInnerBoundaryLoop () const
 
virtual bool hasLoop (const MGBox &uvbox) const
 
int in_range_with_on (double u, double v) const
 
void intersect12Boundary (const MGFSurface &face2, MGPosition_list &uvuv_list) const
 
virtual int isect_boundary (const MGFSurface &face2, MGPosition_list &uvuvs, int id1=0) const =0
 
virtual int isect_incurves (const MGFSurface &face2, int iid, MGPosition_list &uvuv_list, int id1) const =0
 
virtual int isect_outcurves (const MGFSurface &face2, MGPosition_list &uvuv_list, int id1) const =0
 
virtual int isect_guess (const MGStraight &sl, const MGPosition &uvi, double ti, MGPosition &uv, double &t) const
 
virtual int isect_guess (const MGCompositeCurve &crv, const MGPosition &uvi, double ti, MGPosition &uv, double &t) const
 
virtual int isect_guess_composite (const MGCompositeCurve &crv, const MGPosition &uvi, double ti, MGPosition &uv, double &t) const
 
virtual MGFacemake_face ()=0
 
virtual int number_of_inner_boundaries () const
 Get number of inner boundaries as the output of the function. [詳解]
 
double param_error () const
 Obtain parameter space error. [詳解]
 
double param_error_u () const
 
double param_error_v () const
 
virtual int perp_one (const MGPosition &P, MGPosition &uv) const
 
virtual int project (const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec=mgNULL_VEC) const
 
MGPvector< MGCurveinner_skeleton (int density) const
 
void split (const std::vector< const MGCurve * > &splitters, const MGVector &dir, MGPvector< MGFace > &faces) const
 
void split (const MGPvector< MGCurve > &splitters, MGPvector< MGFace > &faces) const
 split this fsurface with splitters. splitters are 2D (u,v) surfaces's parameter curves. [詳解]
 
void extract (const std::vector< const MGCurve * > &trimmers, const MGVector &dir, const MGPosition &uv, std::auto_ptr< MGFace > &eface) const
 
void shadeFS (mgVBO &vbo, const MGDrawParam &para, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const
 Shade the object in world coordinates. [詳解]
 
void trim (const std::vector< const MGCurve * > &trimmers, const MGVector &dir, const MGPosition &uv, MGPvector< MGFace > &faces) const
 

限定公開メンバ関数

bool flat (const MGBox &uvbox, double tol, int &direction, MGPosition &P, MGUnit_vector &N) const
 
bool flat_tess (double u0, double u1, double v0, double v1, double tol, bool &direction) const
 
MGCSisect_list isectSl (const MGStraight &sl, const MGBox &uvbox=mgNULL_BOX) const
 Intersection of Surface and a straight line. [詳解]
 
void ReadMembers (MGIfstream &buf)
 メンバデータを読み込む関数 [詳解]
 
void WriteMembers (MGOfstream &buf) const
 メンバデータを書き込む関数 [詳解]
 
- 基底クラス MGSurface に属する継承限定公開メンバ関数
MGSSisect_list intersect (const MGSurface &srf2) const
 
MGSSisect_list intersectPl (const MGPlane &srf2) const
 Default intersection program of MGSurface with a plane. [詳解]
 
MGPosition_list intersectInner (const MGSurface &sf2) const
 
virtual int isect_direction (const MGFSurface &sf2, int m1, MGPosition &uvuvS, double &du, double &dv, double acuRatio=1.) const
 
int isect_div_id_max () const
 
- 基底クラス MGGeometry に属する継承限定公開メンバ関数
MGGeometryset_geometry (const MGGeometry &geo2)
 Assignment. [詳解]
 
virtual void update_mark ()
 Mark this as updated. [詳解]
 
- 基底クラス MGObject に属する継承限定公開メンバ関数
MGObjectset_object (const MGObject &gel2)
 
- 基底クラス MGFSurface に属する継承限定公開メンバ関数
int isect_direction_with_direction (double u, double v, const MGVector &tangent, double &du, double &dv) const
 
void isect_dt (double u, double v, double &du, double &dv, double acuRatio=1.) const
 
double isect_dt_coef (int n) const
 
int isect_div_id_max () const
 
int isect_start (const MGPosition &uvuv_startIn, MGPosition_list &uvuv_list, const MGFSurface &sf2, MGSSisect &ssi, MGPosition_list::iterator &uvuv_id, int &m1) const
 
int isect_start_boundary (const MGFSurface &sf2, const MGPosition &uvuv_pre, int kdt, double du, double dv, int lid1, MGPosition &uvuv_now) const
 
double isect_start_dif (const MGNDDArray &tau, const MGLBRep &line, const MGFSurface &sf2) const
 
int isect_start_incr (const MGFSurface &sf2, const MGPosition &uvuv_pre, int kdt, double du, double dv, int lid1, MGPosition &uvuv_now) const
 
int isect_startPt (const MGPosition &uvuv_startIn, MGPosition_list &uvuv_list, const MGFSurface &sf2, double acuRatio, MGBPointSeq &point, MGPosition_list::iterator &uvuv_id, int &m1) const
 
int isect_startPlane (const MGPosition &uvuvS, MGPosition_list &uvuv_list, const MGPlane &pl, MGSSisect &ssi, MGPosition_list::iterator &uvuv_id) const
 
int isect_startPlanePt (const MGPosition &uvuv_startIn, MGPosition_list &uvuv_list, const MGPlane &pl2, double acuRatio, MGBPointSeq &point, MGPosition_list::iterator &uvuv_id) const
 
MGSSisect_list isect_with_surf (MGPosition_list &uvuv_list, const MGFSurface &srf2) const
 Compute the intersection lines of this surface and srf2(both are not planes). [詳解]
 
MGSSisect_list isect_with_plane (MGPosition_list &uvuv_list, const MGPlane &pl, const MGFSurface &fsrf2) const
 
int projectbyApproximateAsLBRep (const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const
 
int projectbyRemovKnots (const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const
 
int projVector (const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec) const
 カーブを折れで分割して行い、後で接続する [詳解]
 
int projNormal (const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv) const
 カーブを折れで分割して行い、後で接続する [詳解]
 

限定公開変数類

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

フレンド

MG_DLL_DECLR friend MGPlane operator+ (const MGVector &v, const MGPlane &pl)
 
MG_DLL_DECLR friend MGPlane operator* (double scale, const MGPlane &pl)
 

詳解

MGPlane is infinite plane in 3D space.

Using orthonormal two vector m_uderiv and m_vderiv in 3D space, plane function f(u,v)= m_root_point + u*m_uderiv + v*m_vderiv, where u and v are two parameter of surface representation. MGPlaneクラスは3次元空間における平面を表すクラスである。 MGPlaneクラスでは以下のようなパラメータ表現を使用します。 Point(u,v) = m_root_point + u * m_uderiv + v * m_vderiv

構築子と解体子

MGPlane::MGPlane ( void  )

Void constructor 初期化なしで平面を生成する。

MGPlane::MGPlane ( const MGPlane pl)

Copy constructor.

MGPlane::MGPlane ( int  dim,
const MGPlane plane,
int  start1 = 0,
int  start2 = 0 
)

Construct a plane by changing this space dimension or ordering the coordinates.

引数
dimNew space dimension.
planeOriginal Plane.
start1Destination order of new Surface.
start2Source order of original Surface.
MGPlane::MGPlane ( const double  g[4],
const double *  root_point = 0 
)

Construct a plane from the coefficients of the plane equation. a*x+b*y+c*z=d. Coefficients a,b,c,d are provided by double array g[4].

引数
gcoefficients g[0]=a, b=g[1], c=g[2], d=g[3].
root_pointWhen root_point!=0, root_point[.] are (x,y,z) values of the root point.
MGPlane::MGPlane ( const MGUnit_vector normal,
double  d 
)

Plane from normal of the plane and the distance from the origin(0,0,0). 平面のノーマルと平面の原点からの距離を指定して面を生成する.

引数
normalNormal of the plane.
ddistance from origin of the plane. When normal=(a,b,c,....), d=a*x+b*y+c*z+.... .
MGPlane::MGPlane ( const MGUnit_vector normal,
const MGPosition p 
)

Plane from a point on the plane and the normal. 点と平面のノーマルを指定して面を生成する。

MGPlane::MGPlane ( const MGStraight st,
const MGPosition point 
)

Plane from a point and a straight line on the plane. 直線と直線に乗らない点を指定して面を生成する。

MGPlane::MGPlane ( const MGVector uderiv,
const MGVector vderiv,
const MGPosition origin 
)

Plane from a point on the plane, u and v direction vector of the plane. The plane's (uderiv, vderiv) are transfomred to a orthnormal system. 点、u方向、v方向を指定して面を生成する。 ***** This is the fundamental constructor.*****

MGPlane::MGPlane ( const MGPlane plane1,
const MGPlane plane2,
double  t 
)

Construct a plane by interpolating two planes. If two planes intersect, interpolation is rotation around the intersection line. If two planes are parallel, interpolation is parallel move.

引数
plane1Target plane1 1.
plane2Plane 2.
tInput ratio. When t=0, the plane will be plane1, When t=1, the plane will be plane2.
MGPlane::MGPlane ( const MGPosition P1,
const MGPosition P2,
const MGPosition P3 
)

Construct a plane from three points on the plane.

MGPlane::~MGPlane ( )

関数詳解

void MGPlane::abcd ( double  g[4]) const

Gets parameters(a,b,c,d) of the plane expression a*x+b*y+c*z=d.

MGBox MGPlane::box_limitted ( const MGBox uvrange) const
virtual

g[.]=(a,b,c,d)

Box that includes limitted plane by box. 入力のパラメータ範囲の曲線部分を囲むボックスを返す。

引数
uvrangeParameter Range of the surface.

MGSurfaceを実装しています。

virtual MGPosition MGPlane::center ( ) const
inlinevirtual

Obtain ceter coordinate of the geometry.

MGSurfaceを再実装しています。

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

MGPlane& MGPlane::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.

MGSurfaceを実装しています。

MGPlane& MGPlane::change_range ( int  is_u,
double  t1,
double  t2 
)
inlinevirtual

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

引数
is_uif true, (t1,t2) are u-value. if not, v.
t1Parameter value for the start of original.
t2Parameter value for the end of original.

MGSurfaceを実装しています。

void MGPlane::change_root_point ( const MGPosition new_point)

Change root point.

MGPlane* MGPlane::clone ( ) const
virtual

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

MGSurfaceを実装しています。

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

MGPosition MGPlane::closest ( const MGPosition point) const
virtual

Compute the closest point parameter value (u,v) of this surface from a point.

MGSurfaceを再実装しています。

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

Construct new surface 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.

MGSurfaceを実装しています。

void MGPlane::display_arrows ( mgSysGL sgl) const
virtual

MGSurfaceを再実装しています。

double MGPlane::distance ( ) const
inline

Return the distace between plane and the origin(0,0,0). 原点との距離を返却する。

double MGPlane::distance ( const MGPosition point) const

Return the distace between plane and the point. 与えられた点との距離を返却する。

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

Draw 3D curve in world coordinates. The object is converted to curve(s) and is drawn.

引数
vboThe target graphic object.
span_lengthLine segment span length.
line_densityline density to draw a surface in wire mode.

MGSurfaceを再実装しています。

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

void MGPlane::drawWirePlane ( mgVBO vbo,
double  span_length,
int  line_density = 1,
mgVBO::ELEMENT_TARGET  target = mgVBO::WIRE 
) const

Draw 3D curve in world coordinates. The object is converted to curve(s) and is drawn.

引数
vboThe target graphic object.
span_lengthLine segment span length.
line_densityline density to draw a surface in wire mode.
targettarget vbo element.
MGVector MGPlane::eval ( double  u,
double  v,
int  ndu = 0,
int  ndv = 0 
) const
virtual

Evaluate surface data.

引数
uU Parameter value of the surface.
vV Parameter value of the surface.
nduOrder of derivative along u.
ndvOrder of derivative along v.

MGSurfaceを実装しています。

MGVector MGPlane::eval ( const MGPosition uv,
int  ndu = 0,
int  ndv = 0 
) const
inlinevirtual

Evaluate surface data.

引数
uvParameter value of the surface.
nduOrder of derivative along u.
ndvOrder of derivative along v.

MGFSurfaceを実装しています。

void MGPlane::eval_all ( double  u,
double  v,
MGPosition f,
MGVector fu,
MGVector fv,
MGVector fuv,
MGVector fuu,
MGVector fvv 
) const
virtual

Evaluate right continuous surface data. Evaluate all positional data, 1st and 2nd derivatives.

引数
uU Parameter value of the surface.
vV Parameter value of the surface.
fPositional data.
fudf(u,v)/du
fvdf/dv
fuvd**2f/(du*dv)
fuud**2f/(du**2)
fvvd**2f/(dv**2)

MGSurfaceを再実装しています。

MGSurface& MGPlane::exchange_uv ( )
virtual

Exchange parameter u and v.

MGSurfaceを実装しています。

bool MGPlane::flat ( const MGBox uvbox,
double  tol,
int &  direction,
MGPosition P,
MGUnit_vector N 
) const
protectedvirtual

Test if the surface is flat or not within the parameter value rectangle of uvbox. Function's return value is: true: if the surface is flat false: if the surface is not falt. When this is not falt, the direction that indicates which direction the surface should be divided will be output. ***** the flatness is tested only approximately. This is for exclusive use of planar().

引数
uvboxTarget parameter box.
tolTolerance allowed to regard flat (Allowed distance from a plane).
direction1: u-direction is more non flat, 0: v-direction is more non flat.
PPosition of the flat plane will be output.
NNormal of the flat plane will be output.

MGSurfaceを再実装しています。

bool MGPlane::flat_tess ( double  u0,
double  u1,
double  v0,
double  v1,
double  tol,
bool &  direction 
) const
protected

Test if the surface is flat or not within the parameter value rectangle of uvbox. Function's return value is: true: if the surface is flat false: if the surface is not falt. When this is not falt, the direction that indicates which direction the surface should be divided will be output. This is the same as flat except that this does not have the arguments P, N. ***** the flatness is tested only approximately. This is for exclusive use of tessellation.

引数
u0u range from u0.
u1to u1
v0v range from v0.
v1to v1
tolTolerance allowed to regart flat (Allowed distance from a plane).
direction1: u-direction is more non flat, 0: v-direction is more non flat.
long MGPlane::identify_type ( ) const
virtual

Return This object's typeID.

MGSurfaceを実装しています。

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

bool MGPlane::in_range ( double  u,
double  v 
) const
inlinevirtual

Test if the parameter(u,v) is in this surface's parameter range.

MGSurfaceを実装しています。

bool MGPlane::in_range ( const MGPosition uv) const
inlinevirtual

MGFSurfaceを実装しています。

int MGPlane::intersect_dnum_u ( ) const
inlinevirtual

The following two function will be used in perps or isect to decide how many division of the surface along u or v direction should be applied before using perp_guess or isect_guess.

MGSurfaceを実装しています。

int MGPlane::intersect_dnum_v ( ) const
inlinevirtual

MGSurfaceを実装しています。

MGCSisect_list MGPlane::isect ( const MGCurve curve) const
virtual

Surface と Curve の交点を求める。 Compute intesection of Plane and Curve.

MGSurfaceを実装しています。

MGCSisect_list MGPlane::isect ( const MGStraight curve) const
MGCSisect_list MGPlane::isect ( const MGRLBRep curve) const
MGCSisect_list MGPlane::isect ( const MGEllipse curve) const
MGCSisect_list MGPlane::isect ( const MGLBRep curve) const
MGCSisect_list MGPlane::isect ( const MGSurfCurve curve) const
MGCSisect_list MGPlane::isect ( const MGBSumCurve curve) const
MGSSisect_list MGPlane::isect ( const MGSurface srf2) const
virtual

Surface と Surface の交線を求める。 Surface and Surface intersection.

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGPlane srf2) const
virtual

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGSphere srf2) const
virtual

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGCylinder srf2) const
virtual

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGSBRep srf2) const
virtual

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGRSBRep srf2) const
virtual

MGSurfaceを実装しています。

MGSSisect_list MGPlane::isect ( const MGBSumSurf srf2) const
virtual

MGSurfaceを実装しています。

int MGPlane::isect_startHPL ( const MGPosition uvuv_startIn,
MGPosition_list uvuv_list,
const MGSurface sf2,
MGSSisect ssi,
MGPosition_list::iterator uvuv_id 
) const

isect_startHPL compute one intersection line of two surfaces, this and sf2, given starting intersetion point uvuv((u1,v1) of this and (u2,v2) of sf2). isect_startHPL halts the computation when intersection reached to a boundary of this or sf2, or reached to one of the points in uvuv_list. The function's return value is: =0: Intersection was not obtained. !=0: Intersection was obtained as follows: =1: End point is a point on a perimeter of one of the surfaces. =3: End point is one of boundary points in uvuv_list.

引数
uvuv_startInStarting point of the intersection line.
uvuv_listisect_startHPL will halt when ip reached one of the point in uvuv_list. isect_startHPL does not change uvuv_list(actually uvuv_list is const). uvuv's space dimension is at least 4, and the first 2 is (u,v) of this and the next 2 is (u,v) of sf2.
sf22nd surface.
ssiSurface-surface intersection line will be output.
uvuv_idWhen the end point of ip was one of the points of uvuv_list, that is, when the function's return value was 3, uvuv_list's iterator of the point will be returned, When the end point was not a point of uvuv_list, end() of uvuv_list will be returned.
MGCSisect_list MGPlane::isectSl ( const MGStraight sl,
const MGBox uvbox = mgNULL_BOX 
) const
protectedvirtual

Intersection of Surface and a straight line.

引数
slTarget straight.
uvboxindicates if this surface is restrictied to the parameter range of uvbox. If uvbox.is_null(), no restriction.

MGSurfaceを再実装しています。

double MGPlane::knot_u ( int  ) const
virtual

Return knot value of (infinite-minus, infinite-plus)

MGSurfaceを再実装しています。

double MGPlane::knot_v ( int  i) const
virtual

Access to i-th element of v knot.

MGSurfaceを再実装しています。

const MGKnotVector& MGPlane::knot_vector_u ( ) const
virtual

Returns the u knot vector.

MGSurfaceを実装しています。

MGKnotVector& MGPlane::knot_vector_u ( )
virtual

MGSurfaceを実装しています。

const MGKnotVector& MGPlane::knot_vector_v ( ) const
virtual

Returns the v knot vector.

MGSurfaceを実装しています。

MGKnotVector& MGPlane::knot_vector_v ( )
virtual

MGSurfaceを実装しています。

virtual void MGPlane::make_display_list ( MGCL::VIEWMODE  vmode = MGCL::DONTCARE) const
virtual

Make a display list of this gel.

MGObjectを再実装しています。

void MGPlane::negate ( int  is_u)
virtual

Negate the normal of the plane,平面を反転する。ノーマルを逆方向にする.

引数
is_uNegate along u-direction if is_u is ture, else along v-direction.

MGSurfaceを実装しています。

MGPosition MGPlane::negate_param ( const MGPosition uv,
int  is_u = 1 
) const

Obtain parameter value if this surface is negated by "negate()". Negate along u-direction if is_u is ture, else along v-direction.

MGVector MGPlane::normal ( double  u,
double  v 
) const
inlinevirtual

Return the normal of the plane, 平面の法線を返却する.

MGSurfaceを再実装しています。

MGVector MGPlane::normal ( const MGPosition uv) const
inlinevirtual

Compute normal vector(not unit) at uv.

MGSurfaceを再実装しています。

const MGUnit_vector& MGPlane::normal ( ) const
inline
void MGPlane::normalize ( )

Update this plane so that m_uderiv, m_vderiv, m_normal construct a orthonormal system.

std::auto_ptr<MGSurface> MGPlane::offset_c1 ( double  ofs_value,
int &  error 
) const
virtual

Surface offset. positive offset value is offset normal direction. the radius of curvature is larger than offset value.line_zero() is used. C1連続曲面の一定オフセット関数 オフセット方向は、ノーマル方向を正とする。トレランスはline_zero()を使用している。 戻り値は、オフセット面のオートポインターが返却される。

引数
ofs_valueオフセット量.
errorエラーコード 0:成功 -1:面におれがある -2:曲率半径以上のオフセット不可 -3:面生成コンストラクタエラー.

MGSurfaceを再実装しています。

bool MGPlane::on ( const MGPosition point) const

Test if a point is on the plane. If on the plane, return true. 指定点が面上にあるか調べる。(面上ならばtrue).

bool MGPlane::on ( const MGPosition P,
MGPosition  
) const
virtual

Test if point P is ont the surface or not.

与えられた誤差内で点が面上にあるかどうかテストする。 Test if point P is ont the surface or not. Even if P is not on the surface, return parameter of the nearest point of the surface.

引数
PA point to test 指定点.

MGSurfaceを再実装しています。

bool MGPlane::on ( const MGStraight ) const

Test if a straight line is on the plane. Return true if on. 直線が平面上にあるか調べる。(平面上ならばtrue)

bool MGPlane::on_a_perimeter ( double &  u,
double &  v,
int &  perim_num 
) const
inlinevirtual

Test if input (u,v) is parameter value on a perimeter of the surface. If u or v is on a perimeter, (u,v) will be updated to the perimeter value.

引数
uSurface parameter
vSurface parameter (u,v).
perim_numif function returns true, the perimete rnumber is output.

MGSurfaceを再実装しています。

bool MGPlane::on_the_perimeter ( int  perim_num,
double  u,
double  v 
) const
inlinevirtual

Test if input (u,v) is on the perimeter perim_num. If u or v is on a perimeter, true will be returned.

引数
perim_numa perimete number is input.
uSurface parameter
vSurface parameter (u,v).

MGSurfaceを再実装しています。

bool MGPlane::operator!= ( const MGGel gel2) const
inlinevirtual

MGGelを再実装しています。

bool MGPlane::operator!= ( const MGPlane gel2) const
inline
MGPlane MGPlane::operator* ( double  scale) const
MGPlane MGPlane::operator* ( const MGMatrix mat) const
MGPlane MGPlane::operator* ( const MGTransf tr) const
MGPlane& MGPlane::operator*= ( double  scale)
virtual

MGSurfaceを実装しています。

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

MGSurfaceを実装しています。

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

MGSurfaceを実装しています。

MGPlane MGPlane::operator+ ( const MGVector v) const

Transformation object construction.

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

Object transformation.

MGSurfaceを実装しています。

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

MGSurfaceを実装しています。

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

MGSurfaceを実装しています。

MGPlane& MGPlane::operator= ( const MGPlane gel2)

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

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

Assignment. When the leaf objects of this and gel2 are not equal, this assignment does nothing.

MGGelを再実装しています。

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

Comparison of two curves.

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

comparison

MGSurfaceを実装しています。

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

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

MGSurfaceを再実装しています。

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

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

Output to IGES stream file(=PD190).

MGGelを再実装しています。

MGPosition MGPlane::param ( const MGPosition ) const
virtual

Return plane parameter value of a point on the plane. If input point is not on the plane, returned is the nearest point parameter of the plane.

MGSurfaceを再実装しています。

virtual double MGPlane::param_e_u ( ) const
inlinevirtual

Return ending parameter value.

MGSurfaceを実装しています。

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

virtual double MGPlane::param_e_v ( ) const
inlinevirtual

MGSurfaceを実装しています。

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

double MGPlane::param_error ( ) const
virtual

Obtain parameter space error.

MGSurfaceを再実装しています。

double MGPlane::param_error_u ( ) const
virtual

MGSurfaceを再実装しています。

double MGPlane::param_error_v ( ) const
virtual

MGSurfaceを再実装しています。

virtual MGBox MGPlane::param_range ( ) const
virtual

パラメータ範囲を返す。 Return parameter range of the plane(Infinite box).

MGSurfaceを再実装しています。

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

virtual double MGPlane::param_s_u ( ) const
inlinevirtual

Return starting parameter value.

MGSurfaceを実装しています。

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

virtual double MGPlane::param_s_v ( ) const
inlinevirtual

MGSurfaceを実装しています。

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

virtual MGCurve* MGPlane::parameter_curve ( int  is_u,
double  x 
) const
virtual

Compute parameter curve. Returned is newed area pointer, and must be freed by delete.

引数
is_uIndicates x is u-value if is_u is true.
xParameter value. The value is u or v according to is_u.

MGSurfaceを実装しています。

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

MGSurface* MGPlane::part ( const MGBox uvbox,
int  multiple = 0 
) const
virtual

Compute part of the surface limitted by the parameter range bx. bx(0) is the parameter (us,ue) and bx(1) is (vs,ve). That is u range is from us to ue , and so on.

引数
uvboxThis plane parameter range.
multipleIndicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary.

MGSurfaceを実装しています。

virtual MGCurve* MGPlane::perimeter_curve ( int  i) const
inlinevirtual

i must be < perimeter_num(). When perimeter_num()==0, this function is undefined.

MGSurfaceを再実装しています。

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

virtual int MGPlane::perimeter_num ( ) const
inlinevirtual

Return how many perimeters this surface has.

MGSurfaceを実装しています。

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

virtual MGPosition MGPlane::perimeter_uv ( int  i,
double  t 
) const
virtual

Construct perimeter (u,v) parameter position. i is perimeter number: =0: v=min line, =1: u=max line, =2: v=max line, =3: u=min line t is perimeter parameter line's parameter value of u or v.

MGSurfaceを再実装しています。

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

int MGPlane::perp_point ( const MGPosition P,
MGPosition uv,
const MGPosition uvguess = NULL 
) const
virtual

与えられた点にもっとも近い面上の点を返却する。パラメ ータ値も返却する。 Return the nearest point of the plane from P. Function's return value is always true.

引数
P与えられた点.
uvParameter value of the plane will be output.
uvguessguess.

MGSurfaceを再実装しています。

MGPosition_list MGPlane::perps ( const MGPosition P) const
virtual

Return all(actually one) foots of perpendicular straight lines from P.

引数
PPoint of a space(指定点).

MGSurfaceを再実装しています。

int MGPlane::planar ( MGPlane plane,
double &  deviation 
) const

Test if the surface is planar or not. Returned is 0(false) if this is not planar, 1(true) if this planar.

引数
planePlane that might be closest to this. Plane is always output even if not planar.
deviationmaximum deviation of this from the output plane.
int MGPlane::planar ( const MGBox uvbox,
double  tol,
int *  divideU = 0 
) const

Test if part of the surface is planar or not within the tolerance tol. The part of the surface is input by the surface parameter range uvbox. Returned is 0(false) if this is not planar, 1(true) if planar. For plane, planar always returns true.

引数
uvboxThis surface parameter range.
tolmaximum deviation allowed to regard the sub surface as a plane.
divideUDirection to subdivide will be output, if this was not planar, =1: u direction, =0: v direction.
int MGPlane::project ( const MGStraight sl,
MGPvector< MGCurve > &  vec_crv_uv,
MGPvector< MGCurve > &  vec_crv,
const MGVector vec = mgNULL_VEC 
) const

与えられた曲線を自身に面直またはベクトル投影して曲線リストを求める。 投影曲線は面上のパラメータ曲線と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. 引数: const MGCurve& crv, (I/ ) given curve. MGPvector<MGCurve>& vec_crv_uv, ( /O) uv projection curve. MGPvector<MGCurve>& vec_crv, ( /O) 3d projection curve. const MGVector& vec=mgNULL_VEC (I/ ) projection vector. 戻り値: 投影曲線の数: 投影曲線が求まった 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.

引数
slgiven curve.
vec_crv_uvuv projection curve will be appended.
vec_crv3d projection curve will be appended.
vecprojection vector, if vec = NULL then calculate perpendicular project.
int MGPlane::project ( const MGCurve crv,
MGPvector< MGCurve > &  vec_crv,
const MGVector vec = mgNULL_VEC 
) const
virtual

与えられた曲線を自身に面直またはベクトル投影して曲線リストを求める。 投影曲線は3次元曲線としてvec_crvに格納される。 3次元曲線のtoleranceはline_zero()を使用している。 get perpendicular or vector projection curve list. 3d projection curves are put into vec_crv(line_zero() is used). 引数: const MGCurve& crv, (I/ ) given curve. MGPvector<MGCurve>& vec_crv, ( /O) 3d projection curve. const MGVector& vec=mgNULL_VEC (I/ ) projection vector. 戻り値: 投影曲線の数: 投影曲線が求まった 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 general world coordinate curves('vec_crv') Function's return value is: >=0: number of curves obtained, <0 : Some error detected.

引数
crvgiven curve.
vec_crv3d projection curve will be appended.
vecprojection vector, if vec = NULL then calculate perpendicular project.

MGFSurfaceを再実装しています。

MGPosition MGPlane::range ( const MGPosition uv) const
inlinevirtual

入力パラメータをパラメータ範囲でまるめて返却する. Round the input uv into parameter range of the plane, return the same value as input.

MGSurfaceを再実装しています。

void MGPlane::ReadMembers ( MGIfstream buf)
protectedvirtual

メンバデータを読み込む関数

MGSurfaceを再実装しています。

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

MGPSRELATION MGPlane::relation ( const MGPlane ,
MGStraight  
) const

与えられた平面との関係を返す. Relation of two planes.

MGPSRELATION MGPlane::relation ( const MGStraight ,
MGCSisect  
) const

与えられた直線との関係を返す。 Relation between plane and straight line.

const MGPosition& MGPlane::root_point ( ) const
inline

平面のパラメータ表現の起点を返却する。 Return root point of the plane.

int MGPlane::sdim ( ) const
virtual

Return the space dimension.

MGSurfaceを実装しています。

virtual void MGPlane::shade ( mgVBO vbo,
const MGDrawParam para,
mgVBO::ELEMENT_TARGET  target = mgVBO::SHADING 
) const
inlinevirtual

Shade the object in world coordinates.

引数
vboThe target graphic object.
paraParameter to draw.
targettarget vbo element.

MGSurfaceを再実装しています。

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

virtual MGPvector<MGCurve> MGPlane::skeleton ( int  density = 1) const
virtual

Obtain boundary and main parameter lines of the FSurface. skeleton includes boundary() and inner parameter lines. density indicates how many inner parameter lines are necessary for both u and v directions.

MGFSurfaceを再実装しています。

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

MGPvector<MGCurve> MGPlane::skeleton_at_knots ( ) const
virtual

Obtain all the parameter curves at knots of u and v knot vector.

MGFSurfaceを再実装しています。

void MGPlane::split ( double  param,
bool  is_u,
MGPvector< MGFSurface > &  surfaces 
) const
virtual

split this fsurface at the parameter param.

引数
paramparameter value of this fsurface. if is_u is true, param is u-value, else v-value.
is_uindicates if param is u or v of the surface parameter (u,v).
surfacessplitted surfaces will be output.

MGSurfaceを再実装しています。

virtual MGSURFACE_TYPE MGPlane::type ( ) const
inlinevirtual

曲面タイプを返却する。 Return surface type of the plane.

MGSurfaceを実装しています。

const MGVector& MGPlane::u_deriv ( ) const
inline

平面のパラメータ表現のu方向を返却する。 Return u-direction vector of the plane.

MGPosition MGPlane::uv ( const MGPosition p) const

点を平面に投影した点の平面のパラメータ表現(u,v)を求める。 Return uv parameter of the point projected from point p to the plane.

MGVector MGPlane::uv ( const MGVector v) const

Vectorを平面に投影したVectorの平面のパラメータ表現(u,v)を求める。 Return uv parameter of the point projected from point p to the plane. p is the end of the vector v originated from the root_point().

const MGVector& MGPlane::v_deriv ( ) const
inline

平面のパラメータ表現のv方向を返却する。 Return v-direction vector of the plane.

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

MGSurfaceを再実装しています。

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

void MGPlane::WriteMembers ( MGOfstream buf) const
protectedvirtual

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

MGSurfaceを再実装しています。

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

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

MG_DLL_DECLR friend MGPlane operator* ( double  scale,
const MGPlane pl 
)
friend
MG_DLL_DECLR friend MGPlane operator+ ( const MGVector v,
const MGPlane pl 
)
friend

メンバ詳解

MGPosition MGPlane::m_root_point
protected

A point on the plane, 平面のパラメータ表現の基点.

MGVector MGPlane::m_uderiv
protected

U direction vector, 平面のパラメータ表現のu方向.

MGVector MGPlane::m_vderiv
protected

V direction vector, 平面のパラメータ表現のv方向.


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