2 Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
3 dedicated to making software imaging solutions freely available.
5 You may not use this file except in compliance with the License.
6 obtain a copy of the License at
8 http://www.imagemagick.org/script/license.php
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.
16 The ImageMagick morphology private methods.
18 #ifndef _MAGICK_MORPHOLOGY_PRIVATE_H
19 #define _MAGICK_MORPHOLOGY_PRIVATE_H
21 #if defined(__cplusplus) || defined(c_plusplus)
25 #if defined(__cplusplus) || defined(c_plusplus)
29 #include "MagickCore/morphology.h"
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.
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.
42 This macro IsNaN() is thus is only true if the value given is NaN.
44 #define IsNaN(a) ((a)!=(a))
46 extern MagickPrivate Image
47 *MorphologyApply(const Image *,const MorphologyMethod,const ssize_t,
48 const KernelInfo *,const CompositeOperator,const double,ExceptionInfo *);
50 extern MagickPrivate void
51 ShowKernelInfo(const KernelInfo *),
52 ZeroKernelNans(KernelInfo *);