Beispiel #1
0
 void CreateLut3DOp(OpRcPtrVec & ops,
                    Lut3DRcPtr lut,
                    Interpolation interpolation,
                    TransformDirection direction)
 {
     ops.push_back( OpRcPtr(new Lut3DOp(lut, interpolation, direction)) );
 }
Beispiel #2
0
 void CreateMatrixOffsetOp(OpRcPtrVec & ops,
                           const float * m44, const float * offset4,
                           TransformDirection direction)
 {
     bool mtxIsIdentity = IsM44Identity(m44);
     bool offsetIsIdentity = IsVecEqualToZero(offset4, 4);
     if(mtxIsIdentity && offsetIsIdentity) return;
     
     ops.push_back( OpRcPtr(new MatrixOffsetOp(m44,
         offset4, direction)) );
 }
Beispiel #3
0
 void CreateLut1DOp(OpRcPtrVec & ops,
                    const Lut1DRcPtr & lut,
                    Interpolation interpolation,
                    TransformDirection direction)
 {
     if(lut->isNoOp()) return;
     
     // TODO: Detect if lut1d can be exactly approximated as y = mx + b
     // If so, return a mtx instead.
     
     ops.push_back( OpRcPtr(new Lut1DOp(lut, interpolation, direction)) );
 }