MGCL V10
V10
MGCL V10
|
MGSurface is an abstract class of 3D surface. [詳解]
公開メンバ関数 | |
MGSurface (void) | |
Void Constructor. 初期化なしでオブジェクトを作成する。 [詳解] | |
MGSurface (const MGSurface &srf) | |
Copy Constructor. [詳解] | |
virtual | ~MGSurface () |
virtual MGSurface & | operator= (const MGSurface &gel2) |
MGSurface & | operator+= (const MGVector &v)=0 |
Object transformation. [詳解] | |
MGSurface & | operator-= (const MGVector &v)=0 |
MGSurface & | operator*= (double scale)=0 |
MGSurface & | operator*= (const MGMatrix &mat)=0 |
MGSurface & | operator*= (const MGTransf &tr)=0 |
virtual bool | operator== (const MGGel &gel2) const =0 |
comparison [詳解] | |
virtual bool | operator< (const MGGel &gel2) const =0 |
std::auto_ptr< MGSBRep > | approximate_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. [詳解] | |
virtual MGBox | box_limitted (const MGBox &uvrange) const =0 |
Return minimum box that includes limitted surface by uvrange. [詳解] | |
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 () const |
Obtain ceter coordinate of the geometry. [詳解] | |
virtual MGPosition | center_param () const |
Obtain ceter parameter value of the geometry. [詳解] | |
virtual MGSurface & | change_dimension (int sdim, int start1=0, int start2=0)=0 |
Changing this object's space dimension. [詳解] | |
virtual MGSurface & | change_range (int is_u, double t1, double t2)=0 |
Change parameter range, able to change the direction by providing t1 greater than t2. [詳解] | |
virtual int | coef_sdim () const |
Obtain coefficient's space dimension. [詳解] | |
virtual MGFSurface * | clone_fsurface () const |
Get the clone of this MGFSurface. [詳解] | |
MGFace * | clone_as_face () const |
Get the clone of this as a MGFace. [詳解] | |
virtual MGPosition | closest (const MGPosition &point) const |
Compute the closest point parameter value (u,v)of this surface from a point. [詳解] | |
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. [詳解] | |
virtual MGSurface * | clone () const =0 |
Construct new surface object by copying to newed area. [詳解] | |
void | compute_sample_point (double u0, double u1, double v0, double v1, MGPosition Pn[9], MGPosition ¢er, MGUnit_vector &normal, MGVector *Nn_in=0) const |
compute sample point of the surface to get the approximate plane. [詳解] | |
virtual MGSurface * | copy_change_dimension (int sdim, int start1=0, int start2=0) const =0 |
Construct new surface object by changing the original object's space dimension. [詳解] | |
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 ¶m) const |
Compute direction unit vector of the geometry. [詳解] | |
virtual void | drawWire (mgVBO &vbo, double span_length, int line_density=1) const |
Draw 3D curve in world coordinates. [詳解] | |
virtual MGSurface * | copy_surface () const |
Construct new curve object by copying to newed area. [詳解] | |
virtual void | display_arrows (mgSysGL &sgl) const |
virtual int | divide_multi_knot (MGPvector< MGSurface > &srfl) const |
int | equal_direction (const MGCurve ¶m_curve, const MGCurve &world_curve) const |
Compute if MGSurfCurve scurve(*this, param_curve) has the same direction to world_curve. [詳解] | |
virtual MGVector | eval (double u, double v, int ndu=0, int ndv=0) const =0 |
Evaluate surface data. [詳解] | |
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 (double u, double v, MGPosition &f, MGVector &fu, MGVector &fv, MGVector &fuv, MGVector &fuu, MGVector &fvv) const |
Evaluate right continuous surface data. [詳解] | |
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 MGSurface & | exchange_uv ()=0 |
Exchange parameter u and v. [詳解] | |
virtual MGSurface & | extend (int perimeter, double param, double length, double dk=0.) |
Modify the original Surface by extrapolating the specified perimeter. [詳解] | |
const MGFSurface * | fsurface () const |
Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解] | |
MGFSurface * | fsurface () |
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). [詳解] | |
MGFace * | get_face_pointer () |
get face pointer if this is MGFace, else null will be returned. [詳解] | |
const MGFace * | get_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. [詳解] | |
MGSurface * | get_surface_pointer () |
get surface pointer. Null will never be returned if this is valid MGFSurface. [詳解] | |
const MGSurface * | get_surface_pointer () const |
virtual int | get_number_of_boundaries () const |
Get number of inner boundaries as the output of the function. [詳解] | |
MGCurve * | get_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. [詳解] | |
virtual bool | on_a_perimeter (double &u, double &v, int &perim_num) const |
Test if input (u,v) is parameter value on a perimeter of the surface. [詳解] | |
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 | shade (mgVBO &vbo, const MGDrawParam ¶, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const |
Shade the object in world coordinates. [詳解] | |
virtual void | triangulate (const MGDrawParam ¶, 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). [詳解] | |
virtual long | identify_type () const =0 |
Return This object's typeID. [詳解] | |
virtual bool | in_range (double u, double v) const =0 |
Test if the parameter(u,v) is in this surface's parameter range. [詳解] | |
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< MGCurve > | inner_boundary (int i) const |
Obtain i-th inner_boundary curves(world coordinates representation) of the FSurface. [詳解] | |
virtual MGPvector< MGCurve > | inner_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 |
virtual MGSSisect_list | isect (const MGSurface &srf2) const =0 |
Surface and Surface intersection. [詳解] | |
virtual MGSSisect_list | isect (const MGPlane &srf2) const =0 |
virtual MGSSisect_list | isect (const MGSphere &srf2) const =0 |
virtual MGSSisect_list | isect (const MGCylinder &srf2) const =0 |
virtual MGSSisect_list | isect (const MGSBRep &srf2) const =0 |
virtual MGSSisect_list | isect (const MGRSBRep &srf2) const =0 |
virtual MGSSisect_list | isect (const MGBSumSurf &srf2) const =0 |
MGSSisect_list | isect (const MGFace &f) const |
MGSSisect_list | isect (const MGFSurface &fsurf) const |
MGHHisect_vector | isect (const MGShell &shl) const |
Intersection. [詳解] | |
virtual MGCSisect_list | isect (const MGCurve &curve) const =0 |
Curve and Surface intersection. [詳解] | |
virtual int | isect_order () const =0 |
virtual double | knot_u (int i) const |
Access to i-th element of u knot. [詳解] | |
virtual double | knot_v (int i) const |
Access to i-th element of v knot. [詳解] | |
virtual const MGKnotVector & | knot_vector_u () const =0 |
Returns the u knot vector. [詳解] | |
virtual MGKnotVector & | knot_vector_u ()=0 |
virtual const MGKnotVector & | knot_vector_v () const =0 |
Returns the v knot vector. [詳解] | |
virtual MGKnotVector & | knot_vector_v ()=0 |
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. [詳解] | |
virtual void | negate (int is_u)=0 |
Negate direction of surface. [詳解] | |
void | negate_transform (MGGeometry &boundary) const |
Transform the coordinates of boundary of this geometry. [詳解] | |
virtual MGVector | normal (double u, double v) const |
Compute normal vector(not unit) at uv. [詳解] | |
virtual MGVector | normal (const MGPosition &uv) const |
Compute normal vector(not unit) at uv. [詳解] | |
virtual const MGObject * | object_pointer () const |
Get the object point of this MGFSurface. [詳解] | |
virtual MGObject * | object_pointer () |
virtual MGPvector< MGSurface > | offset (double ofs_value, int &error) const |
Surface offset. [詳解] | |
int | offset_fs (double distance, MGPvector< MGFSurface > &vecOfsFSurface) const |
Offset. [詳解] | |
virtual std::auto_ptr< MGSurface > | offset_c1 (double ofs_value, int &error) const |
C1 continuous Surface offset. [詳解] | |
virtual bool | on (const MGPosition &P, MGPosition &) const |
Test if point P is ont the surface or not. [詳解] | |
virtual bool | on_the_perimeter (int perim_num, double u, double v) const |
Test if input (u,v) is on the perimeter perim_num. [詳解] | |
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. [詳解] | |
virtual std::ostream & | out (std::ostream &ostrm) const |
Output virtual function. [詳解] | |
std::ostream & | outFS (std::ostream &ostrm) const |
Output virtual function. [詳解] | |
virtual MGPvector< MGCurve > | outer_boundary () const |
Obtain outer_boundary curves(world coordinates representation) of the FSurface. [詳解] | |
virtual MGPvector< MGCurve > | outer_boundary_param () const |
Obtain boundary curves(parameter space representation) of the FSurface. [詳解] | |
virtual MGPosition | param (const MGPosition &) const |
Return surface parameter value of a point on the surface. [詳解] | |
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. [詳解] | |
virtual MGCurve * | parameter_curve (int is_u, double x) const =0 |
Compute parameter curve. [詳解] | |
MGPvector< MGCurve > | parameter_curves (int is_u, double x) const |
Obtain parameter curves. [詳解] | |
virtual double | param_error () const |
Obtain parameter space error. [詳解] | |
virtual double | param_error_u () const |
virtual double | param_error_v () const |
virtual double | param_e_u () const =0 |
Return ending parameter value. [詳解] | |
virtual double | param_e_v () const =0 |
MGPosition | param_mid () const |
Return parameter value of the middle point of the surface. [詳解] | |
virtual MGBox | param_range () const |
Return parameter range. [詳解] | |
MGBox | parameter_range () const |
Return parameter range of the geometry(パラメータ範囲を返す). [詳解] | |
virtual double | param_s_u () const =0 |
Return starting parameter value. [詳解] | |
virtual double | param_s_v () const =0 |
virtual double | param_span () const |
Compute square of parameter span length from (u.min, v.min) to (u.max, v.max). [詳解] | |
virtual MGSurface * | part (const MGBox &bx, int multiple=0) const =0 |
Compute part of the surface limitted by the parameter range bx. [詳解] | |
virtual MGCurve * | perimeter_curve (int i) const |
Retrieve perimeter i of this surface. [詳解] | |
virtual int | perimeter_num () const =0 |
Return how many perimeters this surface has. [詳解] | |
virtual MGPosition | perimeter_uv (int i, double t) const |
Construct perimeter i's (u,v) parameter position. [詳解] | |
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. [詳解] | |
virtual int | perp_point (const MGPosition &P, MGPosition &uv, const MGPosition *uvguess=0) const |
Return the foot of the perpendicular straight line from P. [詳解] | |
virtual MGPosition_list | perps (const MGPosition &P) const |
Return all foots of perpendicular straight lines from P. [詳解] | |
MGPosition | pick_closest (const MGStraight &sl) const |
Compute the parameter value of the closest point from the straight to this object. [詳解] | |
virtual MGPosition | range (const MGPosition &) const |
Round the input parameter value uv. [詳解] | |
virtual void | remove_knot () |
removal redundant knots within the tolerance line_zero(). [詳解] | |
virtual MGSurface & | rotate_self (const MGVector &vec, double angle, const MGPosition &origin=mgORIGIN) |
Rotate the surface around the straight line. [詳解] | |
virtual int | sdim () const =0 |
Return the surface type. [詳解] | |
virtual void | shrink_to_knot (const MGBox &uvbx, int multiple=0) |
Shrink this surface to the part limitted by the parameter range of uvbx. [詳解] | |
virtual void | split (double param, bool is_u, MGPvector< MGFSurface > &surfaces) const |
split this fsurface at the parameter param. [詳解] | |
const MGSurface * | surf () const |
Return MGSurface pointer. [詳解] | |
MGSurface * | surf () |
Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解] | |
virtual MGSURFACE_TYPE | type () const =0 |
Return the surface type. [詳解] | |
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. [詳解] | |
virtual std::string | whoami () const |
![]() | |
MGGeometry () | |
Void constructor(初期化なしでオブジェクトを作成する。) [詳解] | |
MGGeometry (const MGGeometry &geo2) | |
Copy constructor. [詳解] | |
virtual | ~MGGeometry () |
Virtual Destructor. [詳解] | |
virtual MGGeometry & | operator= (const MGGeometry &gel2) |
virtual MGGeometry * | geometry () |
Return MGGeometry pointer if this MGGel is an MGGeometry, else return null. [詳解] | |
virtual const MGGeometry * | geometry () const |
const MGBox & | box () const |
Return minimum box that includes whole of the geometry. [詳解] | |
virtual void | draw3DVertex (mgVBO &vbo) const |
bool | is_null () const |
Test if this is null. [詳解] | |
double | parameter_error () const |
Error allowed in the parameter space of the geometry. [詳解] | |
![]() | |
MGObject () | |
Void constructor(初期化なしでオブジェクトを作成する。) [詳解] | |
MGObject (const MGObject &obj2) | |
Copy constructor. [詳解] | |
virtual | ~MGObject () |
Virtual Destructor. [詳解] | |
virtual MGObject & | operator= (const MGObject &obj2) |
MGAppearance * | appearance () |
const MGAppearance * | appearance () const |
MGAppearance * | ensure_appearance () |
virtual void | make_display_list (MGCL::VIEWMODE vmode=MGCL::DONTCARE) const |
Make a display list of this gel. [詳解] | |
bool | has_common (const MGObject &obj2) const |
const MGObject * | includes_object () const |
Test if this gel includes an object. [詳解] | |
MGObject * | includes_object () |
Test if this gel includes an object. [詳解] | |
virtual MGisects | intersection (const MGPoint &obj2) const |
void | remove_appearance () |
Remove the MGAppearance of this MGAttribedGel. [詳解] | |
virtual MGObject * | object () |
Return MGObject pointer if this MGGel is an MGObject, else return null. [詳解] | |
virtual const MGObject * | object () const |
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 () | |
void constructor. [詳解] | |
MGAttribedGel (const MGAttribedGel &gel2) | |
copy constructor. [詳解] | |
virtual MGAttribedGel & | operator= (const MGAttribedGel &gel2) |
virtual | ~MGAttribedGel () |
void | copy_appearance (const MGAttribedGel &gel2) |
mgVBO * | dlist_name () const |
virtual bool | displayList_is_made (MGCL::VIEWMODE vmode) const |
Judge if the display list for vmode is made or not. [詳解] | |
void | deleteDlistName () const |
virtual void | drawAttrib (mgVBO &vbo, bool no_color=false) const |
Process of draw or render attributes. [詳解] | |
virtual void | render_attribute () const |
virtual int | get_draw_attrib_mask () const |
Obtain attribute mask for glPushAttrib(). [詳解] | |
virtual int | get_render_attrib_mask () const |
int | getVBOElementsNumber () const |
Get the number of elements of m_dlistName. [詳解] | |
int | getVBOShaderElementsNumber () const |
Get the number of shading elements of m_dlistName. [詳解] | |
virtual bool | no_display () const |
void | remove_GLattrib (long tid) |
Removed the attribute of specified type. [詳解] | |
virtual void | set_GLattrib (MGGLAttrib *attr) |
virtual void | set_display () |
Set this group as display or no display group. [詳解] | |
virtual void | set_no_display () |
bool | visible () const |
void | set_name (const MGName &newName) |
const MGName * | get_name () const |
void | set_color (const MGColor &newColor) |
const MGColor * | get_color () const |
void | setDlistName (mgVBO *vbo=0) const |
void | setDirty (bool is_dirty) const |
Set dirty flag(s) of this VBO(m_dlistName). [詳解] | |
![]() | |
virtual | ~MGGel () |
Virtual Destructor. [詳解] | |
virtual MGGel & | operator= (const MGGel &gel2) |
virtual bool | operator!= (const MGGel &gel2) const |
virtual bool | operator> (const MGGel &gel2) const |
virtual int | out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const |
virtual MGAttrib * | attrib () |
Return MGAttrib pointer if this MGGel is an MGAttrib, else return null. [詳解] | |
virtual const MGAttrib * | attrib () const |
virtual MGGroup * | group () |
Return MGGroup pointer if this MGGel is an MGGroup, else return null. [詳解] | |
virtual const MGGroup * | group () const |
virtual MGPoint * | point () |
Return point pointer if this MGGel is an MGPoint, else return null. [詳解] | |
virtual const MGPoint * | point () const |
virtual MGCurve * | curve () |
Return curve pointer if this MGGel is an MGCurve, else return null. [詳解] | |
virtual const MGCurve * | curve () const |
virtual MGTopology * | topology () |
Return MGTopology pointer if this MGGel is an MGTopology, else return null. [詳解] | |
virtual const MGTopology * | topology () const |
virtual MGFace * | face () |
Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解] | |
virtual const MGFace * | face () const |
virtual MGShell * | shell () |
Return MGShell pointer if this MGGel is an MGShell, else return null. [詳解] | |
virtual const MGShell * | shell () const |
std::string | string_content () const |
bool | type_is (const MGAbstractGels &types) const |
virtual void | display_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 () | |
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 MGBox & | get_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< MGCurve > | get_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 MGCurve &crv, const MGPosition &uvi, double ti, MGPosition &uv, double &t) const |
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 int | isect_guess_straight (const MGStraight &sl, double ti, const MGPosition &uvi, double &t, MGPosition &uv) const |
virtual MGFace * | make_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 |
virtual int | project (const MGCurve &crv, MGPvector< MGCurve > &vec_crv, const MGVector &vec=mgNULL_VEC) const |
MGPvector< MGCurve > | inner_skeleton (int density) const |
virtual MGPvector< MGCurve > | skeleton (int density=1) const |
virtual MGPvector< MGCurve > | skeleton_at_knots () const |
Obtain all the parameter curves at knots of u and v knot vector. [詳解] | |
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 ¶, 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 |
限定公開メンバ関数 | |
virtual bool | flat (const MGBox &uvbox, double tol, int &direction, MGPosition &P, MGUnit_vector &N) const |
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 | intersect_dnum_u () const =0 |
virtual int | intersect_dnum_v () const =0 |
virtual int | isect_area_length () 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 |
virtual MGCurve * | isect_incr_pline (const MGPosition &uv, int kdt, double du, double dv, double &u, double &v, int incr=0) const =0 |
virtual void | isect_inner_dt (int n, const MGPosition &uvnow, double &du, double &dv, int &kdt, double acuRatio=1.) const |
virtual MGCSisect_list | isect_withC1LB (const MGLBRep &lb) const |
Compute intersections with MGLBRep lb that does not have C0 continuity in it. [詳解] | |
virtual MGCSisect_list | isect_with_noCompoSC (const MGSurfCurve &scrv) const |
isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve. [詳解] | |
virtual MGCSisect_list | isectSl (const MGStraight &sl, const MGBox &uvbox=mgNULL_BOX) const |
Intersection of Surface and a straight line. [詳解] | |
virtual MGSBRep * | surf1D (const MGPlane &pl) const =0 |
virtual void | ReadMembers (MGIfstream &buf) |
virtual void | WriteMembers (MGOfstream &buf) const |
![]() | |
MGGeometry & | set_geometry (const MGGeometry &geo2) |
Assignment. [詳解] | |
virtual void | update_mark () |
Mark this as updated. [詳解] | |
![]() | |
MGObject & | set_object (const MGObject &gel2) |
![]() | |
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 |
カーブを折れで分割して行い、後で接続する [詳解] | |
フレンド | |
MG_DLL_DECLR friend int | isect_start_tan (const MGFSurface &sf1, const MGFSurface &sf2, const MGLBRep &lineb, MGVector *Tse[2]) |
MG_DLL_DECLR friend void | isect_start_adjustSE (int ngtan, MGNDDArray &tau, MGBPointSeq &point, MGLBRep &lineb, MGVector *tan[2]) |
Update lineb so as to have the tangent tan for start or end according to ngtan. [詳解] | |
その他の継承メンバ | |
![]() | |
MGBox * | m_box |
![]() | |
std::auto_ptr< mgVBO > | m_dlistName |
display name if m_dlistName!=0; [詳解] | |
MGSurface is an abstract class of 3D surface.
Surface is represented using two parameter u and v:f(u,v).
MGSurface::MGSurface | ( | void | ) |
Void Constructor. 初期化なしでオブジェクトを作成する。
|
inline |
Copy Constructor.
|
virtual |
std::auto_ptr<MGSBRep> MGSurface::approximate_as_SBRep | ( | int | parameter_normalization = 2 , |
double | tol = -1. , |
||
int * | order = 0 |
||
) | const |
Approximate this surface as an MGSBRep.
parameter_normalization | Indicates how the parameter normalization be done: =0: no surface parameter normalization. =1: normalize to u_range=(0., 1.), and v_range=(0.,1.); =2: normalize to make the average length of the 1st derivative along u and v of the base surface is as equal to 1. as possible. |
tol | tolerance allowed for the approximation. |
order | When tol<=0., MGTolerance::line_zero() will be employed.order of the new MGSBRep, >=4 is recommended. order[0]:u-order, [1]:v-order. When order=0 is input, order[0]=order[1]=4 are assumed. |
|
virtual |
Generate arrow data of the tangent along u and v and the normal.
Arrow at the parameter value (u,v) of the surface. data[0] is the origin of the u-tangent arrow, data[1] is the top of the u-tangent arrow, data[2], [3] are two bottoms of u-tangent arrowhead. data[0], [4], [5], [6] are the points of v-tangent arrow. data[0], [7], [8], [9] are the points of v-tangent arrow.
MGFSurfaceを実装しています。
|
inlinevirtual |
MGFSurfaceを実装しています。
void MGSurface::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().
double MGSurface::average_chord_length | ( | int | is_u, |
const double | para[3], | ||
const MGNDDArray & | tau | ||
) | const |
Compute average chord length along u(is_u==false) or v(is_u==true). Function's return value is the chord length.
is_u | =0, or 1. Indicates if para is u-value(is_u=1) or v(is_u=0). |
para | three parameter value of srf, start, middle, and end of u parameter value if is_u==1, of v if is_u==0. |
tau | data points to evaluate on is_u parameter line. tau[.] is v values if is_u==1, u values if 0. |
|
inlinevirtual |
Returns B-Rep Dimension of u.
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
|
inlinevirtual |
Returns B-Rep Dimension of v.
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
Return minimum box that includes limitted surface by uvrange.
入力のパラメータ範囲の曲線部分を囲むボックスを返す.
uvrange | Parameter Range of the curve. |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
MGBox MGSurface::box_param | ( | ) | const |
Return box of the parameter space of the surface.
|
inlinevirtual |
Return box of the parameter space of the FSurface after trimmed one.
MGFSurfaceを実装しています。
|
virtual |
Obtain ceter coordinate of the geometry.
MGGeometryを実装しています。
MGPlane, MGCylinder, MGPlaneImageで再実装されています。
|
virtual |
Obtain ceter parameter value of the geometry.
MGGeometryを実装しています。
|
pure virtual |
Changing this object's space dimension.
sdim | new space dimension |
start1 | Destination order of new object. |
start2 | Source order of this object. |
MGGeometryを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
Change parameter range, able to change the direction by providing t1 greater than t2.
is_u | if true, (t1,t2) are u-value. if not, v. |
t1 | Parameter value for the start of original. |
t2 | Parameter value for the end of original. |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
Construct new surface object by copying to newed area.
User must delete this copied object by "delete".
MGGeometryを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
virtual |
Get the clone of this as a MGFace.
If this is MGSurface, it is converted to MGFace.
MGFSurfaceを実装しています。
|
inlinevirtual |
Get the clone of this MGFSurface.
MGFSurfaceを実装しています。
|
virtual |
Compute the closest point parameter value (u,v)of this surface from a point.
MGFSurfaceを実装しています。
MGPlane, MGSphere, MGCylinderで再実装されています。
|
inlinevirtual |
Compute closest point from a line to the boundary of the MGFSurface.
Returned is the parameter value of the FSurface that is closest to point.
MGFSurfaceを実装しています。
|
virtual |
Compute the closest point on all the perimeters of the surface.
The point is returned as the parameter value (u,v) of this surface.
MGSphereで再実装されています。
|
virtual |
|
inlinevirtual |
void MGSurface::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.
The approximate plane is of the surface within the parameter range (u0,v0) to (u1, v1).
u0 | Parameter range. |
u1 | Parameter range. |
v0 | Parameter range. |
v1 | Parameter range. |
Pn | sample points will be output. |
center | center of the sample points will be output. |
normal | average normal of Nn[] will be output. |
Nn_in | 9 normals of the surface will be output. |
|
pure virtual |
Construct new surface object by changing the original object's space dimension.
User must delete this copied object by "delete".
sdim | new space dimension |
start1 | Destination order of new line. |
start2 | Source order of this line. |
MGGeometryを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
inlinevirtual |
Construct new curve object by copying to newed area.
User must delete this copied object by "delete".
void MGSurface::curvatures | ( | const MGPosition & | uv, |
double | value[4], | ||
MGUnit_vector & | N | ||
) | const |
Compute surface curvatures.
value[0]=K:Gaussian curvature=k1*k2, value[1]=H:Mean curvature=(k1+k2)/2, value[2]=k1:minimum curvature, and value[3]=k2=maximum curvature. N is the unit normal vector at position (u,v).
void MGSurface::curvatures | ( | double | u, |
double | v, | ||
double | value[4], | ||
MGUnit_vector & | N | ||
) | const |
|
virtual |
Compute direction unit vector of the geometry.
MGGeometryを再実装しています。
|
virtual |
|
inlinevirtual |
Draw 3D curve in world coordinates.
The object is converted to curve(s) and is drawn.
vbo | The target graphic object. |
span_length | Line segment span length. |
line_density | line density to draw a surface in wire mode. |
MGObjectを実装しています。
MGPlane, MGPlaneImageで再実装されています。
Compute if MGSurfCurve scurve(*this, param_curve) has the same direction to world_curve.
Assuming that scurve and world_curve are the same curve. Function's return value is: 1: same direction, -1:oppositie direction.
param_curve | (u,v) parameter representation curve of this. |
world_curve | world representation curve. |
|
pure virtual |
Evaluate surface data.
u | U Parameter value of the surface. |
v | V Parameter value of the surface. |
ndu | Order of derivative along u. |
ndv | Order of derivative along v. |
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
inlinevirtual |
uv | FSurface parameter value(u,v) |
ndu | Order of derivative along u. |
ndv | Order of derivative along v. |
MGFSurfaceを実装しています。
|
virtual |
Evaluate right continuous surface data.
Evaluate all positional data, 1st and 2nd derivatives.
u | U Parameter value of the surface. |
v | V Parameter value of the surface. |
f | Positional data. |
fu | df(u,v)/du |
fv | df/dv |
fuv | d**2f/(du*dv) |
fuu | d**2f/(du**2) |
fvv | d**2f/(dv**2) |
MGSBRep, MGRSBRep, MGPlane, MGCylinderで再実装されています。
|
virtual |
Evaluate right continuous surface data.
Evaluate all positional data, 1st and 2nd derivatives.
uv | Parameter value of the surface. |
f | Positional data. |
fu | df(u,v)/du |
fv | df/dv |
fuv | d**2f/(du*dv) |
fuu | d**2f/(du**2) |
fvv | d**2f/(dv**2) |
MGCylinderで再実装されています。
double MGSurface::eval_gap | ( | const MGCurve & | curve, |
int | iperi, | ||
MGPosition & | uv | ||
) | const |
evaluate gap between this surface's perimeter iperi and the given curve curve.
curve | (I/ ) curve to evaluate. |
iperi | (I/ ) 0: vmin, 1: umax, 2: vmax, and 3: umin. |
uv | ( /O) the parameter of this that had the largest gap. |
double MGSurface::eval_gap | ( | const MGCurve * | curve[4], |
MGPosition & | uv | ||
) | const |
evaluate gap between this surface's perimeters and the given curve curve.
evaluation is performed for the perimeter i and curve[i] for 0<=i<=4. function's return value is the maximum gap.
curve | (I/ ) curves to evaluate. |
uv | ( /O) the parameter of this that had the largest gap. |
|
virtual |
Evaluate all the points (ui, vj) into spoint(i,j,.).
Here ui=utau(i) for 0<=i<utau.length() and vj=vtau(j) for 0<=j<vtau.length().
utau | u方向のデータポイント |
vtau | v方向のデータポイント |
spoint | evaluated data will be output to spoint. |
|
virtual |
Evaluate n'th derivative data. n=0 means positional data evaluation.
t | Parameter value, t's space dimension is geometry's manifold dimension. |
nderiv | Order of derivative of i-th parameter in nderiv[i], When nderiv=null, nderiv[i]=0 is assumed for all i. |
MGGeometryを実装しています。
|
pure virtual |
Exchange parameter u and v.
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
inlinevirtual |
Modify the original Surface by extrapolating the specified perimeter.
The extrapolation is C2 continuous if the order >=4. The extrapolation is done so that extrapolating length is "length" at the position of the parameter value "param" of the perimeter.
perimeter | perimeter number of the Surface. =0:v=min, =1:u=max, =2:v=max, =3:u=min. |
param | parameter value of above perimeter. |
length | chord length to extend at the parameter param of the perimeter. |
dk | Coefficient of how curvature should vary at extrapolation start point. When dk=0, curvature keeps same, i.e. dK/dS=0. When dk=1, curvature becomes zero at length extrapolated point, i.e. dK/dS=-K/length at extrapolation start point (S=parameter of arc length, K=Curvature at start point) That is, when dk reaches to 1 from 0, curve changes to flat. |
MGSBRep, MGRSBRep, MGSphere, MGCylinderで再実装されています。
|
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().
uvbox | Target parameter range. |
tol | Tolerance allowed to regart flat (Allowed distance from a plane). |
direction | 1: u-direction is more non flat. 0: v-direction is more non flat. |
P | Position of the flat plane will be output. |
N | Normal of the flat plane will be output. |
MGPlane, MGCylinderで再実装されています。
|
inlinevirtual |
Get the MGFSurface pointer if this is MGSurface or MGFace.
MGObjectを再実装しています。
|
inlinevirtual |
MGObjectを再実装しています。
void MGSurface::fundamentals | ( | const MGPosition & | uv, |
double | Q[6], | ||
MGUnit_vector & | UN | ||
) | const |
Compute 1st and 2nd fundamental quantities of the surface.
In Q, 1st and 2nd fundamental quantities are returned as: Q[0]=E=fufu, Q[1]=F=fufv, Q[2]=G=fvfv, Q[3]=L=fuuUN, Q[4]=M=fuvUN=fvuUN, Q[5]=N=fvvUN.
uv | Surface parameter value (u,v) |
Q | Fundamental quantities will be returned. |
UN | Normal vector at uv will be returned. |
void MGSurface::fundamentals | ( | double | u, |
double | v, | ||
double | Q[6], | ||
MGUnit_vector & | N | ||
) | const |
u | Surface parameter u value of (u,v) |
v | Surface parameter v value of (u,v) |
Q | Fundamental quantities will be returned. |
N | Normal vector at uv will be returned. |
void MGSurface::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).
The plane's origin is center point of the plane when the surface is mapped onto the plane. The uderiv of the plane is the direction from the point(u0, v0) to (u1,v0).
u0 | u range from u0 to u1. |
u1 | u range from u0 to u1. |
v0 | v range from v0 to v1. |
v1 | v range from v0 to v1. |
plane | The plane will be output. |
width | The width and the height of the plane that include all the data |
height | for the surface point to map onto the plane will be output |
|
inlinevirtual |
get face pointer if this is MGFace, else null will be returned.
MGFSurfaceを実装しています。
|
inlinevirtual |
MGFSurfaceを実装しています。
void MGSurface::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.
|
inlinevirtual |
Get number of inner boundaries as the output of the function.
MGFSurfaceを実装しています。
Given world curve wcrv on this face, get the parameter space representation pcrv.
Function's return value is pcrv, which is newed one. Must be deleted.
|
inlinevirtual |
get surface pointer. Null will never be returned if this is valid MGFSurface.
That is, if this is MGFace, base surface will be returned.
MGFSurfaceを実装しています。
|
inlinevirtual |
MGFSurfaceを実装しています。
int MGSurface::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.
Function's returned value is the number of common part curve part, which is 2 at most.
crv | crv must be a cotinuous one curve, must not be MGCompositeCurve. |
pspan | parameter range of crv and perimeters will be output. |
peri_num | perimeter number of pspan[i] will be output in peri_num[i], (pspan[i], peri_num[i]) is one pair. |
|
inlinevirtual |
Test if this and 2nd object has common area about their box(),taking error into account.
MGFSurfaceを実装しています。
|
pure virtual |
Return This object's typeID.
MGGelを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
pure virtual |
Test if the parameter(u,v) is in this surface's parameter range.
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
inlinevirtual |
MGFSurfaceを実装しています。
|
virtual |
Test if (u,v) is inside the face.
Function's return value is: 0:outside the face. 1:unknown. 2:inside the face, not on a boundary. <0:(u,v) is on an inner boundary, and abs(return code) is the loop id. 4:(u,v) is on the outer boundary. >=10: (u,v) is on a perimeter, (10+perimeter number) will be returned.
MGFSurfaceを実装しています。
Obtain i-th inner_boundary curves(world coordinates representation) of the FSurface.
Let the output of inner_boundary(i) be wcurves and of inner_boundary_param(i) be pcurves, then wcurves[j] corresponds to pcurves[j] one to one. Number of inner_boundary can be obtained by the function number_of_inner_boundary().
MGFSurfaceを実装しています。
Obtain i-th inner_boundary curves.
Obtain i-th inner_boundary curves(world coordinates representation) of the FSurface. Let the output of inner_boundary(i) be wcurves and of inner_boundary_param(i) be pcurves, then wcurves[j] corresponds to pcurves[j] one to one. Number of inner_boundary can be obtained by the function number_of_inner_boundary().
MGFSurfaceを実装しています。
MGCSisect_list MGSurface::intersect | ( | const MGCurve & | curve | ) | const |
Default surface-curve intersection function.
Restriction for this surface and curve:
MGCSisect_list MGSurface::intersect | ( | const MGEllipse & | el | ) | const |
Default surface-curve intersection function.
|
protected |
Default intersection program of MGSurface. It is assumed that both this and srf2 are not a plane.
|
protectedpure virtual |
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.
MGPlane, MGSphere, MGCylinderで実装されています。
|
protectedpure virtual |
MGPlane, MGSphere, MGCylinderで実装されています。
|
protected |
Compute intersection points of an inner parameter line of this surface and sf2. The intersection point is used to compute surface to surface intersection lines. Function's return value is at most one intersection point un uvuv_list. One member of uvuv_list is (u1,v1,u2,v2), where (u1,v1) is a parameter of this surface and (u2,v2) is a parameter of surf.
sf2 | The second surface. |
Compute the intersections of two objects.
Intersections are obtained from two objects, which are known using the MGisects::object1() and object2(). ****NOTE**** When two objects' manifold dimension are the same, object1 is this object at the invocation of MGObject::intersection(), and object2 is the argument object. However, their manifold dimension are not the same, object1 is always the lower dimension's object and object2 is the higer dimension's object.
MGObjectを実装しています。
|
virtual |
MGObjectを実装しています。
|
protected |
Default intersection program of MGSurface with a plane.
bool MGSurface::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.
That is, surface is flat within surftol from the average plane, and all of the egedes are small compared with melen2.
|
pure virtual |
Surface and Surface intersection.
Surface と Surface の交線を求める。
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
MGFSurfaceを実装しています。
|
virtual |
MGFSurfaceを実装しています。
|
virtual |
Intersection.
MGFSurfaceを実装しています。
|
pure virtual |
Curve and Surface intersection.
Surface と Curve の交点を求める。
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
inlineprotectedvirtual |
isect_area_length() returns initial area length for the intersection line.
MGFSurfaceを実装しています。
|
inlineprotectedvirtual |
isect_direction() is used by isect_startPt() to define which constant parameter line should be used to compute intersection, and what incremental value be used for the parameter. Function's return value is direction to get next intersection(with dt). When =1: u=const direction, =0: v=const, =-1: cannot get intersection.
sf2 | Second surface for the intersection. |
m1 | id of uvuvS that indicates this surface's parameter position in uvuvS. (uvuvS(m1), uvuvS(m1+1))=(u,v) of this surface. |
uvuvS | start parameter (u,v) pair of this surface and sf2. |
du | Incremental value of the parameter kind of kdt will be output. |
dv | Right dt will be output according to the function's output =0,1. |
acuRatio | acuracy ratio. |
MGFSurfaceを再実装しています。
|
protected |
isect_div_id_max is maximum id of array of sect_div defined in isect_dt_coef. That is, isect_div_id_max+1 is the length of the array sect_div.
|
protectedpure virtual |
"isect1_incr_pline" is a dedicated function of isect_start_incr, will get shortest parameter line necessary to compute intersection.
uv | last intersection point. |
kdt | Input if u=const v-parameter line or not, true:u=const, false:v=const. |
du | Incremental parameter length of u. |
dv | Incremental parameter length of v. |
u | next u value will be output. |
v | next v value will be output. |
incr | Incremental valuse of B-coef's id. |
MGFSurfaceを実装しています。
|
inlineprotectedvirtual |
"isect_inner_dt" is a dedicated function of isect_startPt, comutes adequate incremental parameter value(du,dv) and parameter line kind kdt(u=const or v=const).
n | num of i.p. obtained so far(not include uvnow). |
uvnow | intersection point obtained last(of this). |
du | incremental u length from previous to uvnow is input. New du or dv will be output according to kdt's return value. |
dv | incremental v length. |
kdt | Parameter kind used so far is input, will be output as: =1:parameter line kind(u=const), =0: v=const, =-1:should halt computation since incremental value is zero. |
acuRatio | Accurate ratio. |
MGFSurfaceを再実装しています。
|
pure virtual |
Return order of intersection line order of MGLBRep. The default is 4.
MGBSumSurfで実装されています。
|
protectedvirtual |
isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve.
|
protectedvirtual |
Compute intersections with MGLBRep lb that does not have C0 continuity in it.
|
protectedvirtual |
Intersection of Surface and a straight line.
sl | Target straight. |
uvbox | indicates if this surface is restrictied to the parameter range of uvbox. If uvbox.is_null(), no restriction. |
MGSBRep, MGPlane, MGRSBRep, MGCylinder, MGSphereで再実装されています。
|
inlinevirtual |
Access to i-th element of u knot.
MGFSurfaceを再実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで再実装されています。
|
inlinevirtual |
Access to i-th element of v knot.
MGFSurfaceを再実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで再実装されています。
|
pure virtual |
Returns the u knot vector.
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
Returns the v knot vector.
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
Compare two parameter values. If uv1 is less than uv2, return true.
Comparison is done after projected to i-th perimeter of the surface.
i | perimeter number. |
uv1 | 1st point parameter. |
uv2 | 2nd point parameter. |
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
|
inlinevirtual |
Get manifold dimension.
MGGelを再実装しています。
|
inlinevirtual |
|
pure virtual |
Negate direction of surface.
is_u | Negate along u-direction if is_u is ture, else along v-direction. |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
Transform the coordinates of boundary of this geometry.
Transformation is done so that new coordinate of boundary is the same coordinate as the new one of this geometry after negate() of this geometry is done. That is, boundary coordinates are of parameter world of this geometry.
MGGeometryを実装しています。
|
inlinevirtual |
Negate the FSurface.
MGFSurfaceを実装しています。
|
virtual |
|
virtual |
|
inlinevirtual |
Get the object point of this MGFSurface.
MGFSurfaceを実装しています。
|
inlinevirtual |
MGFSurfaceを実装しています。
Surface offset.
一定オフセット関数 オフセット方向は、ノーマル方向を正とする。曲率半径より大きいオフセットは行わない。 戻り値は、オフセット曲面リストが返却される。エラーのとき長さ0の曲面リストが返る。 トレランスはline_zero()を使用している。 Surface offset. positive offset value means offset normal direction.line_zero() is used. the radius of curvature is larger than offset value.
ofs_value | オフセット量 |
error | エラーコード 0:成功 -2:曲率半径以上のオフセット不可 -3:面生成コンストラクタエラー |
|
virtual |
C1 continuous Surface offset.
C1連続曲面の一定オフセット関数 オフセット方向は、ノーマル方向を正とする。曲率半径より大きいオフセットは行わない。 戻り値は、オフセットした曲面のオートポインタが返却される。エラーのときヌルが返る。 トレランスはline_zero()を使用している。 C1 continuous Surface offset. positive offset value means offset normal direction. the radius of curvature is larger than offset value.line_zero() is used.
ofs_value | オフセット量 |
error | エラーコード 0:成功 -1:面におれがある -2:曲率半径以上のオフセット不可 -3:面生成コンストラクタエラー |
MGPlane, MGSphere, MGCylinderで再実装されています。
|
virtual |
Offset.
distance is plus value if the direction is toward normal vector of the FSurface. Minus if against the normal vector. エラーコード 0:成功 -1:曲率半径以上のオフセット不可 -3:面生成コンストラクタエラー
MGFSurfaceを実装しています。
|
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.
P | A point. 指定点 |
MGFSurfaceを実装しています。
MGPlane, MGSphere, MGCylinderで再実装されています。
|
virtual |
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.
u | Surface parameter u of (u,v) |
v | Surface parameter v of (u,v) |
perim_num | if function returns true,the perimete number will be output, If function returns false, the nearest perimeter number will be output. |
MGFSurfaceを実装しています。
MGPlane, MGCylinderで再実装されています。
bool MGSurface::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.
If x is on a perimeter, x will be updated to the perimeter value. Function's return value is true if on a perimeter.
is_u | specify if x is u or v value, is_u!=0(true) means u value. |
x | Surface parameter (u,v) |
perim_num | if function returns true,the perimete number will be output. |
|
virtual |
Test the uvcurve is on a perimeter.
If on a perimeter, true will be returned.
uvcurve | curve of surface parameter (u,v) |
perim_num | if function returned true, the perimete number will be output. |
|
virtual |
Test if input (u,v) is on the perimeter perim_num.
If u or v is on a perimeter, true will be returned.
perim_num | a perimete number is input. |
u | Surface parameter u of (u,v) |
v | Surface parameter v of (u,v) |
MGPlaneで再実装されています。
|
pure virtual |
MGObjectを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
MGObjectを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
MGObjectを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
Object transformation.
MGObjectを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
MGObjectを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
pure virtual |
MGGelを再実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
Assignment. When the leaf object of this and obj2 are not equal, this assignment does nothing.
|
pure virtual |
|
inlinevirtual |
Returns the order of u.
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
|
inlinevirtual |
Returns the order of v.
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
|
virtual |
Output virtual function.
MGGeometryを再実装しています。
MGSBRep, MGRSBRep, MGBSumSurf, MGPlane, MGPlaneImage, MGSphere, MGCylinderで再実装されています。
Obtain outer_boundary curves(world coordinates representation) of the FSurface.
Let the output of outer_boundary() be wcurves and of outer_boundary_param() be pcurves, then wcurves[i] corresponds to pcurves[i] one to one. The output curves can be considered as a continuous counter-clockwise ordered boundary of the surface.
MGFSurfaceを実装しています。
Obtain boundary curves(parameter space representation) of the FSurface.
Let the output of boundary() be wcurves and of boundary_parameter() be pcurves, then wcurves[i] corresponds to pcurves[i] one to one.
MGFSurfaceを実装しています。
|
inlinevirtual |
Output virtual function.
MGFSurfaceを実装しています。
|
virtual |
Return surface parameter value of a point on the surface.
自身の上の指定点を表すパラメータ値を返す。 If input point is not on the surface, return the nearest point on the surface.
MGFSurfaceを実装しています。
MGPlaneで再実装されています。
|
pure virtual |
Return ending parameter value.
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
pure virtual |
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
virtual |
Obtain parameter space error.
MGPlane, MGSphere, MGCylinderで再実装されています。
|
virtual |
MGPlaneで再実装されています。
|
virtual |
MGPlaneで再実装されています。
|
inlinevirtual |
Return parameter value of the middle point of the surface.
The middle point is defined as the parameter (u,v) where u=(param_s_u()+param_e_u())/2, and v likewise.
MGFSurfaceを再実装しています。
double MGSurface::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).
Let wcurve be a world curve rep that lies on this surface, and pcurve is parameter (u,v) expression of wcurve. That is, wcurve==MGSurfCurve pline(*this,pcurve). Then, param_of_pcurve() will obtain Let S() is this surface, fp() is pcurve, and fw() is wcurve. Then S(fp(tp))=fw(tb).
tw | point parameter of wcurve to get the pcurve parameter. |
wcurve | world curve that lies on this surface. |
pcurve | This surface's parameter rep of wcurve. |
guess | guess parameter value to compute tp. When guess=null, param_of_pcurve will define the guess parameter. |
|
virtual |
Return parameter range.
MGFSurfaceを実装しています。
MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで再実装されています。
|
pure virtual |
Return starting parameter value.
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
pure virtual |
MGFSurfaceを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
virtual |
Compute square of parameter span length from (u.min, v.min) to (u.max, v.max).
MGPosition MGSurface::parameter | ( | const MGPosition & | P | ) | const |
Compute parameter value of given point.
自身の上の指定点を表すパラメータ値を返す。 If input point is not on the geometry, return the nearest point on the geometry.
P | Point(指定点) |
|
pure virtual |
Compute parameter curve.
Returned is newed area pointer, and must be freed by delete.
is_u | Indicates x is u-value if is_u is true. |
x | Parameter value. The value is u or v according to is_u. |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
Obtain parameter curves.
In the case of surFSurface, parameter curve is only one. However, in the case of FSurface, number of parameter curves are more than one.
is_u | True(!=0) if x is u-value.(i.e. obtain u=const line) |
x | parameter value. u or v-value accordint to is_u. |
MGFSurfaceを実装しています。
|
virtual |
Return parameter range of the geometry(パラメータ範囲を返す).
MGGeometryを実装しています。
Compute part of the surface limitted by the parameter range bx.
bx(0) is the parameter (us,vs) and bx(1) is (ue,ve). That is u range is from us to ue , and so on. Retured is newed object, must be deleted.
bx | Target box. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
Retrieve perimeter i of this surface.
i must be < perimeter_num(). When perimeter_num()==0, this function is undefined. Retured is newed object, must be deleted.
MGPlane, MGSphere, MGCylinder, MGPlaneImageで再実装されています。
|
pure virtual |
Return how many perimeters this surface has.
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurf, MGPlaneImageで実装されています。
|
virtual |
Construct perimeter i's (u,v) parameter position.
MGPlane, MGPlaneImageで再実装されています。
|
virtual |
Compute a perpendicular point from a point P, given guess parameter value uvguess.
Function's return value is: true if uv is obtained, false if uv is not obtained.
uv0 | parameter range of this surface, from uv0 to uv1. |
uv1 | parameter range of this surface, When uv0(0)>=uv1(0) or uv0(1)>=uv1(1), no limit for this parameter range. |
P | Point(指定点). |
uvguess | guess parameter value of surface. |
uv | Parameter value will be returned. |
|
virtual |
Return the foot of the perpendicular straight line from P.
Computation is done from the guess parameter value. Function's return value is whether point is obtained(true) or not(false).
P | Point |
uvguess | guess parameter value of the shell |
uv | Parameter value will be returned. |
MGFSurfaceを実装しています。
|
virtual |
Compute perpendicular points of a curve and a surface.
Given a guess starting paramter value, compute perpendicular points. Function's return value is: perp_guess=true if perpendicular points obtained, perp_guess=false if perpendicular points not obtained,
uv0 | parameter range of this surface, from uv0 to uv1. |
uv1 | parameter range of this surface. When uv0(0)>=uv1(0) or uv0(1)>=uv1(1), no limit for this parameter range. |
curve | curve. |
t0 | parameter range of curve, from t0, |
t1 | parameter range of curve, to t1. When t0>=t1, no limit for curve2 parameter range. |
tuvg | Guess parameter value of curve and this surface. |
tuv | perpendicular points' parameter values will be output. tuv(0): curve's parameter, (tuv(1),tuv(2)):this surface's parameter. |
|
virtual |
Compute perpendicular points of a curve and a surface.
uv0 | parameter range of this surface, from uv0 to uv1. |
uv1 | When uv0(0)>=uv1(0) or uv0(1)>=uv1(1), no limit for this parameter range. |
crv | MGCompositeCurve. |
t0 | parameter range of curve, from t0 to t1. |
t1 | When t0>=t1, no limit for curve2 parameter range. |
tuvg | Guess parameter value of curve and this surface. |
tuv | perpendicular points' parameter values will be output, tuv(0): curve's parameter, (tuv(1),tuv(2)):this surface's parameter. |
|
virtual |
Compute perpendicular points of a curve and a surface.
Given guess a starting paramter value, compute perpendicular points. given guess starting paramter values. Function's return value is: perp_guess=true if perpendicular points obtained, perp_guess=false if perpendicular points not obtained,
curve | curve. |
uvguess | Guess parameter value of the FSurface. |
tguess | Guess parameter value of the curve. |
uv | perpendicular point's parameter values of the shell will be output. |
t | Curve's point's parameter value will be output. |
MGFSurfaceを実装しています。
|
virtual |
Return the foot of the perpendicular straight line from P.
Return the foot that is nearest to point uvguess. 与点にもっとも近い、与点から面に垂直な面上の点を求める。 Function's return value is whether point is obtained(1) or not(0).
P | 指定点 |
uv | Parameter value of the plane will be output パラメータ値 |
uvguess | guess parameter value of the surface |
MGFSurfaceを実装しています。
MGPlane, MGSphere, MGCylinderで再実装されています。
|
virtual |
Return all foots of perpendicular straight lines from P.
P | Point of a space(指定点) |
MGFSurfaceを実装しています。
MGPlane, MGSphere, MGCylinderで再実装されています。
|
virtual |
Compute the parameter value of the closest point from the straight to this object.
sl is the eye projection line whose direction is from yon to hither, and if sl had multiple intersection points, The closest point to the eye will be selected.
MGObjectを再実装しています。
|
virtual |
Round the input parameter value uv.
入力パラメータをパラメータ範囲でまるめて返却する。 Round the input parameter value uv into the parameter range of the surface.
MGFSurfaceを実装しています。
MGRSBRep, MGPlane, MGSphere, MGCylinderで再実装されています。
|
protectedvirtual |
メンバデータを読み込む関数 戻り値boolは正常に読み出しが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGGeometryを再実装しています。
MGSBRep, MGPlane, MGRSBRep, MGCylinder, MGSphere, MGBSumSurf, MGPlaneImageで再実装されています。
|
virtual |
|
virtual |
Rotate the surface around the straight line.
指定点をとおり指定方向ベクトルを持つ直線の回りを指定角度の 回転を行ない自身の面とする。 Rotate the surface around the straight line whose direction is vec and that passes through origin.
|
pure virtual |
Return the surface type.
MGGeometryを実装しています。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
|
inlinevirtual |
Shrink this surface to the part limitted by the parameter range of uvbx.
New parameter range uvbx2 is so determined that uvbx2 is the smallest box tha includes uvbx, and all of the u or v values of uvbx2 is one of the values of u or v knots of the surface knotvector. uvbx(0) is the parameter (us,ue) and uvbx(1) is (vs,ve). That is u range is from us to ue , and so on.
uvbx | Target parameter box. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGSBRep, MGRSBRep, MGBSumSurfで再実装されています。
|
virtual |
split this fsurface at the parameter param.
param | parameter value of this fsurface. if is_u is true, param is u-value, else v-value. |
is_u | indicates if param is u or v of the surface parameter (u,v). |
surfaces | splitted surfaces will be output. |
MGFSurfaceを実装しています。
MGPlaneで再実装されています。
|
inlinevirtual |
|
inlinevirtual |
Obtain 1D surface rep. of this surf which can be used for isect(const MGPlane& pl). This surf1D is used in isect for the argument of isect_startPlane, which will use surf1D to compute isect(pl). surf1D=0.(intersection with x=0. plane) is the intersection lines.
bool MGSurface::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).
Also, test if the surface is within surface_tol and angle from the plane. The plane's origin is center point of the plane when the surface is mapped onto the plane. the uderiv is the direction from the point(u0, v0) to (u1,v0). Function's return value is true when the surface is within the tolerance surface_tol, and the surface normals are within angle from the plane's normal plane, width, and height are valid only when function's return value is true.
u0 | u range from u0. |
u1 | to u1. |
v0 | v range from v0. |
v1 | to v1. |
surface_tol | tolerance allowed for the deviation from the plane to the surface. |
angle | angle allowed for the normal of the plane and the normals of the surface. |
plane | The plane will be output. |
width | The width and the height of the plane that include all the data. |
height | for the surface point to map onto the plane. |
|
virtual |
Triangulate this object(MGShell, MGFace, or MGSurface is the target).
MGFSurfaceを実装しています。
|
pure virtual |
Return the surface type.
面のTypeを返却する。
MGSBRep, MGRSBRep, MGPlane, MGSphere, MGCylinder, MGBSumSurfで実装されています。
|
virtual |
Compute unit normal vector at uv.
MGFSurfaceを実装しています。
|
virtual |
Compute unit normal vector at uv.
MGFSurfaceを実装しています。
|
inlinevirtual |
MGGeometryを再実装しています。
MGSBRep, MGRSBRep, MGPlane, MGCylinder, MGSphere, MGBSumSurf, MGPlaneImageで再実装されています。
|
protectedvirtual |
メンバデータを書き込む関数 戻り値boolは正常に書き込みが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGGeometryを再実装しています。
MGSBRep, MGPlane, MGRSBRep, MGCylinder, MGSphere, MGBSumSurf, MGPlaneImageで再実装されています。
|
friend |
Update lineb so as to have the tangent tan for start or end according to ngtan.
ngtan | Return value of isect_start_tan, indicates which end be adjusted. =1: start tangent, =2:end tangent, =3:both tangent. |
tau | data point abcissa. |
point | data point ordinate. |
lineb | line b-rep obtained so far. tangent adjusted new B-rep will be output. |
tan | accurate tangent data obtained by isect_start_tan. |
|
friend |
Check if the intersection line lineb's start and end tangent vectors are accurate enough. If they do not have enough accuracy, isect_start_tan returns which end did not have the accuracy. 1:start, 2:end, 3:start and end. If both ends had enough accuracy, returns 0.
sf1 | Surface 1. |
sf2 | Surface 2. |
lineb | the intersection line. |
Tse | If an end had not the accuracy, accurate tangent will be output. Tse[0]:start, Tse[1]:end. |