00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GFX_IMPL_MAPPED_PROPERTY_HH
00020 #define OST_GFX_IMPL_MAPPED_PROPERTY_HH
00021
00022
00023
00024
00025
00026 #include <ost/mol/entity_view.hh>
00027 #if OST_IMG_ENABLED
00028 #include <ost/img/map.hh>
00029 #endif
00030
00031 #include <ost/gfx/module_config.hh>
00032 #include <ost/gfx/gradient.hh>
00033
00034 namespace ost { namespace gfx { namespace impl {
00035
00036 inline float Normalize(float v, float min_v, float max_v)
00037 {
00038 return (v-min_v)/(max_v-min_v);
00039 }
00040
00041 inline float Clamp(float v, float min_v, float max_v)
00042 {
00043 return std::max(min_v,std::min(max_v,v));
00044 }
00045
00046 float DLLEXPORT_OST_GFX MappedProperty(const mol::EntityView& ev,
00047 const String& prop,
00048 const geom::Vec3& pos);
00049 Color DLLEXPORT_OST_GFX MappedProperty(const mol::EntityView& ev,
00050 const String& prop,
00051 const Gradient& g, float minv, float maxv,
00052 const geom::Vec3& pos);
00053 #if OST_IMG_ENABLED
00054 float DLLEXPORT_OST_GFX MappedProperty(const img::MapHandle& mh,
00055 const String& prop,
00056 const geom::Vec3& pos);
00057 Color DLLEXPORT_OST_GFX MappedProperty(const img::MapHandle& mh,
00058 const String& prop,
00059 const Gradient& g, float minv, float maxv,
00060 const geom::Vec3& pos);
00061 #endif
00062
00063 }}}
00064
00065 #endif