Lumiverse  2.5
A framework for creating lighting control applications
PhotoAnimationPatch.h
Go to the documentation of this file.
1 
4 #ifndef _PhotoAnimationPatch_H_
5 #define _PhotoAnimationPatch_H_
6 
7 #pragma once
8 
9 #include "LumiverseCoreConfig.h"
10 #ifdef USE_ARNOLD
11 
12 #include "../lib/libjson/libjson.h"
13 #include "PhotoPatch.h"
16 #include "ArnoldFileFrameManager.h"
17 
18 #include <thread>
19 #include <chrono>
20 #include <iostream>
21 
22 namespace Lumiverse {
23 
32  class PhotoAnimationPatch : public SimulationAnimationPatch,
33  public PhotoPatch
34  {
35  public:
39  PhotoAnimationPatch() { }
40 
46  PhotoAnimationPatch(const JSONNode data);
47 
51  virtual ~PhotoAnimationPatch();
52 
58  virtual string getType() override { return "PhotoAnimationPatch"; }
59 
64  virtual void init() override;
65 
74  virtual void update(set<Device *> devices) override;
75 
84  virtual void close() override;
85 
86  virtual void reset();
87 
88  protected:
89 
90  virtual void workerRender(FrameDeviceInfo frame) override;
91  virtual void createFrameInfoBody(set<Device *> devices, FrameDeviceInfo &frame, bool forceUpdate = false);
92 
97  virtual void loadJSON(const JSONNode data) override;
98 
99  virtual void onRecording() override { }
100 
101  virtual void onRendering() override { }
102 
103  };
104 
105 }
106 
107 #endif
108 
109 #endif
void close()
Close the connection to node.
Definition: Dumiverse.cpp:37
void init(const char *jsonPatchStr, const char *filename)
Initializes data structures.
Definition: Dumiverse.cpp:29
An implemnetation for frame manager using in-memory buffer.
An implemnetation for frame manager using in-memory buffer.
Subclass of ArnoldPatch to render frames of an animation.
Implementation of a patch for Arnold.
Contains all core Lumiverse functions and variables.
Definition: Device.cpp:2