diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_TranslateOperation.h')
-rw-r--r-- | source/blender/compositor/operations/COM_TranslateOperation.h | 74 |
1 files changed, 42 insertions, 32 deletions
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.h b/source/blender/compositor/operations/COM_TranslateOperation.h index c8fffaae2d8..2d13813a86a 100644 --- a/source/blender/compositor/operations/COM_TranslateOperation.h +++ b/source/blender/compositor/operations/COM_TranslateOperation.h @@ -22,38 +22,48 @@ #include "COM_NodeOperation.h" class TranslateOperation : public NodeOperation { -private: - SocketReader *m_inputOperation; - SocketReader *m_inputXOperation; - SocketReader *m_inputYOperation; - float m_deltaX; - float m_deltaY; - bool m_isDeltaSet; - float m_factorX; - float m_factorY; -public: - TranslateOperation(); - bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output); - void executePixelSampled(float output[4], float x, float y, PixelSampler sampler); - - void initExecution(); - void deinitExecution(); - - float getDeltaX() { return this->m_deltaX * this->m_factorX; } - float getDeltaY() { return this->m_deltaY * this->m_factorY; } - - inline void ensureDelta() { - if (!this->m_isDeltaSet) { - float tempDelta[4]; - this->m_inputXOperation->readSampled(tempDelta, 0, 0, COM_PS_NEAREST); - this->m_deltaX = tempDelta[0]; - this->m_inputYOperation->readSampled(tempDelta, 0, 0, COM_PS_NEAREST); - this->m_deltaY = tempDelta[0]; - this->m_isDeltaSet = true; - } - } - - void setFactorXY(float factorX, float factorY); + private: + SocketReader *m_inputOperation; + SocketReader *m_inputXOperation; + SocketReader *m_inputYOperation; + float m_deltaX; + float m_deltaY; + bool m_isDeltaSet; + float m_factorX; + float m_factorY; + + public: + TranslateOperation(); + bool determineDependingAreaOfInterest(rcti *input, + ReadBufferOperation *readOperation, + rcti *output); + void executePixelSampled(float output[4], float x, float y, PixelSampler sampler); + + void initExecution(); + void deinitExecution(); + + float getDeltaX() + { + return this->m_deltaX * this->m_factorX; + } + float getDeltaY() + { + return this->m_deltaY * this->m_factorY; + } + + inline void ensureDelta() + { + if (!this->m_isDeltaSet) { + float tempDelta[4]; + this->m_inputXOperation->readSampled(tempDelta, 0, 0, COM_PS_NEAREST); + this->m_deltaX = tempDelta[0]; + this->m_inputYOperation->readSampled(tempDelta, 0, 0, COM_PS_NEAREST); + this->m_deltaY = tempDelta[0]; + this->m_isDeltaSet = true; + } + } + + void setFactorXY(float factorX, float factorY); }; #endif |