Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CoronaJob
- {
- public:
- enum class Type
- {
- REF,
- REF_CubeMap,
- Sky,
- VIZ,
- GEN
- };
- CoronaJob() { }
- CoronaJob(const string & name, Type jobtype, int arg1 = 0, int arg2 = 0);
- ~CoronaJob();
- void EnableHQ() { isHQ = true; }
- void DisableHQ() { isHQ = false; }
- inline bool IsHQ() const { return isHQ; }
- inline void SetMaxRayDepth(int depth) { maxRayDepth = clamp(depth, 1, 50); }
- inline void SetPassLimit(int limit) { passLimit = clamp(limit, 1, 100); }
- inline void SetIgnoreCache(bool state) { ignoreCache = state; }
- void EnableHDR() { isHDR = true; }
- void DisableHDR() { isHDR = false; }
- inline bool IsHDR() const { return isHDR; }
- inline bool IsReady() const { return state == State::Ready; }
- inline bool IsRunning() const { return state == State::Running; }
- inline bool IsFinished() const { return state == State::Finished; }
- inline bool IsREF() const { return type == Type::REF; }
- inline bool IsREF_CubeMap() const { return type == Type::REF_CubeMap; }
- inline bool IsSky() const { return type == Type::Sky; }
- inline bool IsGEN() const { return type == Type::GEN; }
- inline bool IsVIZ() const { return type == Type::VIZ; }
- inline void SetImageDimensions(int w, int h) { imageWidth = clamp(w, 0, 8192); imageHeight = clamp(h, 0, 8192); }
- inline double GetElapsedTime() const { return elapsedTime; }
- inline const string & GetOutputPath() const { if (isHQ) return hq_output_path_ppm; else return output_path_ppm; }
- inline const string & GetName() const { return scene_name; }
- inline int GetGENLightIndex() const { if (IsGEN()) return recvLight; return -1; }
- inline int GetVIZSendLightIndex() const { if (IsVIZ()) return sendLight; return -1; }
- inline int GetVIZRecvLightIndex() const { if (IsVIZ()) return recvLight; return -1; }
- void Start(CoronaSceneFile & coronaScene, SimpleSceneGraph & ssg);
- void CopySPH(const Sph4f & sph);
- void CopySPHToSph4f(Sph4f & sph);
- const int GetCoronaRetval() const { return lastCoronaRetval; }
- const int GetConvertRetval() const { return lastConvertRetval; }
- string MakeCoronaCommandLine();
- string MakeConvertCommandLine();
- static string MakeREFName(const string &prefix, bool isCubeMap, bool isHDR = false, bool isHQ = false, bool ks = false, int MaxRayDepth = 5, int PassLimit = 1);
- static string MakeVIZName(const string &prefix, int srcLightIndex, int recvLightIndex, bool isHDR = false, bool isHQ = false, bool ks = false, int MaxRayDepth = 5, int PassLimit = 1);
- static string MakeGENName(const string &prefix, int recvLightIndex, bool isHDR = false, bool isHQ = false, bool ks = false, int MaxRayDepth = 5, int PassLimit = 1);
- static string MakeHIERName(const string &prefix, int sendLightIndex, int MaxDegrees);
- inline bool IsJobFinished() const { return finished; }
- inline void MarkJobFinished() { finished = true; }
- inline void MarkJobUnfinished() { finished = false; working = false; }
- inline bool IsJobWorking() const { return working; }
- inline void MarkJobWorking() { working = true; }
- string & ToString() const;
- void FromString(const string & str);
- private:
- enum class State
- {
- Error = -1,
- Ready = 0,
- Running,
- Finished,
- };
- State state = State::Ready;
- Type type = Type::REF;
- string scene_name;
- string scene_path;
- string output_path_exr;
- string output_path_ppm; // the ppm is created using ImageMagick's convert command
- string output_path_png;
- string hq_output_path_exr;
- string hq_output_path_ppm; // the ppm is created using ImageMagick's convert command
- string conf_path;
- string hq_conf_path;
- float sph[121*4];
- int imageWidth = 1280;
- int imageHeight = 720;
- int maxRayDepth = 5;
- int passLimit = 1;
- bool ignoreCache = false;
- double elapsedTime;
- bool finished = false;
- bool working = false;
- bool isHQ = false;
- bool isHDR = false;
- // If GEN, then recvLight is the
- int sendLight = -1;
- int recvLight = -1;
- int lastCoronaRetval = 0;
- int lastConvertRetval = 0;
- bool Run();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement