123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- /***********************************************************
- * File generated by the HALCON-Compiler hcomp version 20.11
- * Usage: Interface to C++
- *
- * Software by: MVTec Software GmbH, www.mvtec.com
- ***********************************************************/
- #ifndef HCPP_HFUNCTION1D
- #define HCPP_HFUNCTION1D
- namespace HalconCpp
- {
- // Represents an instance of a 1d function.
- class LIntExport HFunction1D : public HDataBase
- {
- public:
- // Create an uninitialized instance
- HFunction1D():HDataBase() {}
- // Copy constructor
- HFunction1D(const HFunction1D& source) : HDataBase(source) {}
- /*****************************************************************************
- * Operator-based class constructors
- *****************************************************************************/
- // create_funct_1d_array: Create a function from a sequence of y values.
- explicit HFunction1D(const HTuple& YValues);
- // create_funct_1d_array: Create a function from a sequence of y values.
- explicit HFunction1D(double YValues);
- // create_funct_1d_pairs: Create a function from a set of (x,y) pairs.
- explicit HFunction1D(const HTuple& XValues, const HTuple& YValues);
- // create_funct_1d_pairs: Create a function from a set of (x,y) pairs.
- explicit HFunction1D(double XValues, double YValues);
- /*****************************************************************************
- * Operator overloads (non-member overloads reside in HOperatorOverloads.h) *
- *****************************************************************************/
- // Negate function
- HFunction1D operator - () const;
- // Invert function
- HFunction1D operator ! () const;
- /***************************************************************************
- * Operators *
- ***************************************************************************/
- // Plot a function using gnuplot.
- void GnuplotPlotFunct1d(const HGnuplot& GnuplotFileID) const;
- // Compose two functions.
- HFunction1D ComposeFunct1d(const HFunction1D& Function2, const HString& Border) const;
- // Compose two functions.
- HFunction1D ComposeFunct1d(const HFunction1D& Function2, const char* Border) const;
- #ifdef _WIN32
- // Compose two functions.
- HFunction1D ComposeFunct1d(const HFunction1D& Function2, const wchar_t* Border) const;
- #endif
- // Calculate the inverse of a function.
- HFunction1D InvertFunct1d() const;
- // Calculate the derivatives of a function.
- HFunction1D DerivateFunct1d(const HString& Mode) const;
- // Calculate the derivatives of a function.
- HFunction1D DerivateFunct1d(const char* Mode) const;
- #ifdef _WIN32
- // Calculate the derivatives of a function.
- HFunction1D DerivateFunct1d(const wchar_t* Mode) const;
- #endif
- // Calculate the local minimum and maximum points of a function.
- void LocalMinMaxFunct1d(const HString& Mode, const HString& Interpolation, HTuple* Min, HTuple* Max) const;
- // Calculate the local minimum and maximum points of a function.
- void LocalMinMaxFunct1d(const char* Mode, const char* Interpolation, HTuple* Min, HTuple* Max) const;
- #ifdef _WIN32
- // Calculate the local minimum and maximum points of a function.
- void LocalMinMaxFunct1d(const wchar_t* Mode, const wchar_t* Interpolation, HTuple* Min, HTuple* Max) const;
- #endif
- // Calculate the zero crossings of a function.
- HTuple ZeroCrossingsFunct1d() const;
- // Multiplication and addition of the y values.
- HFunction1D ScaleYFunct1d(double Mult, double Add) const;
- // Negation of the y values.
- HFunction1D NegateFunct1d() const;
- // Absolute value of the y values.
- HFunction1D AbsFunct1d() const;
- // Return the value of a function at an arbitrary position.
- HTuple GetYValueFunct1d(const HTuple& X, const HString& Border) const;
- // Return the value of a function at an arbitrary position.
- double GetYValueFunct1d(double X, const HString& Border) const;
- // Return the value of a function at an arbitrary position.
- double GetYValueFunct1d(double X, const char* Border) const;
- #ifdef _WIN32
- // Return the value of a function at an arbitrary position.
- double GetYValueFunct1d(double X, const wchar_t* Border) const;
- #endif
- // Access a function value using the index of the control points.
- void GetPairFunct1d(const HTuple& Index, HTuple* X, HTuple* Y) const;
- // Access a function value using the index of the control points.
- void GetPairFunct1d(Hlong Index, double* X, double* Y) const;
- // Number of control points of the function.
- Hlong NumPointsFunct1d() const;
- // Smallest and largest y value of the function.
- void YRangeFunct1d(double* YMin, double* YMax) const;
- // Smallest and largest x value of the function.
- void XRangeFunct1d(double* XMin, double* XMax) const;
- // Access to the x/y values of a function.
- void Funct1dToPairs(HTuple* XValues, HTuple* YValues) const;
- // Sample a function equidistantly in an interval.
- HFunction1D SampleFunct1d(const HTuple& XMin, const HTuple& XMax, const HTuple& XDist, const HString& Border) const;
- // Sample a function equidistantly in an interval.
- HFunction1D SampleFunct1d(double XMin, double XMax, double XDist, const HString& Border) const;
- // Sample a function equidistantly in an interval.
- HFunction1D SampleFunct1d(double XMin, double XMax, double XDist, const char* Border) const;
- #ifdef _WIN32
- // Sample a function equidistantly in an interval.
- HFunction1D SampleFunct1d(double XMin, double XMax, double XDist, const wchar_t* Border) const;
- #endif
- // Transform a function using given transformation parameters.
- HFunction1D TransformFunct1d(const HTuple& Params) const;
- // Calculate transformation parameters between two functions.
- HTuple MatchFunct1dTrans(const HFunction1D& Function2, const HString& Border, const HTuple& ParamsConst, const HTuple& UseParams, double* ChiSquare, HTuple* Covar) const;
- // Calculate transformation parameters between two functions.
- HTuple MatchFunct1dTrans(const HFunction1D& Function2, const char* Border, const HTuple& ParamsConst, const HTuple& UseParams, double* ChiSquare, HTuple* Covar) const;
- #ifdef _WIN32
- // Calculate transformation parameters between two functions.
- HTuple MatchFunct1dTrans(const HFunction1D& Function2, const wchar_t* Border, const HTuple& ParamsConst, const HTuple& UseParams, double* ChiSquare, HTuple* Covar) const;
- #endif
- // Compute the distance of two functions.
- HTuple DistanceFunct1d(const HFunction1D& Function2, const HTuple& Mode, const HTuple& Sigma) const;
- // Compute the distance of two functions.
- HTuple DistanceFunct1d(const HFunction1D& Function2, const HString& Mode, double Sigma) const;
- // Compute the distance of two functions.
- HTuple DistanceFunct1d(const HFunction1D& Function2, const char* Mode, double Sigma) const;
- #ifdef _WIN32
- // Compute the distance of two functions.
- HTuple DistanceFunct1d(const HFunction1D& Function2, const wchar_t* Mode, double Sigma) const;
- #endif
- // Smooth an equidistant 1D function with a Gaussian function.
- HFunction1D SmoothFunct1dGauss(double Sigma) const;
- // Compute the positive and negative areas of a function.
- double IntegrateFunct1d(HTuple* Negative) const;
- // Read a function from a file.
- void ReadFunct1d(const HString& FileName);
- // Read a function from a file.
- void ReadFunct1d(const char* FileName);
- #ifdef _WIN32
- // Read a function from a file.
- void ReadFunct1d(const wchar_t* FileName);
- #endif
- // Write a function to a file.
- void WriteFunct1d(const HString& FileName) const;
- // Write a function to a file.
- void WriteFunct1d(const char* FileName) const;
- #ifdef _WIN32
- // Write a function to a file.
- void WriteFunct1d(const wchar_t* FileName) const;
- #endif
- // Create a function from a sequence of y values.
- void CreateFunct1dArray(const HTuple& YValues);
- // Create a function from a sequence of y values.
- void CreateFunct1dArray(double YValues);
- // Create a function from a set of (x,y) pairs.
- void CreateFunct1dPairs(const HTuple& XValues, const HTuple& YValues);
- // Create a function from a set of (x,y) pairs.
- void CreateFunct1dPairs(double XValues, double YValues);
- // Smooth an equidistant 1D function by averaging its values.
- HFunction1D SmoothFunct1dMean(Hlong SmoothSize, Hlong Iterations) const;
- };
- }
- #endif
|