00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxCorbaHistogram_idl
00011 #define HxCorbaHistogram_idl
00012
00013 #include "HxCorbaImageRep.idl"
00014
00015 module HxCorba
00016 {
00017 typedef sequence<double> BinDataSequence;
00018
00019 interface HistogramData
00020 {
00021 long dimensionality();
00022 long dimensionSize(in long dim);
00023 long nrOfBins();
00024
00025 double lowBin(in long dim);
00026 double highBin(in long dim);
00027 double binWidth(in long dim);
00028 double binToValue(in long bin, in long dim);
00029 long valueToBin(in double value, in long dim);
00030
00031 double get1(in long bin1);
00032 double get2(in long bin1, in long bin2);
00033 double get3(in long bin1, in long bin2, in long bin3);
00034
00035 double sum();
00036 double minVal();
00037 double maxVal();
00038 double maxValIndex(out long index);
00039
00040 BinDataSequence getDataDouble();
00041 };
00042
00043 struct HistogramMode { double x; double y; };
00044
00045 typedef sequence<HistogramMode> HistogramModeSeq;
00046
00047 interface Histogram : HistogramData
00048 {
00049 Histogram smooth(in double sigma);
00050 HistogramModeSeq modes();
00051 Histogram normalize(in double weight);
00052 double intersection(in Histogram h);
00053 double chiSquare(in Histogram h);
00054 double chiSquareNorm(in Histogram h);
00055
00056 Histogram threshold(in double valThreshold);
00057 long countBins(in double valThreshold);
00058 Histogram reduceRange(in long binMin1, in long binMax1,
00059 in long binMin2, in long binMax2,
00060 in long binMin3, in long binMax3);
00061 Histogram reduceRangeVal(in double binValMin1, in double binValMax1,
00062 in double binValMin2, in double binValMax2,
00063 in double binValMin3, in double binValMax3);
00064 Histogram to1D(in long dim);
00065
00066 void render3d(in RgbBuffer buf, in long dataWidth,
00067 in long dataHeight, in double elevation,
00068 in double alpha, in double threshold);
00069
00070 void destroy();
00071 };
00072
00073 interface HistogramFactory
00074 {
00075 Histogram makeHistogramFromFile(in string filename);
00076 };
00077
00078
00079 typedef sequence<Histogram> HistogramList;
00080
00081 };
00082
00083 #endif //HxCorbaHistogram_idl