1 #ifndef __SP_FILTER_ENUMS_H__
2 #define __SP_FILTER_ENUMS_H__
4 /*
5 * Conversion data for filter and filter primitive enumerations
6 *
7 * Authors:
8 * Nicholas Bishop
9 *
10 * Copyright (C) 2007 authors
11 *
12 * Released under GNU GPL, read the file 'COPYING' for more information
13 */
15 #include "display/nr-filter-blend.h"
16 #include "display/nr-filter-colormatrix.h"
17 #include "display/nr-filter-component-transfer.h"
18 #include "display/nr-filter-composite.h"
19 #include "display/nr-filter-convolve-matrix.h"
20 #include "display/nr-filter-morphology.h"
21 #include "display/nr-filter-turbulence.h"
22 #include "display/nr-filter-types.h"
23 #include "filters/displacementmap.h"
24 #include "util/enums.h"
26 // Filter primitives
27 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterPrimitiveType> FPData[Inkscape::Filters::NR_FILTER_ENDPRIMITIVETYPE];
28 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterPrimitiveType> FPConverter;
30 enum FilterPrimitiveInput {
31 FPINPUT_SOURCEGRAPHIC,
32 FPINPUT_SOURCEALPHA,
33 FPINPUT_BACKGROUNDIMAGE,
34 FPINPUT_BACKGROUNDALPHA,
35 FPINPUT_FILLPAINT,
36 FPINPUT_STROKEPAINT,
37 FPINPUT_END
38 };
40 extern const Inkscape::Util::EnumData<FilterPrimitiveInput> FPInputData[FPINPUT_END];
41 extern const Inkscape::Util::EnumDataConverter<FilterPrimitiveInput> FPInputConverter;
43 // Blend mode
44 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterBlendMode> BlendModeData[Inkscape::Filters::BLEND_ENDMODE];
45 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterBlendMode> BlendModeConverter;
46 // ColorMatrix type
47 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterColorMatrixType> ColorMatrixTypeData[Inkscape::Filters::COLORMATRIX_ENDTYPE];
48 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterColorMatrixType> ColorMatrixTypeConverter;
49 // ComponentTransfer type
50 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterComponentTransferType> ComponentTransferTypeData[Inkscape::Filters::COMPONENTTRANSFER_TYPE_ERROR];
51 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterComponentTransferType> ComponentTransferTypeConverter;
52 // Composite operator
53 extern const Inkscape::Util::EnumData<FeCompositeOperator> CompositeOperatorData[COMPOSITE_ENDOPERATOR];
54 extern const Inkscape::Util::EnumDataConverter<FeCompositeOperator> CompositeOperatorConverter;
55 // ConvolveMatrix edgeMode
56 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeData[Inkscape::Filters::CONVOLVEMATRIX_EDGEMODE_ENDTYPE];
57 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeConverter;
58 // DisplacementMap channel
59 extern const Inkscape::Util::EnumData<FilterDisplacementMapChannelSelector> DisplacementMapChannelData[4];
60 extern const Inkscape::Util::EnumDataConverter<FilterDisplacementMapChannelSelector> DisplacementMapChannelConverter;
61 // Morphology operator
62 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterMorphologyOperator> MorphologyOperatorData[Inkscape::Filters::MORPHOLOGY_OPERATOR_END];
63 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterMorphologyOperator> MorphologyOperatorConverter;
64 // Turbulence type
65 extern const Inkscape::Util::EnumData<Inkscape::Filters::FilterTurbulenceType> TurbulenceTypeData[Inkscape::Filters::TURBULENCE_ENDTYPE];
66 extern const Inkscape::Util::EnumDataConverter<Inkscape::Filters::FilterTurbulenceType> TurbulenceTypeConverter;
67 // Lighting
68 enum LightSource {
69 LIGHT_DISTANT,
70 LIGHT_POINT,
71 LIGHT_SPOT,
72 LIGHT_ENDSOURCE
73 };
74 extern const Inkscape::Util::EnumData<LightSource> LightSourceData[LIGHT_ENDSOURCE];
75 extern const Inkscape::Util::EnumDataConverter<LightSource> LightSourceConverter;
77 #endif
79 /*
80 Local Variables:
81 mode:c++
82 c-file-style:"stroustrup"
83 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
84 indent-tabs-mode:nil
85 fill-column:99
86 End:
87 */
88 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :