00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#ifndef OPENCAL_UTILS_BLENDABLE_H
00012
#define OPENCAL_UTILS_BLENDABLE_H
00013
00014
00015
#include <OpenCAL/global.h>
00016
00017
namespace OpenCAL
00018 {
00019
00020
00025
template<
class C>
00026 class OPENCAL_API Blendable
00027 {
00028
public:
00029
00030
virtual ~Blendable() {}
00031
00037
virtual void blend(
float u,
const C &dest) = 0;
00038
00045
virtual void blend(
float u,
const C &source,
const C &dest) = 0;
00046
00053
virtual C blended(
float u,
const C &dest)
const = 0;
00054
00062
virtual C blended(
float u,
const C &source,
const C &dest)
const = 0;
00063 };
00064
00065 }
00066
00067
#endif // OPENCAL_UTILS_BLENDABLE_H