00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxCorbaBSplineCurve_idl
00011 #define HxCorbaBSplineCurve_idl
00012
00013 #include "HxCorbaPolyline2d.idl"
00014
00015 module HxCorba
00016 {
00017 enum BSplineType { CLOSED, OPEN, OPEN_REPEAT_END_POINTS };
00018
00019 interface BSplineCurve
00020 {
00021 BSplineType curveType();
00022
00023 long degree();
00024 double minT();
00025 double maxT();
00026 PointR2 C(in double t);
00027 Polyline2d sampleC(in long np);
00028 double length(in long np);
00029
00030 Polyline2d controlP();
00031 PointR2 center();
00032 long numP();
00033 PointR2 P(in long i);
00034 PointR2Seq allP();
00035 };
00036
00037 interface SampledBSplineCurve
00038 {
00039 BSplineCurve continuousCurve();
00040
00041 long nSamples();
00042
00043 Polyline2d CPoly();
00044 PointR2 C(in long i);
00045 PointR2Seq allC();
00046
00047 double length();
00048
00049 Polyline2d controlP();
00050 long numP();
00051 PointR2Seq allP();
00052 };
00053
00054 interface BSplineFactory
00055 {
00056 BSplineCurve makeUniformBSpline(in Polyline2d cp,
00057 in long degree);
00058 BSplineCurve makeInterpolatingBSpline(in Polyline2d cp);
00059
00060 SampledBSplineCurve makeUniformSampledBSpline(in Polyline2d cp,
00061 in long degree, in double distance);
00062 SampledBSplineCurve makeInterpolatingSampledBSpline(
00063 in Polyline2d cp, in double distance);
00064 };
00065 };
00066
00067 #endif //HxCorbaBSplineCurve_idl