35 #ifndef IECORE_LENSMODEL_H
36 #define IECORE_LENSMODEL_H
40 #include "IECore/Export.h"
41 #include "IECore/Object.h"
42 #include "IECore/Parameter.h"
43 #include "IECore/Parameterised.h"
44 #include "IECore/SimpleTypedData.h"
45 #include "IECore/SimpleTypedParameter.h"
46 #include "IECore/CompoundParameter.h"
47 #include "IECore/TypeIds.h"
48 #include "boost/format.hpp"
53 IE_CORE_FORWARDDECLARE( CompoundObject )
54 IE_CORE_FORWARDDECLARE( LensModel );
85 typedef LensModelPtr (*CreatorFn)( ConstCompoundObjectPtr data );
87 IE_CORE_DECLARERUNTIMETYPED( LensModel, Parameterised );
96 Imath::Box2i bounds(
int mode,
const Imath::Box2i &input,
int width,
int height );
102 virtual void validate() = 0;
109 virtual Imath::V2d distort( Imath::V2d p ) = 0;
114 virtual Imath::V2d undistort( Imath::V2d p ) = 0;
121 static LensModelPtr create( ConstCompoundObjectPtr lensParams );
128 static LensModelPtr create(
const std::string &name );
132 static LensModelPtr create(
TypeId id );
135 static std::vector<std::string> lensModels();
143 ~LensModel()
override;
160 static LensModelPtr creator( ConstCompoundObjectPtr data =
nullptr );
165 typedef std::map< std::string, CreatorFn > CreatorMap;
168 static CreatorMap& creators();
176 #include "LensModel.inl"
178 #endif // IECORE_LENSMODEL_H
Definition: Parameterised.h:49
Definition: LensModel.h:75
Definition: LensModel.h:152
TypeId
Definition: TypeIds.h:46
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43