@@ -26,17 +26,6 @@ class CElementRFilter final : public IElement
2626			CATMULLROM,
2727			LANCZOS
2828		};
29- 		static  inline  core::unordered_map<core::string,Type,core::CaseInsensitiveHash,core::CaseInsensitiveEquals> compStringToTypeMap ()
30- 		{
31- 			return  {
32- 				std::make_pair (" box"  , Type::BOX),
33- 				std::make_pair (" tent"  , Type::TENT),
34- 				std::make_pair (" gaussian"  , Type::GAUSSIAN),
35- 				std::make_pair (" mitchell"  , Type::MITCHELL),
36- 				std::make_pair (" catmullrom"  , Type::CATMULLROM),
37- 				std::make_pair (" lanczos"  , Type::LANCZOS)
38- 			};
39- 		}
4029
4130		struct  Gaussian 
4231		{
@@ -52,6 +41,24 @@ class CElementRFilter final : public IElement
5241			int32_t  lobes = 3 ;
5342		};
5443
44+ 		using  variant_list_t  = core::type_list<
45+ 			Gaussian,
46+ 			MitchellNetravali,
47+ 			LanczosSinc
48+ 		>;
49+ 		static  inline  core::unordered_map<core::string,Type,core::CaseInsensitiveHash,core::CaseInsensitiveEquals> compStringToTypeMap ()
50+ 		{
51+ 			return  {
52+ 				std::make_pair (" box"  , Type::BOX),
53+ 				std::make_pair (" tent"  , Type::TENT),
54+ 				std::make_pair (" gaussian"  , Type::GAUSSIAN),
55+ 				std::make_pair (" mitchell"  , Type::MITCHELL),
56+ 				std::make_pair (" catmullrom"  , Type::CATMULLROM),
57+ 				std::make_pair (" lanczos"  , Type::LANCZOS)
58+ 			};
59+ 		}
60+ 		static  AddPropertyMap<CElementRFilter> compAddPropertyMap ();
61+ 
5562		inline  CElementRFilter (const  char * id) : IElement(id), type(GAUSSIAN)
5663		{
5764			gaussian = Gaussian ();
@@ -93,9 +100,10 @@ class CElementRFilter final : public IElement
93100			);
94101		}
95102
96- 		bool  addProperty (SNamedPropertyElement&& _property, system::logger_opt_ptr logger) override ;
97103		bool  onEndTag (CMitsubaMetadata* globalMetadata, system::logger_opt_ptr logger) override ;
98- 		inline  IElement::Type getType () const  override  { return  IElement::Type::RFILTER; }
104+ 
105+ 		constexpr  static  inline  auto  ElementType = IElement::Type::RFILTER;
106+ 		inline  IElement::Type getType () const  override  { return  ElementType; }
99107		inline  std::string getLogName () const  override  { return  " rfilter"  ; }
100108
101109		//  make these public
0 commit comments