59 const std::vector<double>& weights
147 double angle1,
double angle2
195 int parameter_normalization=0,
202 bool neglectMulti=
false
208 int bdim()
const{
return m_line.bdim();}
215 MGBox box_unlimit()
const;
223 m_line.change_range(t1,t2);
248 double coef(
int i,
int j)
const{
return m_line.coef(i,j);};
256 {
return m_line.coef_data(i,j);};
351 void (*moveto)(
int,
int),
352 void (*lineto)(
int,
int),
353 const double wind[4],
358 void (*moveto)(
float,
float),
359 void (*lineto)(
float,
float),
360 const double wind[4],
365 void (*moveto)(
double,
double),
366 void (*lineto)(
double,
double),
367 const double wind[4],
378 void (*moveto)(
int,
int),
379 void (*lineto)(
int,
int),
382 const double wind[4],
387 void (*moveto)(
float,
float),
388 void (*lineto)(
float,
float),
391 const double wind[4],
396 void (*moveto)(
double,
double),
397 void (*lineto)(
double,
double),
400 const double wind[4],
547 double&
knot(
int i){
return m_line.knot(i);}
551 double knot(
int i)
const{
return m_line.knot(i);}
554 const double*
knot_data()
const{
return m_line.knot_data();}
588 int non_rational()
const;
591 int order()
const{
return m_line.order();}
594 double param_e()
const{
return m_line.param_e();};
601 double param_s()
const{
return m_line.param_s();};
641 return m_line.reduce(ndec);
655 std::auto_ptr<MGRLBRep> rebuild_with_new_knot_configuration(
658 int parameter_normalization
672 int sdim()
const{
return m_line.sdim()-1;};
710 int SubordinateEntitySwitch=0
713 std::ostream&
out(std::ostream&)
const;
728 std::auto_ptr<MGCurve>
oneD(
741 std::string
whoami()
const{
return "RLBRep";};
751 MGBox* compute_box()
const;
757 double tstart,
double tend
774 int (*moveto)(...),
int (*lineto)(...),
776 const double wind[4],
787 int (*moveto)(...),
int (*lineto)(...),
789 const double wind[4],
MG_DLL_DECLR int MGRLBRep_ellipse_weight(const MGPosition &P0, const MGVector &T0, const MGPosition &P, const MGPosition &P2, const MGVector &T2, MGPosition &P1, double &w1)
virtual MGCurve & operator=(const MGCurve &gel2)
Assignment.
Definition: Curve.h:84
MGCurve & unlimit_end()
Definition: RLBRep.h:695
MGVector coef(int i) const
Definition: RLBRep.h:252
std::string whoami() const
Definition: RLBRep.h:741
virtual long identify_type() const =0
Return This object's typeID.
virtual void remove_knot()
Remove redundant knot, and reduce the b-rep dimension.
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
MGPlane is infinite plane in 3D space.
Definition: Plane.h:38
MGTransf represents a transformation of a space dimension.
Definition: Transf.h:35
virtual MGCurve * copy_change_dimension(int sdim, int start1=0, int start2=0) const =0
Construct new curve object by changing the original object's space dimension.
MGCylinder is a Cylinder in 3D space.
Definition: Cylinder.h:37
double param_normalize(double t) const
Definition: RLBRep.h:598
virtual int out_to_IGES(MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
Definition: Gel.h:93
int bdim() const
Returns NURBS Dimension.
Definition: RLBRep.h:208
virtual MGCParam_list perps(const MGPosition &P) const
Compute all foot points of the perpendicular line from point to the curve.
MGCurve & unlimit()
Definition: RLBRep.h:691
virtual void drawSE(mgVBO &vbo, double span_length, double t0, double t1) const
Draw this curve into vbo, approximating with polyline.
double param_s() const
Return starting parameter value.
Definition: RLBRep.h:601
virtual void update_mark()
Mark this as updated.
Definition: Curve.h:1173
virtual MGCurve & operator+=(const MGVector &v)=0
Object transformation.
double knot(int i) const
Definition: RLBRep.h:551
virtual MGCurve * clone() const =0
Construct new geometry object by copying to newed area.
virtual MGCurve & coordinate_exchange(int i, int j)=0
Exchange ordering of the coordinates.
MGRLBRep & change_order(int order)
Definition: RLBRep.h:238
virtual void eval_all(double, MGPosition &, MGVector &, MGVector &) const
Compute position, 1st and 2nd derivatives.
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
int order() const
Returns the order.
Definition: RLBRep.h:591
void negate()
Change direction of the line.
Definition: RLBRep.h:577
MGRLBRep & refine(const MGKnotVector &t)
Definition: RLBRep.h:646
void change_range(double t1, double t2)
Definition: RLBRep.h:219
MGLBRep is a class for B-SPline representation.
Definition: LBRep.h:41
B-Spline(MGRLBRep)
Definition: MGCL.h:148
Vector of a general n space dimension.
Definition: Vector.h:26
MGCurve & unlimit_start()
Definition: RLBRep.h:699
const MGLBRep & homogeneous() const
Return homogeneous Line B-Representation of the rational B-Spline.
Definition: RLBRep.h:481
MGBPointSeq & line_bcoef()
Definition: RLBRep.h:574
Defines a Box of any space dimendion.
Definition: Box.h:34
Define MGBSumCurve Class(Boolean sum curve of three curves).
Definition: BSumCurve.h:28
MGLBRep & homogeneous()
Definition: RLBRep.h:482
virtual MGCurve & limit(const MGInterval &rng)=0
Update this by limiting the parameter range of the curve.
virtual MGCurve * copy_limitted(const MGInterval &prange) const
Construct new curve object limitting the parameter range to prange.
MGGel is an abstract class which represents a group element.
Definition: Gel.h:53
virtual void ReadMembers(MGIfstream &buf)
メンバデータを読み出す関数.
MGCurve * copy_as_nurbs() const
Definition: RLBRep.h:308
virtual MGVector eval(double, int nderiv=0, int left=0) const =0
Evaluate n'th derivative data.
MGStraight is a curve of any space dimension, represent a straight line.
Definition: Straight.h:49
virtual MGCurve * part(double t1, double t2, int multiple=0) const =0
Compute part of this curve from parameter t1 to t2.
Interval of 1 dimension, i.e. MGInterval is a real line.
Definition: Interval.h:22
MGRLBRep()
Default(dummy) constructor.
Definition: RLBRep.h:42
MG_DLL_DECLR MGVector operator*(const MGVector &v, const MGMatrix &m)
virtual void approximate_as_LBRep(MGLBRep &lb, int ordr=0, int parameter_normalization=0, bool neglectMulti=false) const
Approximate this curve as a MGLBRep.
Represent a positional data.
Definition: Position.h:28
const double * coef_data(int i=0, int j=0) const
Returns a pointer to the line b-coef data.
Definition: RLBRep.h:255
MGSurface is an abstract class of 3D surface.
Definition: Surface.h:54
MGCURVE_TYPE type() const
Definition: RLBRep.h:687
MGCSisect_list defines linked list of MGCSisect.
Definition: CSisect_list.h:22
Defines Knot vector of B-Representation.
Definition: KnotVector.h:28
const MGBPointSeq & line_bcoef() const
Definition: RLBRep.h:570
Defines Boolean sum surface.
Definition: BSumSurf.h:26
virtual MGSurface * sweep(const MGUnit_vector &uvec, double start_dist, double end_dist) const =0
Return sweep surface from crv.
virtual MGCurve & operator-=(const MGVector &v)=0
double negate_param(double t) const
Obtain parameter value if this curve is negated by "negate()".
Definition: RLBRep.h:580
Defines BPoint seq of a space dimension and of a capacity.
Definition: BPointSeq.h:38
MGParam_Vector provides a list to store parameters of a curve.
Definition: CParam_list.h:18
MGSphere is a Sphere in 3D space.
Definition: Sphere.h:42
virtual void WriteMembers(MGOfstream &buf) const
メンバデータを書き込む関数.
Defines a list of MGCCisect(curve to curve intersection).
Definition: CCisect_list.h:20
virtual std::ostream & out(std::ostream &) const
Output virtual function.
virtual void extend(double length, bool start=false)=0
Extrapolate this curve by an (approximate) chord length.
virtual bool is_coplanar(const MGCurve &curve2, MGPlane &plane) const
Test if this cure is co-planar with the 2nd curve curve2.
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
virtual MGCurve & change_dimension(int sdim, int start1=0, int start2=0)=0
Changing this object's space dimension.
MGCURVE_TYPE
Curve type(曲線の種類).
Definition: MGCL.h:143
MGPosition_list provides a list of Positions.
Definition: Position_list.h:27
double coef(int i, int j) const
Definition: RLBRep.h:248
int reduce(int ndec)
Definition: RLBRep.h:637
virtual MGCurve & operator*=(double scale)=0
const MGKnotVector & knot_vector() const
Definition: RLBRep.h:558
MGOgesIfstream write out to *.iges file, transforming MGCL objects to IGES objects.
Definition: IgesOfstream.h:26
Defines Surface B-Representation of rational form.
Definition: RSBRep.h:38
virtual bool get_control_points(MGBPointSeq &cpoints) const
Extracts control points.
Definition: Curve.h:455
virtual bool operator==(const MGCompositeCurve &crv) const
Comparison.
double param_e() const
Return ending parameter value.
Definition: RLBRep.h:594
Defines Surface B-Representation, that is , B-Spline surface.
Definition: SBRep.h:48
double & coef(int i, int j)
Definition: RLBRep.h:244
virtual std::auto_ptr< MGCurve > oneD(const double g[4]) const =0
Obtain transformed 1D curve expression of this curve.
MGEllipse is a class to define an ellipse of 2D or 3D.
Definition: Ellipse.h:38
virtual int divide_multi(MGPvector< MGCurve > &crv_list, int multiplicity=-1) const
Divide this curve at the designated knot multiplicity point.
virtual bool operator<(const MGGel &gel2) const =0
virtual MGBox box_limitted(const MGInterval &) const =0
Return minimum box that includes the curve of parameter interval.
virtual MGCParam_list intersect_1D(double f, int coordinate=0) const
Compute intersection point of 1D sub curve of original curve.
Defines Array of Knots.
Definition: KnotArray.h:26
virtual MGCCisect_list isect(const MGCurve &curve2) const =0
Intersection of Curve and other geometry.
virtual int intersect_dnum() const =0
Provide divide number of curve span for function intersect.
mgSysGL is a class to provide a facility to draw temporal pictures.
Definition: sysGL.h:26
virtual bool is_planar(MGPlane &plane) const
Test if this cure is planar or not.
OpenGL 4 用描画のためのクラス, in other words, display list.
Definition: VBO.h:76
virtual void display_control_polygon(mgSysGL &sgl) const
Definition: Gel.h:194
double & knot(int i)
Definition: RLBRep.h:547
int sdim() const
Returns the space dimension.
Definition: RLBRep.h:672
Define a unit vector, is a MGVector.
Definition: Unit_vector.h:17
MGKnotVector & knot_vector()
Definition: RLBRep.h:562
MGSurfCurve is a curve on a surface.
Definition: SurfCurve.h:43
const double * knot_data() const
Returns a pointer to the knot vector data.
Definition: RLBRep.h:554
MGMatrix is a matix of m by m, where m is the space dimension.
Definition: Matrix.h:30