37 #ifndef RixInterfaces_h
38 #define RixInterfaces_h
42 #include "RiTypesHelper.h"
44 #include "stats/Roz.h"
48 class RiPredefinedStrings;
199 virtual void HandleXcpt(
int code,
int severity,
const char* msg) = 0;
209 virtual void Register(XcptHandler*) = 0;
231 virtual uint32_t
XXHash32(
void const* input,
size_t size,
unsigned seed)=0;
234 virtual uint64_t
XXHash64(
void const* input,
size_t size,
unsigned seed)=0;
252 virtual void Error(
const char* format, ...) = 0;
255 virtual void ErrorAlways(
const char* format, ...) = 0;
258 virtual void Warning(
const char* format, ...) = 0;
264 virtual void Info(
const char* format, ...) = 0;
267 virtual void InfoAlways(
const char* format, ...) = 0;
332 statsId(stats::DataLocId::InvalidId())
428 RtUString
const fileName,
463 float const* stRadius,
465 int* runFlags = NULL) = 0;
471 float const* stRadius,
473 int* runFlags = NULL) = 0;
508 int* runFlags = NULL) = 0;
523 int* runFlags = NULL) = 0;
549 int* runFlags = NULL) = 0;
585 int* runFlags = NULL) = 0;
600 RtUString
const propertyName,
640 char const* filename,
655 char const* filename,
673 virtual float Noise(
float in) = 0;
674 virtual float Noise(RtFloat2
const& in) = 0;
675 virtual float Noise(RtFloat3
const& in) = 0;
676 virtual float Noise(RtFloat3
const& in,
float inF) = 0;
678 virtual RtFloat3
Noise3(
float in) = 0;
679 virtual RtFloat3
Noise3(RtFloat2
const& in) = 0;
680 virtual RtFloat3
Noise3(RtFloat3
const& in) = 0;
681 virtual RtFloat3
Noise3(RtFloat3
const& in,
float inF) = 0;
684 virtual float PNoise(
float in,
float period) = 0;
685 virtual float PNoise(RtFloat2
const& in, RtFloat2
const& period) = 0;
686 virtual float PNoise(RtFloat3
const& in, RtFloat3
const& period) = 0;
690 RtFloat3
const& period,
693 virtual RtFloat3
PNoise3(
float in,
float period) = 0;
694 virtual RtFloat3
PNoise3(RtFloat2
const& in, RtFloat2
const& period) = 0;
695 virtual RtFloat3
PNoise3(RtFloat3
const& in, RtFloat3
const& period) = 0;
699 RtFloat3
const& period,
704 virtual float CellNoise(RtFloat2
const& in) = 0;
705 virtual float CellNoise(RtFloat3
const& in) = 0;
706 virtual float CellNoise(RtFloat3
const& in,
float inF) = 0;
709 virtual RtFloat3
CellNoise3(RtFloat2
const& in) = 0;
710 virtual RtFloat3
CellNoise3(RtFloat3
const& in) = 0;
711 virtual RtFloat3
CellNoise3(RtFloat3
const& in,
float inF) = 0;
736 RtFloat3
const knot[],
755 RtUString
const fromspace,
756 RtUString
const tospace,
762 virtual void TransformPoints(RtMatrix4x4
const& m,
int n, RtPoint3 p[]) = 0;
769 RtUString
const fromspace,
770 RtUString
const tospace,
876 RtUString
const name,
880 int* resultCount) = 0;
883 RtUString
const name,
887 int* resultCount) = 0;
917 virtual int GetRIBArchive(RtUString
const filename,
const char** archive) = 0;
935 virtual void ResolvePredefinedStrings(RiPredefinedStrings &ps)
const = 0;
958 virtual void* ResolveSymbol(
const char* nm, SymbolGroup group) = 0;
968 virtual void EmitVector(RtVector3 v, RtColorRGB c) = 0;
969 virtual void EmitPoint(RtPoint3 p, RtColorRGB c) = 0;
970 virtual void EmitPointNormal(RtPoint3 p, RtNormal3 n, RtColorRGB c) = 0;
971 virtual void EmitLine(RtPoint3 p1, RtPoint3 p2, RtColorRGB c) = 0;
972 virtual void EmitBound(RtPoint3 pmin, RtPoint3 pmax, RtColorRGB c) = 0;
973 virtual void Clear() = 0;
974 virtual void Flush() = 0;
996 unsigned char lobeId,
997 char const* name)
const = 0;
1018 RtColorRGB
const& thruput,
1019 RtColorRGB
const* lightTrans,
1020 bool firstContribution);
1028 virtual int LookupLPE(
char const* lpeExpr) = 0;
1043 RtColorRGB& thruput) = 0;
1055 void* userData = NULL) = 0;
1066 RtColorRGB
const& thruput,
1067 RtColorRGB
const* lightTrans,
1068 bool firstContribution) = 0;
1090 virtual void WriteXml(
const char* format, ...) = 0;
1094 virtual void WriteText(
const char* format, ...) = 0;
1100 void WriteStat(
char const* name,
char const* desc,
int value)
1102 WriteXml(
"<int name=\"%s\"", name);
1104 WriteXml(
" description=\"%s\"", desc);
1108 void WriteStat(
char const* name,
char const* desc, uint64_t value)
1110 WriteXml(
"<int name=\"%s\"", name);
1112 WriteXml(
" description=\"%s\"", desc);
1113 WriteXml(
"> %llu </int>\n", value);
1116 void WriteStat(
char const* name,
char const* desc,
float value)
1118 WriteXml(
"<float name=\"%s\"", name);
1120 WriteXml(
" description=\"%s\"", desc);
1121 WriteXml(
"> %f </float>\n", value);
1124 void WriteStat(
char const* name,
char const* desc,
char const* value)
1126 WriteXml(
"<string name=\"%s\"", name);
1128 WriteXml(
" description=\"%s\"", desc);
1129 WriteXml(
"> %s </string>\n", value);
1132 void WriteTime(
char const* name,
char const* desc,
float time)
1134 WriteXml(
"<timer name=\"%s\"", name);
1136 WriteXml(
" description=\"%s\"", desc);
1137 WriteXml(
"><elapsed>%f</elapsed></timer>\n", time);
1199 const char* description) = 0;
1220 virtual void Reset() = 0;
1221 virtual const char*
GetName() = 0;
1236 const char* description) = 0;
1268 virtual void AddFileLogStat(
const char* fileName,
const char* path) = 0;
1292 virtual char const* GetResourcePaths(ResourceType) = 0;
1305 virtual int ResolveResource(
1387 virtual void* Get(
const RtUString key) = 0;
1393 const RtUString key,
1399 virtual void Clear(
const RtUString key) = 0;
1402 virtual void Lock() = 0;
1405 virtual void Unlock() = 0;
1423 template<
typename _Signature>
1427 template <
typename _Res,
typename... _ArgTypes>
1428 class [[deprecated]]
RixFunction<_Res(_ArgTypes...)>
1431 struct FunctionPrototype
1433 virtual ~FunctionPrototype() {}
1434 virtual _Res operator()(_ArgTypes... __args)
const = 0;
1438 template<
typename Closure >
1439 struct Function : FunctionPrototype
1441 Function(Closure&& t ) : fn(t) {}
1442 virtual ~Function() {}
1443 virtual _Res operator()(_ArgTypes... __args)
const
1444 {
return fn(__args...); }
1448 FunctionPrototype* object;
1452 template<
typename Closure >
1454 : object( new Function<Closure>( std::move(obj) ) )
1460 _Res operator()(_ArgTypes... __args)
const
1462 return (*
object)(__args...);
1488 virtual void Lock() = 0;
1491 virtual void Unlock() = 0;
1507 virtual RixMutex* NewMutex()
const = 0;
1510 virtual void DeleteMutex(
RixMutex *mutex)
const = 0;
1535 virtual void ParallelFor(
size_t start,
size_t end,
1537 virtual void ParallelFor(
size_t start,
size_t end,
size_t step,
1565 virtual void ProcessColor(
int processorId, RtColorRGB &inout) = 0;
1573 #endif // RIX_INTERFACE_H