MGCL V10
V10
MGCL V10
|
Defines Surface B-Representation, that is , B-Spline surface. [詳解]
公開メンバ関数 | |
MGSBRep () | |
Default constructor(dummy surface brep). [詳解] | |
MGSBRep (const MGSPointSeq &vertex, const MGKnotVector &tu, const MGKnotVector &tv) | |
MGSBRep (const MGSPointSeq &points, int orderu=4, int orderv=4) | |
MGSBRep (const MGNDDArray &utau, const MGNDDArray &vtau, const MGSPointSeq &points, const MGKnotVector &tu, const MGKnotVector &tv) | |
MGSBRep (const MGSBRepTP &tp, const MGNDDArray &utau, const MGNDDArray &vtau, const MGVector uvec[4], const MGVector vvec[4], const MGSPointSeq &points) | |
MGSBRep (MGSBRepEndC &endc, const MGNDDArray &utaui, const MGNDDArray &vtaui, const MGSPointSeq &value) | |
MGSBRep (MGSBRepEndC &endc, int orderu, int orderv, const MGNDDArray &utaui, const MGNDDArray &vtaui, const MGSPointSeq &value) | |
MGSBRep (MGSBRepEndC &endc, const MGNDDArray &utaui, const MGNDDArray &vtaui, const MGSPointSeq &value, const MGKnotVector &tu, const MGKnotVector &tv) | |
MGSBRep (const MGLBRep &lbrep, const MGUnit_vector &uvec, double start_dist, double end_dist) | |
MGSBRep (const MGNDDArray &utau, const MGNDDArray &vtau, const MGSPointSeq &value, int orderu=4, int orderv=4) | |
MGSBRep (const MGStraight &st, const MGUnit_vector &uvec, double start_dist, double end_dist) | |
MGSBRep (const MGNDDArray &tau, const std::vector< MGLBRep * > &lines, const MGLBRep *deriS, const MGLBRep *deriE) | |
MGSBRep (const MGSBRep &old_brep, const MGKnotVector &ut, const MGKnotVector &vt, int &error) | |
MGSBRep (const MGNDDArray &utau, const MGNDDArray &vtau, const MGSPointSeq &points, const MGKnotVector &tu, const MGKnotVector &tv, const MGSPointSeq &weight) | |
Obtain Surface B-Rep by Least square approximation. [詳解] | |
MGSBRep (const MGNDDArray &utau, const MGNDDArray &vtau, const MGSPointSeq &points, const MGSPointSeq &dp, double deviation) | |
MGSBRep (const MGCurve *edge_crvl[4], const MGCurve &blendCrvU, const MGCurve &blendCrvV, const MGSBRepTP &tp, int &error) | |
MGSBRep (MGPvector< MGLBRep > &edges, int &error, const MGCurve *blendCrvU=0, const MGCurve *blendCrvV=0) | |
MGSBRep (const MGCurve *edge_crvl[4], const MGSBRepTP &tp, int &error, const double *alpha=0) | |
MGSBRep (bool along_u, const MGPvector< MGLBRep > &perimeters) | |
MGSBRep (const MGSBRep &old_brep, const MGKnotArray &uknots, const MGKnotArray &vknots) | |
Gets new B-Rep by adding knots to an original B-Rep. [詳解] | |
MGSBRep (const MGSBRep &brep1, int which1, int continuity, const MGSBRep &brep2, int which2, int opposite) | |
MGSBRep (const MGBox &uvrange, const MGSBRep &old_brep, int multiple=0) | |
MGSBRep (int dim, const MGSBRep &sbrep, int start1=0, int start2=0) | |
MGSBRep (const MGPlane &plane, const MGBox &prange) | |
Construct a Surface B-Rep (order = 2 ) from Plane and Parameter ranges. [詳解] | |
MGSBRep (const std::vector< const MGCurve * > &curves, bool direction_adjustment=true) | |
MGSBRep (const MGPvector< MGCurve > &curves, bool direction_adjustment=true) | |
MGSBRep & | operator= (const MGGel &gel2) |
MGSBRep & | operator= (const MGSBRep &gel2) |
MGSBRep | operator+ (const MGVector &) const |
MGSBRep | operator- (const MGVector &) const |
MGSBRep | operator* (double) const |
MGSBRep | operator* (const MGMatrix &) const |
MGSBRep | operator* (const MGTransf &) const |
MGSBRep & | operator+= (const MGVector &v) |
Object transformation. [詳解] | |
MGSBRep & | operator-= (const MGVector &v) |
MGSBRep & | operator*= (double scale) |
MGSBRep & | operator*= (const MGMatrix &mat) |
MGSBRep & | operator*= (const MGTransf &tr) |
bool | operator== (const MGSBRep &gel2) const |
Comparison of two objects. [詳解] | |
bool | operator< (const MGSBRep &gel2) const |
bool | operator== (const MGGel &gel2) const |
comparison [詳解] | |
bool | operator< (const MGGel &gel2) const |
bool | operator!= (const MGGel &gel2) const |
bool | operator!= (const MGSBRep &gel2) const |
bool | operator== (const MGRSBRep &gel2) const |
int | bdim_u () const |
Returns B-Rep Dimension of u. [詳解] | |
int | bdim_v () const |
Returns B-Rep Dimension of v. [詳解] | |
MGBox | box_limitted (const MGBox &uvrange) const |
Compute minimum box that includes the linitted parameter range surface. [詳解] | |
MGSBRep & | change_dimension (int sdim, int start1=0, int start2=0) |
Changing this object's space dimension. [詳解] | |
MGSBRep & | change_range (int is_u, double t1, double t2) |
double & | coef (int i, int j, int k) |
Access to (i,j)th element of coef(left-hand side version). [詳解] | |
double | coef (int i, int j, int k) const |
Access to (i,j)th element of coef(right-hand side version). [詳解] | |
MGVector | coef (int i, int j) const |
Extract (i,j,k) elements for 0<=k<sdim() as a vector. [詳解] | |
const double * | coef_data (int i=0, int j=0, int k=0) const |
Returns a pointer to the surface b-coef data. [詳解] | |
int | continuity (const MGSBRep &brep2, int &which1, int &which2, int &opposite, double &ratio) const |
MGSBRep * | clone () const |
MGSBRep * | copy_change_dimension (int sdim, int start1=0, int start2=0) const |
void | display_control_polygon (mgSysGL &sgl) const |
Display control polygons using mgVBO::MGDrawPointSeq(sp) [詳解] | |
int | divide_multi_knot (MGPvector< MGSurface > &srfl) const |
MGVector | eval (double u, double v, int ndu=0, int ndv=0) const |
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 |
void | eval_all (double u, double v, int ndu, int ndv, double *deriv) const |
MGSurface & | exchange_uv () |
Exchange parameter u and v. [詳解] | |
MGSBRep & | extend (int perimeter, double param, double length, double dk=0.) |
long | identify_type () const |
Return This object's typeID. [詳解] | |
bool | in_range (double u, double v) const |
Test if input parameter value is inside parameter range of the surface. [詳解] | |
bool | in_range (const MGPosition &uv) const |
MGCSisect_list | isect (const MGCurve &curve) const |
MGCSisect_list | isect (const MGStraight &sl) 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 |
double & | knot_u (int i) |
Access to i-th element of u knot //(right-hand side version) [詳解] | |
double | knot_u (int i) const |
double & | knot_v (int i) |
double | knot_v (int i) const |
const double * | knot_data_u () const |
Returns a pointer to the u knot vector data. [詳解] | |
const double * | knot_data_v () const |
Returns a pointer to the v knot vector data. [詳解] | |
const MGKnotVector & | knot_vector_u () const |
Returns the u knot vector. [詳解] | |
MGKnotVector & | knot_vector_u () |
const MGKnotVector & | knot_vector_v () const |
Returns the v knot vector. [詳解] | |
MGKnotVector & | knot_vector_v () |
bool | less_than (int i, const MGPosition &uv1, const MGPosition &uv2) const |
MGSBRep & | limit (const MGBox &uvrange) |
MGSBRep & | move (int move_kind_u, int move_kind_v, const MGPosition &move_point_param, const MGPosition &to_point, const MGPosition fix_point[2]) |
void | negate (int is_u) |
Change direction of the surface. [詳解] | |
MGPosition | negate_param (const MGPosition &uv, int is_u=1) const |
int | order_u () const |
Returns the B-Rep order(u-direction). [詳解] | |
int | order_v () const |
Returns the B-Rep order(v-direction). [詳解] | |
MGPosition | param_e () const |
Return ending parameter value. [詳解] | |
double | param_e_u () const |
Return ending parameter value. [詳解] | |
double | param_e_v () const |
MGCurve * | parameter_curve (int is_u, double x) const |
MGLBRep | parameter_line (int is_u, double x, int nderiv=0) const |
Compute parameter line. [詳解] | |
MGPosition | param_s () const |
Return starting parameter value. [詳解] | |
double | param_s_u () const |
Return starting parameter value. [詳解] | |
double | param_s_v () const |
MGSBRep * | part (const MGBox &uvbx, int multiple=0) const |
MGLBRep | perimeter (int i) const |
int | perimeter_num () const |
Return how many perimeters this surface has. [詳解] | |
int | planar (MGPlane &plane, double &deviation) const |
int | planar (const MGBox &uvbox, double tol, int *divideU=0) const |
std::auto_ptr< MGSBRep > | rebuild (int how_rebuild=1, int parameter_normalization=2, double tol=-1., int *order=0) const |
int | reduce (int is_u, int ndec) |
MGSBRep & | refine (const MGKnotVector &uknot, const MGKnotVector &vknot) |
void | remove_knot () |
int | remove_knot_one (double line0, int id, double &tol, bool u_knot=true) |
int | sdim () const |
Returns the space dimension. [詳解] | |
void | shrink_to_knot (const MGBox &uvbx, int multiple=0) |
const MGSPointSeq & | surface_bcoef () const |
Returns the B-coef's. [詳解] | |
MGSPointSeq & | surface_bcoef () |
Returns the B-coef's. [詳解] | |
MGSURFACE_TYPE | type () const |
MGSurface & | unlimit () |
int | out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const |
IGES output function. PD128(NURBS Surface). [詳解] | |
std::ostream & | out (std::ostream &) const |
Debug Function. [詳解] | |
std::string | whoami () const |
基底クラス MGSurface に属する継承公開メンバ関数 | |
MGSurface (void) | |
Void Constructor. 初期化なしでオブジェクトを作成する。 [詳解] | |
MGSurface (const MGSurface &srf) | |
Copy Constructor. [詳解] | |
virtual | ~MGSurface () |
virtual MGSurface & | operator= (const MGSurface &gel2) |
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(). [詳解] | |
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 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. [詳解] | |
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. [詳解] | |
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 |
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. [詳解] | |
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. [詳解] | |
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). [詳解] | |
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 |
MGSSisect_list | isect (const MGFace &f) const |
MGSSisect_list | isect (const MGFSurface &fsurf) const |
MGHHisect_vector | isect (const MGShell &shl) const |
Intersection. [詳解] | |
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 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. [詳解] | |
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. [詳解] | |
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 |
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_span () const |
Compute square of parameter span length from (u.min, v.min) to (u.max, v.max). [詳解] | |
virtual MGCurve * | perimeter_curve (int i) const |
Retrieve perimeter i of this surface. [詳解] | |
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 MGSurface & | rotate_self (const MGVector &vec, double angle, const MGPosition &origin=mgORIGIN) |
Rotate the surface around the straight line. [詳解] | |
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. [詳解] | |
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 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 に属する継承公開メンバ関数 | |
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 に属する継承公開メンバ関数 | |
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). [詳解] | |
基底クラス MGGel に属する継承公開メンバ関数 | |
virtual | ~MGGel () |
Virtual Destructor. [詳解] | |
virtual bool | operator> (const MGGel &gel2) 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_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 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 |
限定公開メンバ関数 | |
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 に属する継承限定公開メンバ関数 | |
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 | 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 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. [詳解] | |
基底クラス MGGeometry に属する継承限定公開メンバ関数 | |
MGGeometry & | set_geometry (const MGGeometry &geo2) |
Assignment. [詳解] | |
virtual void | update_mark () |
Mark this as updated. [詳解] | |
基底クラス MGObject に属する継承限定公開メンバ関数 | |
MGObject & | set_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 |
カーブを折れで分割して行い、後で接続する [詳解] | |
フレンド | |
MG_DLL_DECLR friend MGSBRep | operator* (double scale, const MGSBRep &sb) |
MG_DLL_DECLR friend void | build_SBRep_1direction (MGSBRepEndC &endc, const MGNDDArray &utaui, const MGNDDArray &vtaui, const MGSPointSeq &value, const MGKnotVector &tu, const MGKnotVector &tv, MGSBRep &brep, int &error) |
その他の継承メンバ | |
基底クラス MGGeometry に属する継承限定公開変数類 | |
MGBox * | m_box |
基底クラス MGAttribedGel に属する継承限定公開変数類 | |
std::auto_ptr< mgVBO > | m_dlistName |
display name if m_dlistName!=0; [詳解] | |
Defines Surface B-Representation, that is , B-Spline surface.
MGSBRep is a tensor product surface representation of MGLBRep. It has: (1) Surface control polygon MGSPointSeq surface_bcoef. (2) U direciton knot vector MGKnotVector uknot. (3) V direction knot vector MGKnotVector vknot.
MGSBRep::MGSBRep | ( | ) |
Default constructor(dummy surface brep).
MGSBRep::MGSBRep | ( | const MGSPointSeq & | vertex, |
const MGKnotVector & | tu, | ||
const MGKnotVector & | tv | ||
) |
Construct Surface B-rep by providing raw data of Surface B-Rep. ***** This is the fundamental constructor.*****
vertex | Control Vertex of Surface B-Rep |
tu | knot vector of u-direction |
tv | knot vector of v-direction |
|
explicit |
Construct Surface B-rep by intepolation from Point data only. When points are illegal(e.g. same points are input), order will be 2 and this surface B-coefficients are input points.
points | Point seq data |
orderu | Order of u-direction |
orderv | Order of v-direction |
MGSBRep::MGSBRep | ( | const MGNDDArray & | utau, |
const MGNDDArray & | vtau, | ||
const MGSPointSeq & | points, | ||
const MGKnotVector & | tu, | ||
const MGKnotVector & | tv | ||
) |
Construct Surface B-rep of any order number by interpolation from data point, point data , and knot vector. When illegal data is input(illegal knot vector tu for uta), order will be 2 and this surface B-coefficients are input points.
utau | Data point abscissa of u-direction |
vtau | Data point abscissa of v-direction |
points | Point seq data |
tu | knot vector of u-direction |
tv | knot vector of v-direction |
MGSBRep::MGSBRep | ( | const MGSBRepTP & | tp, |
const MGNDDArray & | utau, | ||
const MGNDDArray & | vtau, | ||
const MGVector | uvec[4], | ||
const MGVector | vvec[4], | ||
const MGSPointSeq & | points | ||
) |
Construct Surface B-rep of order 4 by interpolation from Point data and tangent plane end condition. Inner point must be homogeneous, should not include first derivative inf.
tp | Tangent Planeend condition of Tangent Plane |
utau | Data point of u-direction |
vtau | Data point of v-direction |
uvec | Tangent vector of u-direction for v=min and v=max boundary line. uvec[0], uvec[1]: start and end of v=min line uvec[2], uvec[3]: end and start of v=max line. |
vvec | Tangent vector of v-direction for u=min and u=max boundary line. vvec[0]:start of u=min line, vvec[1]:start of u=max line vvec[2]: end of u=max line, vvec[3]: end of u=min. It is allowed that uvec[i] or vvec[j] is null vector(i.e. sdim==0). When this is the case, it means no inf provided about the tangent vector. |
points | Data point ordinate |
MGSBRep::MGSBRep | ( | MGSBRepEndC & | endc, |
const MGNDDArray & | utaui, | ||
const MGNDDArray & | vtaui, | ||
const MGSPointSeq & | value | ||
) |
Construct Surface B-rep of order 4 by interpolation from Point data and end condition. Inner point may include first derivative inf if the corresponding data points are multiple. For perimeters, utaui and vtaui do not have multiplicity. However, if utaui or vtaui has multiplicity at inner point, this means 1st derivative data is provided for the associated value, i.e.: If utaui has multiplicity 2 as utaui(i)=utaui(i+1), value(i,.,.) is 1st derivative along u direction at utaui(i) and value(i+1,.,.) is positional data at utaui(i)(=utaui(i+1)). If utaui has multiplicity 3 as utaui(i)=utaui(i+1)=utaui(i+2), value(i,.,.) is 1st derivative along u direction at utaui(i)- , value(i+1,.,.) is positional data at utaui(i)(=utaui(i+1)), value(i+2,.,.) is 1st derivative along u direction at utaui(i)+. Maximum multiplicity allowed is 3. About vtaui, the same.
endc | Derivative Inf.end condition |
utaui | Data point of u-direction of value |
vtaui | Data point of v-direction of value |
value | Data point ordinate |
MGSBRep::MGSBRep | ( | MGSBRepEndC & | endc, |
int | orderu, | ||
int | orderv, | ||
const MGNDDArray & | utaui, | ||
const MGNDDArray & | vtaui, | ||
const MGSPointSeq & | value | ||
) |
Construct Surface B-rep of specified order by interpolation from Point data and end condition. Inner points must not include first derivative inf and the data points must not be multiple if the order is not 4.
endc | Derivative Inf.end condition |
orderu | order along u direction, |
orderv | order along v direction, must be greater than or equal to 4. |
utaui | Data point of u-direction of value |
vtaui | Data point of v-direction of value |
value | Data point ordinate |
MGSBRep::MGSBRep | ( | MGSBRepEndC & | endc, |
const MGNDDArray & | utaui, | ||
const MGNDDArray & | vtaui, | ||
const MGSPointSeq & | value, | ||
const MGKnotVector & | tu, | ||
const MGKnotVector & | tv | ||
) |
Construct Surface B-rep by interpolation from Point data and end condition with knot vector. This is a general version of: MGSBRep( ///Derivative Inf. MGSBRepEndC& endc, ///end condition const MGNDDArray& utaui, ///Data point of u-direction of value const MGNDDArray& vtaui, ///Data point of v-direction of value const MGSPointSeq& value ///Data point ordinate ); The difference is to provide or not knot vector tu and tv. (utaui(i),vtaui(j),value(i,j)) is one pair of data, for 0<=i<=utaui.lenght(), 0<=j<=vtaui.lenghth(). Knot vector tu and tv must satisfy Schoenberg-Whitney consdition, i.e. t(i)<tau(i)<t(i+k) for all i, where k=order. (t=tu, tau=utaui+multiplicity included at both ends according to endc, for udirection. About v, the same)
endc | end condition |
utaui | Data point of u-direction of value |
vtaui | Data point of v-direction of value |
value | Data point ordinate |
tu | knot vector of u-direction |
tv | knot vector of v-direction |
MGSBRep::MGSBRep | ( | const MGLBRep & | lbrep, |
const MGUnit_vector & | uvec, | ||
double | start_dist, | ||
double | end_dist | ||
) |
Construct Surface B-rep by sweep B-Rep and sweep length. The sweep surface is defined as: lbrep(say c(t)) is the rail and the straight line segments from C(t)+start_dist*uvec to C(t)+end_dist*uvec are the generatrix.
lbrep | Sweep crv. |
uvec | Sweep Direction. |
start_dist | distance to start edge. |
end_dist | distance to end edge. |
MGSBRep::MGSBRep | ( | const MGNDDArray & | utau, |
const MGNDDArray & | vtau, | ||
const MGSPointSeq & | value, | ||
int | orderu = 4 , |
||
int | orderv = 4 |
||
) |
Construct Surface B-rep of specified order by interpolation from Point data. This is an easy-to-version.
utau | Data point of u-direction of value |
vtau | Data point of v-direction of value |
value | Data point ordinate |
orderu | order along u direction. |
orderv | along v direction. |
MGSBRep::MGSBRep | ( | const MGStraight & | st, |
const MGUnit_vector & | uvec, | ||
double | start_dist, | ||
double | end_dist | ||
) |
Construct Surface B-rep by sweep Straight and sweep length. The sweep surface is defined as: st(say c(t)) is the rail and the straight line segments from C(t)+start_dist*uvec to C(t)+end_dist*uvec are the generatrix.
st | Sweep crv. |
uvec | Sweep Direction. |
start_dist | distance to start edge. |
end_dist | distance to end edge. |
MGSBRep::MGSBRep | ( | const MGNDDArray & | tau, |
const std::vector< MGLBRep * > & | lines, | ||
const MGLBRep * | deriS, | ||
const MGLBRep * | deriE | ||
) |
Construct Surface B-rep from lines and derivatives. Interpolation will be done only along one parameter direction, along v. tau provides data point sequence along v direction of surface (u,v) parameter configuration. deriS and deriE are used to provide the 1st derivative B-representation along the perimeter 0 and 2, may be null if 1st derivative B-rep is not provided. If derivative B-rep is provided, deriS and deriE must have the same knot configuration as the one of lines which makes u kont configuration of this surface (u,v) parameter. tau[i] is the parameter for lines[i].
MGSBRep::MGSBRep | ( | const MGSBRep & | old_brep, |
const MGKnotVector & | ut, | ||
const MGKnotVector & | vt, | ||
int & | error | ||
) |
Approximate an original B-Rep by a new knot configuration. The new knot config must be inside the range of the original B-Rep parameter. However new knots may be coarse or fine. Error indicates the contructor is successful(=0) or not(!=0). When error!=0, the original old_brep is copied to this.
old_brep | Original B-Rep. |
ut | knot vector of u-direction |
vt | knot vector of v-direction |
error | Error flag. Error is detected only when ut(=2) or vt(=112) is illegal. |
MGSBRep::MGSBRep | ( | const MGNDDArray & | utau, |
const MGNDDArray & | vtau, | ||
const MGSPointSeq & | points, | ||
const MGKnotVector & | tu, | ||
const MGKnotVector & | tv, | ||
const MGSPointSeq & | weight | ||
) |
Obtain Surface B-Rep by Least square approximation.
utau | Data point abscissa of u-direction |
vtau | Data point abscissa of v-direction |
points | Point seq data |
tu | knot vector of u-direction |
tv | knot vector of v-direction |
weight | Weight for each point(space dimension 1). weight(i,j,0) is the weight for points(i,j,.). When weight(i,j,0) is large compared with other weights, the deviation from the surface at (utau(i),vtau(j)) is small. |
MGSBRep::MGSBRep | ( | const MGNDDArray & | utau, |
const MGNDDArray & | vtau, | ||
const MGSPointSeq & | points, | ||
const MGSPointSeq & | dp, | ||
double | deviation | ||
) |
Obtain Surface B-Rep by Shoenberg and Reinch's smoothing function If dp(i,j,0) becomes bigger, deviation at (utau(i),vtau(j)) becomes bigger.
utau | Data point abscissa of u-direction |
vtau | Data point abscissa of v-direction |
points | Point seq data |
dp | Error estimate for each point(space dimension 1). |
deviation | Mean deviation of each point. |
MGSBRep::MGSBRep | ( | const MGCurve * | edge_crvl[4], |
const MGCurve & | blendCrvU, | ||
const MGCurve & | blendCrvV, | ||
const MGSBRepTP & | tp, | ||
int & | error | ||
) |
4本の境界線、ブレンド関数、接続面を与えて面を生成する。 境界線はvmin,umax,vmax,uminの順で、vmin,vmaxの向きをuminからumaxの方向に umin,umaxの向きをvminからvmaxの方向になっているものとする。境界線のノットベクトル をあわせるときの誤差はline_zero()を使用している。ブレンド曲線はパラメータ範囲0,1 で値域も0,1である。接続面(MGSBRepTP)のパラメータ範囲は各境界線と同じとする。 エラーコード: 0: 正常終了 -1: 境界線がC1連続でなかった -2: 接続面のパラメータ範囲が境界線と違った -3: 境界線のノットベクトルをあわせられなかった -4: 接続面のパラメータ範囲を変更できなかった -5: 点列が求まらなかった -6: 端末条件が求まらなかった -7: 面が生成できなかった
edge_crvl | 境界線リスト(vmin,umax,vmax,uminの順,辺番号0,1,2,3の順) |
blendCrvU | 空間次元1のu方向のブレンド曲線(パラメータ、値域ともに0,1) |
blendCrvV | 空間次元1のv方向のブレンド曲線(パラメータ、値域ともに0,1) |
tp | 接続面(パラメータ範囲は境界線と同じ) |
error | エラーコード |
MGSBRep::MGSBRep | ( | MGPvector< MGLBRep > & | edges, |
int & | error, | ||
const MGCurve * | blendCrvU = 0 , |
||
const MGCurve * | blendCrvV = 0 |
||
) |
Easy to use version of the above constructor. When blendCCrvU,V were null, straight line from 0. to 1. will be used.
edges | 境界線リスト(vmin,umax,vmax,uminの順,辺番号0,1,2,3の順) |
error | エラーコードが出力される(0:正常終了) |
blendCrvU | 空間次元1のu方向のブレンド曲線(パラメータ、値域ともに0,1) |
blendCrvV | 空間次元1のv方向のブレンド曲線(パラメータ、値域ともに0,1) |
MGSBRep::MGSBRep | ( | const MGCurve * | edge_crvl[4], |
const MGSBRepTP & | tp, | ||
int & | error, | ||
const double * | alpha = 0 |
||
) |
edge_crvl | 境界線リスト(vmin,umax,vmax,uminの順,辺番号0,1,2,3の順) |
tp | 接続面(パラメータ範囲は境界線と同じ) |
error | エラーコード |
alpha | derivative magnitude coefficients for perimeter i in alpha[i]. =1. is normal, if<1., curvature will be made large, and if>1. curvature will be made small. If alpha=null, all of the coefs are assumed to be 1. |
Generalized ruled surface construction. Build a surface by ruled surface method. That is, costruct a surface by sliding the blending curve(a tie curve of the rails) of perimeters 3 and 1 along perimeter 0 and 2(0 and 2 make the rail). Or by sliding the blending curve of perimeter 0 and 2 along perimeter 3 and 1(3 and 1 make the rail).
along_u | indicates which perimeters make a rail. if true, perimeter 0 and 2, if false, perimeter 3 and 1 make rail. |
perimeters | 境界線リスト(vmin,umax,vmax,uminの順,辺番号0,1,2,3の順) perimeters must be the same knot configuration along u(perimeter 0 and 2) and along v(perimeter 3 and1). |
MGSBRep::MGSBRep | ( | const MGSBRep & | old_brep, |
const MGKnotArray & | uknots, | ||
const MGKnotArray & | vknots | ||
) |
Gets new B-Rep by adding knots to an original B-Rep.
old_brep | Original B-Rep. |
uknots | Knots to add for u-direction |
vknots | Knots to add for v-direction. |
MGSBRep::MGSBRep | ( | const MGSBRep & | brep1, |
int | which1, | ||
int | continuity, | ||
const MGSBRep & | brep2, | ||
int | which2, | ||
int | opposite | ||
) |
Gets new B-Rep by connecting two B-Rep to one. The parameter (which1,continuity,which2,opposite) can be obtained by public function continuity.
brep1 | B-Rep 1. |
which1 | which perimeter of brep1. |
continuity | continuity. Must >=0. |
brep2 | B-Rep 2. |
which2 | which perimeter of brep2. |
opposite | Input if parameter direction of which2 is the same as which1 along common edge. If opposite is true, the direction is opposite. |
Obtain partial Surface B-Rep restricted by sub interval of u and v parameter range. If multiple==true(!=0), knot_u(i)=t1 and knot_u(n+i)=t2 for i=0,..., k-1 will be guaranteed. Here, n=bdim_u(), k=order_u(), t1=uvrange(0).low_point(), and t2=uvrange(0).high_point(). About knot_v(j), the same. Both u-range and v-range must be inside the range of old_brep. Gets new B-Rep by computing a part of the original. New one is exactly the same as the original except that it is partial.
uvrange | u and v parameter range. |
old_brep | Original B-Rep. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGSBRep::MGSBRep | ( | int | dim, |
const MGSBRep & | sbrep, | ||
int | start1 = 0 , |
||
int | start2 = 0 |
||
) |
Construct a Surface B-Rep by changing space dimension and ordering of coordinates.
dim | New space dimension. |
sbrep | Original Surface B-rep. |
start1 | Destination order of new Surface. |
start2 | Source order of original Surface. |
Construct a Surface B-Rep (order = 2 ) from Plane and Parameter ranges.
plane | Original Plane |
prange | parameter range of new Surface. |
MGSBRep::MGSBRep | ( | const std::vector< const MGCurve * > & | curves, |
bool | direction_adjustment = true |
||
) |
リブ曲線列から面を作成する 作成する面のノットベクトルはリブ曲線の向きをu,リブ列方向をvとする This constructor only generates MGSBRep even if curves are MGRLBRep of the same knot configuration. To avoid this, use createSurfaceFromRibs() that generates MGRSBRep when curves are MGRLBRep of the same knot configuration. Let v0=start parameter value, v1=terminate parameter value along v, then v=v0 const parameter line is curves[0], and v=v1 const parameter line is curves[n-1], where n=curves.size(). n must be greater or equal to 2. When n==2, the surface is a ruled surface(that is, this->order_u() is 2). When direction_adjustment=true, curves[i] directions are adjusted to line up to the same direciton as the curves[i-1]'s. When direction_adjustment=false, no curves of curves[i] are negated and the directions of curves[i] are the direcitons of ribs.
|
inlinevirtual |
Returns B-Rep Dimension of u.
自身の曲面の全体の面積を返却する。 Compute total surface area. double area () const; 与えられたパラメータ範囲の曲面の面積を返す。 Compute surface area limitted by parameter range box. double area(const MGBox& box) const;
MGSurfaceを再実装しています。
|
inlinevirtual |
Returns B-Rep Dimension of v.
MGSurfaceを再実装しています。
Compute minimum box that includes the linitted parameter range surface.
MGSurfaceを実装しています。
|
virtual |
Changing this object's space dimension.
sdim | new space dimension |
start1 | Destination order of new object. |
start2 | Source order of this object. |
MGSurfaceを実装しています。
|
virtual |
Change parameter range, be 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. |
MGSurfaceを実装しています。
|
virtual |
Construct new surface object by copying to newed area. User must delete this copied object by "delete".
MGSurfaceを実装しています。
|
inline |
Access to (i,j)th element of coef(left-hand side version).
|
inline |
Access to (i,j)th element of coef(right-hand side version).
|
inline |
Extract (i,j,k) elements for 0<=k<sdim() as a vector.
|
inline |
Returns a pointer to the surface b-coef data.
int MGSBRep::continuity | ( | const MGSBRep & | brep2, |
int & | which1, | ||
int & | which2, | ||
int & | opposite, | ||
double & | ratio | ||
) | const |
Compute continuity with brep2. Function's return value is: -1: G(-1) continuity, i.e. two surfaces are discontinuous. 0: G0 continuity, i.e. two surfaces are connected, but tangents are discontinuous 1: G1 continuity, i.e. two surfaces are connected, and tangents are also continuous. 2: G2 continuity, i.e. two surfaces are connected, and tangents and curvatures are also continuous. Reuturn value is the continuity.
brep2 | Input second SBRep |
which1 | Outputs which perimeter(which1) of this is |
which2 | connected to which(which2) of brep2. These are valid only when continuity>=0. |
opposite | Outputs if parameter direction of which2 is the same as which1 along common edge. If opposite is true, the direction is opposite. |
ratio | Ratio of 1st derivatives of the two surfaces will be returned. ratio= d2/d1, where d1=1st deriv of this and d2=of brep2 |
|
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. |
MGSurfaceを実装しています。
|
virtual |
Display control polygons using mgVBO::MGDrawPointSeq(sp)
MGGelを再実装しています。
|
virtual |
Evaluate right continuous ndu'th and ndv'th derivative data. Function's return value is (d(ndu+ndv)f(u,v))/(du**ndu*dv**ndv). ndu=0 and ndv=0 means positional data evaluation.
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. |
MGSurfaceを実装しています。
|
virtual |
Evaluate surface data.
uv | Parameter value of the surface. |
ndu | Order of derivative along u. |
ndv | Order of derivative along v. |
MGFSurfaceを実装しています。
|
virtual |
Evaluate right continuous surface data. Evaluate all positional data and 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) |
MGSurfaceを再実装しています。
void MGSBRep::eval_all | ( | double | u, |
double | v, | ||
int | ndu, | ||
int | ndv, | ||
double * | deriv | ||
) | const |
Evaluate all of derivative data (d(i+j)f(u,v))/(du**i*dv**j), for 0<=i<=ndu and 0<=j<=ndv.
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. |
deriv | Output. (d(i+j)f(u,v))/(du**i*dv**j) in deriv[r+j*dim+i*(ndv+1)*dim] for 0<=r<dim=sdim(). for 0<=i<=ndu and 0<=j<=ndv. deriv is an array of deriv[ndu+1][ndv+1][r], (d(i+j)f(u,v))/(du**i*dv**j) is returned in deriv[i][j][r]. |
|
virtual |
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. |
MGSurfaceを再実装しています。
|
virtual |
Return This object's typeID.
MGSurfaceを実装しています。
|
virtual |
Test if input parameter value is inside parameter range of the surface.
MGSurfaceを実装しています。
|
virtual |
MGFSurfaceを実装しています。
|
virtual |
Surface と Curve の交点を求める。 Compute curve and surface intersection point(s)
MGSurfaceを実装しています。
|
inline |
MGCSisect_list MGSBRep::isect | ( | const MGRLBRep & | curve | ) | const |
MGCSisect_list MGSBRep::isect | ( | const MGEllipse & | curve | ) | const |
MGCSisect_list MGSBRep::isect | ( | const MGLBRep & | curve | ) | const |
MGCSisect_list MGSBRep::isect | ( | const MGSurfCurve & | curve | ) | const |
MGCSisect_list MGSBRep::isect | ( | const MGBSumCurve & | curve | ) | const |
|
virtual |
Surface と Surface の交線を求める。 Surface and Surface intersection. Compute intersectio line(s) of two surface. Restriction:Currently if two surface do not have intersection on any of 4 perimeters, this function does not compute surface to surface intersection.
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
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. |
MGSurfaceを再実装しています。
|
inline |
Returns a pointer to the u knot vector data.
|
inline |
Returns a pointer to the v knot vector data.
|
inline |
Access to i-th element of u knot //(right-hand side version)
|
inlinevirtual |
Access to i-th element of u knot ( left-hand side version)
MGSurfaceを再実装しています。
|
inline |
Access to i-th element of v knot ( left-hand side version)
|
inlinevirtual |
Access to i-th element of v knot (right hand side version)
MGSurfaceを再実装しています。
|
inlinevirtual |
Returns the u knot vector.
MGSurfaceを実装しています。
|
inlinevirtual |
MGSurfaceを実装しています。
|
inlinevirtual |
Returns the v knot vector.
MGSurfaceを実装しています。
|
inlinevirtual |
MGSurfaceを実装しています。
|
virtual |
Compare two parameter values. If uv1 is less than uv2, return true. Comparison is done after prjected to i-th perimeter of the surface.
i | perimeter number. |
uv1 | 1st point in parameter. |
uv2 | 2nd. |
MGSurfaceを再実装しています。
自身に指定したパラメータ範囲のlimitをつける。 Update this by limitting the parameter range. uvrange is parameter value range of (umin, vmin) to (umax, vmax).
MGSBRep& MGSBRep::move | ( | int | move_kind_u, |
int | move_kind_v, | ||
const MGPosition & | move_point_param, | ||
const MGPosition & | to_point, | ||
const MGPosition | fix_point[2] | ||
) |
Modify the original Surface by moving move_point to to_point. fix_point can be applied according to move_kind. move_kind_u and _v mean as below for u and v direction: move_kind=1: Start and end perimeter of the surface are fixed. The surface is modified linearly so that move_point_param line is the maximum move. =2: The parameter line fix_point[0] is fixed and the other end of the move_point_param side is moved. In this case, maximum move is the end perimeter of the surface. =3: fix_point[0]<move_point_param<fix_point[1], and two parameter line fix_point[.] are fixed. The surface is modified linearly so that move_point_param point is the maximum move. otherwise: Two fix parameter line fix_point[.] are computed so that the modify range is the minimum. Other move is same as move_kind=3. Restriction: For the case move_kind=3, actual fix parameter line is wider than specified range. The range is the smallest one possible including fix_point[].
move_kind_u | Indicates how to move Surface for u direction. |
move_kind_v | Indicates how to move Surface for v direction. |
move_point_param | indicate object point to move by the (u,v) parameter value. |
to_point | destination point(x,y,z coordinates) of the abve source point. |
fix_point | (u,v) parameter value pair. |
|
virtual |
Change direction of the surface.
is_u | Negate along u-direction if is_u is ture, else along v-direction. |
MGSurfaceを実装しています。
MGPosition MGSBRep::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.
|
inline |
MGSBRep MGSBRep::operator* | ( | double | ) | const |
与えられたスケーリングで曲面の変換を行いオブジェクトを生成する。 Scaling.
与えられた変換で曲面の変換を行いオブジェクトを生成する。 Matrix transformation.
与えられた変換で曲面のトランスフォームを行いオブジェクトを生成する。 General transformation.
Object transformation.
MGSurfaceを実装しています。
bool MGSBRep::operator< | ( | const MGSBRep & | gel2 | ) | const |
Destructor ~MGSBRep(); ///We can use default destructor. Assignment. When the leaf object of this and srf2 are not equal, this assignment does nothing.
MGGelを再実装しています。
bool MGSBRep::operator== | ( | const MGSBRep & | gel2 | ) | const |
Comparison of two objects.
bool MGSBRep::operator== | ( | const MGRSBRep & | gel2 | ) | const |
|
inlinevirtual |
Returns the B-Rep order(u-direction).
MGSurfaceを再実装しています。
|
inlinevirtual |
Returns the B-Rep order(v-direction).
MGSurfaceを再実装しています。
|
virtual |
Debug Function.
MGSurfaceを再実装しています。
|
virtual |
IGES output function. PD128(NURBS Surface).
MGGelを再実装しています。
MGPosition MGSBRep::param_e | ( | ) | const |
Return ending parameter value.
|
virtual |
Return ending parameter value.
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
MGPosition MGSBRep::param_s | ( | ) | const |
Return starting parameter value.
パラメータ範囲を返す。 Return parameter range.
|
virtual |
Return starting parameter value.
MGSurfaceを実装しています。
|
virtual |
MGSurfaceを実装しています。
|
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. |
MGSurfaceを実装しています。
MGLBRep MGSBRep::parameter_line | ( | int | is_u, |
double | x, | ||
int | nderiv = 0 |
||
) | const |
Compute parameter line.
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. |
nderiv | Order of derivative. |
Compute part of the surface limitted by the parameter range uvbx. 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. Retured is newed object, must be deleted.
uvbx | Target parameter range. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGSurfaceを実装しています。
MGLBRep MGSBRep::perimeter | ( | int | i | ) | const |
Compute perimeter line B-Rep. i is perimeter number: =0: v=min line, =1: u=max line, =2: v=max line, =3: u=min line perimeter_curve returs newed object, must be deleted.
|
inlinevirtual |
Return how many perimeters this surface has.
MGSurfaceを実装しています。
int MGSBRep::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 is planar.
plane | Plane that might be closest to this. Plane is always output even if not planar. |
deviation | maximum deviation of this from the output plane. |
int MGSBRep::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.
uvbox | This surface parameter range. |
tol | maximum deviation allowed to regard the sub surface as a plane. |
divideU | Direction to subdivide will be output, if this was not planar, =1: u direction, =0: v direction. |
|
protectedvirtual |
メンバデータを読み込む関数 戻り値boolは正常に読み出しが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGSurfaceを再実装しています。
std::auto_ptr<MGSBRep> MGSBRep::rebuild | ( | int | how_rebuild = 1 , |
int | parameter_normalization = 2 , |
||
double | tol = -1. , |
||
int * | order = 0 |
||
) | const |
Rebuild this MGSBRep. Rebuild means: 1) Change the parameterization. 2) Remove the redundant surface B-coefficients within the tolerance, which is performed by remove_knots.
how_rebuild | intdicates how rebuild be done. =0: no approximation(only parameter change) !=0: approximated by non-rational spline(MGSBRep) with new knot configuration. |
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. When tol<=0., MGTolerance::line_zero() will be employed. |
order | order of the new MGSBRep, >=4 is recomended. order[0]:u-order, [1]:v-order. When order=0 is input, the original order is unchanged. |
int MGSBRep::reduce | ( | int | is_u, |
int | ndec | ||
) |
Change the B-Rep by decreasing B-Rep dimension by ndec. This is an approximation of the origimal B-Rep. Return value is error flag.
is_u | if true, reduce b-rep dimension of u-direction. |
ndec | Number of B-rep dimension to decrease |
MGSBRep& MGSBRep::refine | ( | const MGKnotVector & | uknot, |
const MGKnotVector & | vknot | ||
) |
Change an original B-Rep to new one with subdivided knot configuration. Knots t must be subdivided knots.
uknot | new knot of u-direction |
vknot | new knot of v-direction |
|
virtual |
ノット削除関数 トレランスはline_zeroを使用する。元のノットが細かいものほど削除しやすい removal knot. line_zero tolerance is used.
MGSurfaceを再実装しています。
int MGSBRep::remove_knot_one | ( | double | line0, |
int | id, | ||
double & | tol, | ||
bool | u_knot = true |
||
) |
uノットを一つ削除する 関数の戻り値は削除したノットの数
line0 | Tolerance allowed for the knot removal. When line0<=0., removal will be done uncoditionally. |
id | 削除しようとするノットの番号 |
tol | 削除後の誤差が出力される |
u_knot | 削除対象が(u,v)のいずれのknot vectorかを入力する =trueのとき、u-knot_vectorを削除 |
|
inlinevirtual |
Returns the space dimension.
MGSurfaceを実装しています。
|
virtual |
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 range. |
multiple | Indicates if start and end knot multiplicities are necessary. =0:unnecessary, !=0:necessary. |
MGSurfaceを再実装しています。
|
inline |
Returns the B-coef's.
|
inline |
Returns the B-coef's.
|
inlinevirtual |
Compute surface integral of the 1st two coordinates. (面積分)を求める。 This integral can be used to compute volume sorounded by the surface. double surface_integral(const MGBox&) const; 曲面のタイプをを返す。 Return the surface type.
MGSurfaceを実装しています。
|
inline |
limitをはずす。 Unlimit the parameter range. Return the same.
|
inlinevirtual |
MGSurfaceを再実装しています。
|
protectedvirtual |
メンバデータを書き込む関数 戻り値boolは正常に書き込みが出来ればtrue、失敗すればfalseになる ここでは処理対象となるデータメンバが無いので何も処理をしない。
MGSurfaceを再実装しています。
|
friend |
build_SBRep_1direction constructs MGSBRep brep, by interpolating only u-direction. Input (utaui, tu) will make brep's v direction parameter, and (vtaui, tv) will make udirection parameter. That is, u and v will be exchanged for output brep.
endc | end condition, only perimeter 3 and 1 are used. |
utaui | Data point of u-direction of value |
vtaui | Data point of v-direction of value |
value | Data point ordinate |
tu | knot vector of u-direction |
tv | knot vector of v-direction |
brep | constructed b-rep will be output |
error | Error flag. |
与えられたスケーリングで曲面の変換を行いオブジェクトを生成する。 Scaling.