7 #include "mg/drawParam.h"
8 #include "mg/Position.h"
9 #include "mg/Unit_vector.h"
10 #include "mg/Surface.h"
66 const double* root_point=0
156 int SubordinateEntitySwitch=0
163 std::ostream&
out(std::ostream &)
const;
168 void abcd(
double g[4])
const;
197 void change_root_point(
227 double distance(
const MGPosition& point)
const;
235 )
const{drawWirePlane(vbo,span_length,line_density,
mgVBO::WIRE);};
266 )
const{
return eval(uv.
ref(0),uv.
ref(1),ndu,ndv);}
287 bool in_range(
double u,
double v)
const{
return 1;};
408 )
const{
return false;};
417 )
const{
return false;};
636 std::string
whoami()
const{
return "Plane";};
713 virtual MGBox* compute_box()
const;
716 void MGPlane::get_uv_display_vector(
755 double du,
double dv,
768 double& du,
double& dv,
788 int offset_div_num()
const;
795 assert(
false);
return 0;
virtual MGSBRep * surf1D(const MGPlane &pl) const =0
virtual MGVector eval(double u, double v, int ndu=0, int ndv=0) const =0
Evaluate surface data.
MG_DLL_DECLR const MGBox mgNULL_BOX
virtual MGSurface & operator=(const MGSurface &gel2)
Definition: Surface.h:74
virtual const MGKnotVector & knot_vector_v() const =0
Returns the v knot vector.
virtual void ReadMembers(MGIfstream &buf)
virtual const MGKnotVector & knot_vector_u() const =0
Returns the u knot vector.
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 void split(double param, bool is_u, MGPvector< MGFSurface > &surfaces) const
split this fsurface at the parameter param.
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
bool in_range(double u, double v) const
Test if the parameter(u,v) is in this surface's parameter range.
Definition: Plane.h:287
virtual std::ostream & out(std::ostream &ostrm) const
Output virtual function.
MGPlane is infinite plane in 3D space.
Definition: Plane.h:38
MGTransf represents a transformation of a space dimension.
Definition: Transf.h:35
virtual bool operator<(const MGGel &gel2) const =0
MGCylinder is a Cylinder in 3D space.
Definition: Cylinder.h:37
Is a container of one intersection of two curves.
Definition: CCisect.h:24
virtual MGCurve * isect_incr_pline(const MGPosition &uv, int kdt, double du, double dv, double &u, double &v, int incr=0) const =0
virtual int out_to_IGES(MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
Definition: Gel.h:93
virtual MGPvector< MGCurve > skeleton_at_knots() const
Obtain all the parameter curves at knots of u and v knot vector.
virtual void WriteMembers(MGOfstream &buf) const
virtual MGBox box_limitted(const MGBox &uvrange) const =0
Return minimum box that includes limitted surface by uvrange.
virtual MGSurface & exchange_uv()=0
Exchange parameter u and v.
MGPSRELATION
Definition: MGCL.h:131
MGPosition range(const MGPosition &uv) const
Definition: Plane.h:574
Plane. 平面
Definition: MGCL.h:175
virtual int isect_guess_straight(const MGStraight &sl, double ti, const MGPosition &uvi, double &t, MGPosition &uv) const
virtual MGSURFACE_TYPE type() const
Definition: Plane.h:617
virtual long identify_type() const =0
Return This object's typeID.
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
virtual MGPosition center() const
Obtain ceter coordinate of the geometry.
Definition: Plane.h:178
virtual int sdim() const =0
Return the surface type.
virtual MGPosition param(const MGPosition &) const
Return surface parameter value of a point on the surface.
virtual MGPosition perimeter_uv(int i, double t) const
Construct perimeter i's (u,v) parameter position.
MGLBRep is a class for B-SPline representation.
Definition: LBRep.h:41
virtual double param_error_u() const
virtual MGSSisect_list isect(const MGSurface &srf2) const =0
Surface and Surface intersection.
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.
Vector of a general n space dimension.
Definition: Vector.h:26
virtual void shade(mgVBO &vbo, const MGDrawParam ¶, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const
Shade the object in world coordinates.
Definition: Plane.h:247
Defines a Box of any space dimendion.
Definition: Box.h:34
virtual bool on(const MGPosition &P, MGPosition &) const
Test if point P is ont the surface or not.
virtual MGCSisect_list isect_withC1LB(const MGLBRep &lb) const
Compute intersections with MGLBRep lb that does not have C0 continuity in it.
Define MGBSumCurve Class(Boolean sum curve of three curves).
Definition: BSumCurve.h:28
MGSurface & operator*=(double scale)=0
double distance() const
Definition: Plane.h:223
MGSurface & operator-=(const MGVector &v)=0
Defines parameters to draw MGObject, maily to approximate by lines and facets.
Definition: drawParam.h:53
virtual MGSurface * clone() const =0
Construct new surface object by copying to newed area.
MGFace is a trimmed surface.
Definition: Face.h:51
virtual void drawWire(mgVBO &vbo, double span_length, int line_density=1) const
Definition: Plane.h:231
double span_length_wire() const
Definition: drawParam.h:93
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.
bool operator!=(const MGGel &gel2) const
Definition: Plane.h:150
virtual bool flat(const MGBox &uvbox, double tol, int &direction, MGPosition &P, MGUnit_vector &N) const
MGGel is an abstract class which represents a group element.
Definition: Gel.h:53
MGStraight is a curve of any space dimension, represent a straight line.
Definition: Straight.h:49
virtual MGCSisect_list isectSl(const MGStraight &sl, const MGBox &uvbox=mgNULL_BOX) const
Intersection of Surface and a straight line.
virtual void display_arrows(mgSysGL &sgl) const
MGSSisect represents one intersection line of two surfaces.
Definition: SSisect.h:29
virtual MGSurface * part(const MGBox &bx, int multiple=0) const =0
Compute part of the surface limitted by the parameter range bx.
One Intersection of curve and surface.
Definition: CSisect.h:26
MG_DLL_DECLR MGVector operator*(const MGVector &v, const MGMatrix &m)
virtual void isect_inner_dt(int n, const MGPosition &uvnow, double &du, double &dv, int &kdt, double acuRatio=1.) const
Definition: Surface.h:1199
virtual int isect_order() const =0
Represent a positional data.
Definition: Position.h:28
MGSurface is an abstract class of 3D surface.
Definition: Surface.h:54
int intersect_dnum_u() const
Definition: Plane.h:293
MGPlane & change_range(int is_u, double t1, double t2)
Definition: Plane.h:190
MGSurface & operator+=(const MGVector &v)=0
Object transformation.
MGSSisect_list defines linked list of MGSSisect.
Definition: SSisect_list.h:26
MGCSisect_list defines linked list of MGCSisect.
Definition: CSisect_list.h:22
Defines Knot vector of B-Representation.
Definition: KnotVector.h:28
ELEMENT_TARGET
Definition: VBO.h:84
virtual double param_e_v() const
Definition: Plane.h:433
Defines Boolean sum surface.
Definition: BSumSurf.h:26
bool on_a_perimeter(double &u, double &v, int &perim_num) const
Definition: Plane.h:404
virtual MGPvector< MGCurve > skeleton(int density=1) const
virtual MGCSisect_list isect_with_noCompoSC(const MGSurfCurve &scrv) const
isect with SurfCurve whose m_curve is not a MGTrimmedCurve of MGCompositeCurve.
virtual int project(const MGCurve &crv, MGPvector< MGCurve > &vec_crv_uv, MGPvector< MGCurve > &vec_crv, const MGVector &vec=mgNULL_VEC) const
virtual MGPosition closest(const MGPosition &point) const
Compute the closest point parameter value (u,v)of this surface from a point.
virtual std::auto_ptr< MGSurface > offset_c1(double ofs_value, int &error) const
C1 continuous Surface offset.
Defines BPoint seq of a space dimension and of a capacity.
Definition: BPointSeq.h:38
MGVector eval(const MGPosition &uv, int ndu=0, int ndv=0) const
Evaluate surface data.
Definition: Plane.h:262
MGSphere is a Sphere in 3D space.
Definition: Sphere.h:42
virtual void negate()
Negate direction of surface.
Definition: Surface.h:730
VIEWMODE
Definition: MGCL.h:271
MGPosition m_root_point
Definition: Plane.h:692
bool in_range(const MGPosition &uv) const
Definition: Plane.h:288
MGOfstream is a class to serialize all of the subclasses of MGGel.
Definition: Ofstream.h:31
Defines Rational Line B-Representation.
Definition: RLBRep.h:32
int intersect_dnum_v() const
Definition: Plane.h:294
virtual int perimeter_num() const
Return how many perimeters this surface has.
Definition: Plane.h:465
MGPosition_list provides a list of Positions.
Definition: Position_list.h:27
virtual bool operator==(const MGGel &gel2) const =0
comparison
virtual double knot_u(int i) const
Access to i-th element of u knot.
Definition: Surface.h:691
virtual double param_error() const
Obtain parameter space error.
virtual MGCurve * perimeter_curve(int i) const
Definition: Plane.h:462
MGOgesIfstream write out to *.iges file, transforming MGCL objects to IGES objects.
Definition: IgesOfstream.h:26
container_type::iterator iterator
Definition: Position_list.h:33
virtual MGSurface & change_dimension(int sdim, int start1=0, int start2=0)=0
Changing this object's space dimension.
virtual double param_e_u() const
Return ending parameter value.
Definition: Plane.h:432
Defines Surface B-Representation of rational form.
Definition: RSBRep.h:38
virtual double param_s_u() const
Return starting parameter value.
Definition: Plane.h:440
virtual MGBox param_range() const
Return parameter range.
const MGPosition & root_point() const
Definition: Plane.h:593
Defines Surface B-Representation, that is , B-Spline surface.
Definition: SBRep.h:48
bool on_the_perimeter(int perim_num, double u, double v) const
Definition: Plane.h:413
MGEllipse is a class to define an ellipse of 2D or 3D.
Definition: Ellipse.h:38
virtual double param_s_v() const
Definition: Plane.h:441
double ref(int i) const
Definition: Position.h:304
virtual MGPosition_list perps(const MGPosition &P) const
Return all foots of perpendicular straight lines from P.
MGSURFACE_TYPE
Surface type(曲面の種類).
Definition: MGCL.h:173
const MGUnit_vector & normal() const
Definition: Plane.h:372
virtual int isect_area_length() const
Definition: Surface.h:1161
const double mgInfiniteVal
Definition: MGCL.h:107
mgSysGL is a class to provide a facility to draw temporal pictures.
Definition: sysGL.h:26
OpenGL 4 用描画のためのクラス, in other words, display list.
Definition: VBO.h:76
virtual void make_display_list(MGCL::VIEWMODE vmode=MGCL::DONTCARE) const
Make a display list of this gel.
virtual double param_error_v() const
virtual int isect_guess(const MGCurve &crv, const MGPosition &uvi, double ti, MGPosition &uv, double &t) const
MGVector normal(const MGPosition &uv) const
Compute normal vector(not unit) at uv.
Definition: Plane.h:371
const MGVector & v_deriv() const
Definition: Plane.h:625
bool operator!=(const MGPlane &gel2) const
Definition: Plane.h:151
Define a unit vector, is a MGVector.
Definition: Unit_vector.h:17
MGVector normal(double u, double v) const
Return the normal of the plane, 平面の法線を返却する.
Definition: Plane.h:370
virtual double knot_v(int i) const
Access to i-th element of v knot.
Definition: Surface.h:694
const MGVector & u_deriv() const
Definition: Plane.h:621
virtual MGCurve * parameter_curve(int is_u, double x) const =0
Compute parameter curve.
MGSurfCurve is a curve on a surface.
Definition: SurfCurve.h:43
friend class MGPlane
Definition: Surface.h:1306
MGMatrix is a matix of m by m, where m is the space dimension.
Definition: Matrix.h:30
std::string whoami() const
Definition: Plane.h:636