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