]> granicus.if.org Git - imagemagick/blob - MagickCore/morphology-private.h
(no commit message)
[imagemagick] / MagickCore / morphology-private.h
1 /*
2   Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4   
5   You may not use this file except in compliance with the License.
6   obtain a copy of the License at
7   
8     http://www.imagemagick.org/script/license.php
9   
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15
16   The ImageMagick morphology private methods.
17 */
18 #ifndef _MAGICK_MORPHOLOGY_PRIVATE_H
19 #define _MAGICK_MORPHOLOGY_PRIVATE_H
20
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24
25 #if defined(__cplusplus) || defined(c_plusplus)
26 }
27 #endif
28
29 #include "MagickCore/morphology.h"
30
31 /*
32   The following test is for special floating point numbers of value NaN (not
33   a number), that may be used within a Kernel Definition.  NaN's are defined
34   as part of the IEEE standard for floating point number representation.
35   They are used as a Kernel value to mean that this kernel position is not
36   part of the kernel neighbourhood for convolution or morphology processing,
37   and thus should be ignored.  This allows the use of 'shaped' kernels.
38
39   The special property that two NaN's are never equal, even if they are from
40   the same variable allow you to test if a value is special NaN value.
41
42   This macro  IsNaN() is thus is only true if the value given is NaN.
43 */
44 #define IsNaN(a) ((a) != (a) ? MagickTrue : MagickFalse)
45
46 extern MagickPrivate Image
47   *MorphologyApply(const Image *,const MorphologyMethod,const ssize_t,
48     const KernelInfo *,const CompositeOperator,const double,ExceptionInfo *);
49
50 extern MagickPrivate void
51   ShowKernelInfo(const KernelInfo *),
52   ZeroKernelNans(KernelInfo *);
53
54 #endif