5 #ifndef INCLUDED_OCIO_OPENCOLORTRANSFORMS_H
6 #define INCLUDED_OCIO_OPENCOLORTRANSFORMS_H
8 #include <initializer_list>
13 #ifndef OCIO_NAMESPACE
14 #error This header cannot be used directly. Use <OpenColorIO/OpenColorIO.h> instead.
47 virtual const char * getElementName()
const noexcept = 0;
49 virtual void setElementName(
const char *) = 0;
51 virtual const char * getElementValue()
const noexcept = 0;
52 virtual void setElementValue(
const char *) = 0;
54 virtual int getNumAttributes()
const noexcept = 0;
56 virtual const char * getAttributeName(
int i)
const noexcept = 0;
58 virtual const char * getAttributeValue(
int i)
const noexcept = 0;
60 virtual const char * getAttributeValue(
const char *
name)
const noexcept = 0;
65 virtual void addAttribute(
const char * name,
const char *
value) = 0;
67 virtual int getNumChildrenElements()
const noexcept = 0;
87 virtual void addChildElement(
const char * name,
const char * value) = 0;
90 virtual void clear() noexcept = 0;
99 virtual const char *
getName()
const noexcept = 0;
100 virtual void setName(
const char * name) noexcept = 0;
106 virtual const char * getID()
const noexcept = 0;
107 virtual void setID(
const char *
id) noexcept = 0;
133 virtual void validate()
const;
165 void validate()
const override;
170 int getNumVars()
const;
171 void getVars(
float * vars)
const;
172 void setVars(
int numvars,
const float * vars);
186 Impl * getImpl() {
return m_impl; }
187 const Impl * getImpl()
const {
return m_impl; }
205 virtual const char * getStyle() const noexcept = 0;
211 virtual
void setStyle(const
char * style) = 0;
273 virtual const
FormatMetadata & getFormatMetadata() const noexcept = 0;
275 virtual
bool equals(const
CDLTransform & other) const noexcept = 0;
277 virtual
CDLStyle getStyle() const = 0;
284 virtual
void setStyle(
CDLStyle style) = 0;
286 virtual
void getSlope(
double * rgb) const = 0;
287 virtual
void setSlope(const
double * rgb) = 0;
289 virtual
void getOffset(
double * rgb) const = 0;
290 virtual
void setOffset(const
double * rgb) = 0;
292 virtual
void getPower(
double * rgb) const = 0;
293 virtual
void setPower(const
double * rgb) = 0;
295 virtual
void getSOP(
double * vec9) const = 0;
296 virtual
void setSOP(const
double * vec9) = 0;
298 virtual
double getSat() const = 0;
299 virtual
void setSat(
double sat) = 0;
302 virtual
void getSatLumaCoefs(
double * rgb) const = 0;
308 virtual const
char * getID() const = 0;
309 virtual
void setID(const
char *
id) = 0;
318 virtual const
char * getFirstSOPDescription() const = 0;
319 virtual
void setFirstSOPDescription(const
char * description) = 0;
345 void validate()
const override;
347 const char * getSrc()
const;
348 void setSrc(
const char * src);
350 const char * getDst()
const;
351 void setDst(
const char *
dst);
354 bool getDataBypass() const noexcept;
355 void setDataBypass(
bool enabled) noexcept;
362 ColorSpaceTransform();
363 ColorSpaceTransform(const ColorSpaceTransform &);
365 static
void deleter(ColorSpaceTransform *
t);
369 Impl * getImpl() {
return m_impl; }
370 const Impl * getImpl()
const {
return m_impl; }
389 void validate()
const override;
391 const char * getSrc()
const;
393 void setSrc(
const char *
name);
395 const char * getDisplay()
const;
397 void setDisplay(
const char * display);
399 const char * getView()
const;
401 void setView(
const char *
view);
403 bool getLooksBypass()
const;
405 void setLooksBypass(
bool bypass);
407 bool getDataBypass() const noexcept;
409 void setDataBypass(
bool bypass) noexcept;
415 DisplayViewTransform();
416 DisplayViewTransform(const DisplayViewTransform &) = delete;
417 DisplayViewTransform & operator=(const DisplayViewTransform &) = delete;
419 static
void deleter(DisplayViewTransform *
t);
423 Impl * getImpl() {
return m_impl; }
424 const Impl * getImpl()
const {
return m_impl; }
451 double m_green{ 0. };
453 double m_master{ 0. };
466 , m_clampBlack(NoClampBlack())
467 , m_clampWhite(NoClampWhite())
479 double m_saturation{ 1.0 };
481 double m_pivotBlack{ 0.0 };
482 double m_pivotWhite{ 1.0 };
489 static double NoClampBlack();
490 static double NoClampWhite();
506 extern OCIOEXPORT bool operator==(
const GradingControlPoint & lhs,
const GradingControlPoint & rhs);
507 extern OCIOEXPORT bool operator!=(
const GradingControlPoint & lhs,
const GradingControlPoint & rhs);
520 virtual size_t getNumControlPoints()
const noexcept = 0;
521 virtual void setNumControlPoints(
size_t size) = 0;
524 virtual float getSlope(
size_t index)
const = 0;
525 virtual void setSlope(
size_t index,
float slope) = 0;
526 virtual bool slopesAreDefault()
const = 0;
527 virtual void validate()
const = 0;
558 virtual void validate()
const = 0;
595 , m_green (rgbmsw[1])
597 , m_master(rgbmsw[3])
598 , m_start (rgbmsw[4])
599 , m_width (rgbmsw[5])
608 double m_green { 1. };
609 double m_blue { 1. };
610 double m_master{ 1. };
611 double m_start { 0. };
612 double m_width { 1. };
646 void validate()
const;
653 double m_scontrast{ 1.0 };
720 namespace DynamicPropertyValue
748 virtual double getValue()
const = 0;
826 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
832 virtual
void getValue(
double(&vec4)[4]) const noexcept = 0;
833 virtual
void setValue(const
double(&vec4)[4]) noexcept = 0;
876 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
882 virtual
void getGamma(
double(&
values)[4]) const noexcept = 0;
890 virtual
void setGamma(const
double(&
values)[4]) noexcept = 0;
892 virtual
void getOffset(
double(&
values)[4]) const noexcept = 0;
899 virtual
void setOffset(const
double(&
values)[4]) noexcept = 0;
934 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
944 virtual
double getExposure() const = 0;
949 virtual
void setExposure(
double exposure) = 0;
954 virtual
bool isExposureDynamic() const = 0;
955 virtual
void makeExposureDynamic() = 0;
956 virtual
void makeExposureNonDynamic() = 0;
958 virtual
double getContrast() const = 0;
965 virtual
void setContrast(
double contrast) = 0;
970 virtual
bool isContrastDynamic() const = 0;
971 virtual
void makeContrastDynamic() = 0;
972 virtual
void makeContrastNonDynamic() = 0;
974 virtual
double getGamma() const = 0;
975 virtual
void setGamma(
double gamma) = 0;
980 virtual
bool isGammaDynamic() const = 0;
981 virtual
void makeGammaDynamic() = 0;
982 virtual
void makeGammaNonDynamic() = 0;
984 virtual
double getPivot() const = 0;
991 virtual
void setPivot(
double pivot) = 0;
993 virtual
double getLogExposureStep() const = 0;
1000 virtual
void setLogExposureStep(
double logExposureStep) = 0;
1002 virtual
double getLogMidGray() const = 0;
1009 virtual
void setLogMidGray(
double logMidGray) = 0;
1022 extern
OCIOEXPORT std::ostream & operator<<(std::ostream &,
1039 void validate()
const override;
1041 const char * getSrc()
const;
1042 void setSrc(
const char * src);
1048 const char * getCCCId()
const;
1049 void setCCCId(
const char *
id);
1068 static int GetNumFormats();
1070 static const char * GetFormatNameByIndex(
int index);
1072 static const char * GetFormatExtensionByIndex(
int index);
1086 Impl * getImpl() {
return m_impl; }
1087 const Impl * getImpl()
const {
return m_impl; }
1107 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1117 virtual
size_t getNumParams() const = 0;
1118 virtual
void getParams(
double * params) const = 0;
1120 virtual
void setParams(const
double * params,
size_t num) = 0;
1158 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1167 virtual
void setStyle(
GradingStyle style) noexcept = 0;
1177 virtual
bool isDynamic() const noexcept = 0;
1178 virtual
void makeDynamic() noexcept = 0;
1179 virtual
void makeNonDynamic() noexcept = 0;
1214 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1223 virtual
void setStyle(
GradingStyle style) noexcept = 0;
1239 virtual
bool slopesAreDefault(
RGBCurveType c) const = 0;
1246 virtual
bool getBypassLinToLog() const = 0;
1247 virtual
void setBypassLinToLog(
bool bypass) = 0;
1253 virtual
bool isDynamic() const noexcept = 0;
1254 virtual
void makeDynamic() noexcept = 0;
1255 virtual
void makeNonDynamic() noexcept = 0;
1300 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1308 virtual
void setStyle(
GradingStyle style) noexcept = 0;
1317 virtual
bool isDynamic() const noexcept = 0;
1318 virtual
void makeDynamic() noexcept = 0;
1319 virtual
void makeNonDynamic() noexcept = 0;
1338 virtual const FormatMetadata & getFormatMetadata()
const noexcept = 0;
1348 virtual int getNumTransforms()
const noexcept = 0;
1352 virtual void prependTransform(
TransformRcPtr transform) noexcept = 0;
1375 const char * formatName,
1376 std::ostream & os)
const = 0;
1379 static int GetNumWriteFormats() noexcept;
1382 static const char * GetFormatNameByIndex(
int index) noexcept;
1383 static const char * GetFormatExtensionByIndex(
int index) noexcept;
1414 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1420 virtual
double getBase() const noexcept = 0;
1421 virtual
void setBase(
double base) noexcept = 0;
1425 virtual
void getLogSideSlopeValue(
double(&values)[3]) const noexcept = 0;
1426 virtual
void setLogSideSlopeValue(const
double(&values)[3]) noexcept = 0;
1427 virtual
void getLogSideOffsetValue(
double(&values)[3]) const noexcept = 0;
1428 virtual
void setLogSideOffsetValue(const
double(&values)[3]) noexcept = 0;
1429 virtual
void getLinSideSlopeValue(
double(&values)[3]) const noexcept = 0;
1430 virtual
void setLinSideSlopeValue(const
double(&values)[3]) noexcept = 0;
1431 virtual
void getLinSideOffsetValue(
double(&values)[3]) const noexcept = 0;
1432 virtual
void setLinSideOffsetValue(const
double(&values)[3]) noexcept = 0;
1463 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1469 virtual
double getBase() const noexcept = 0;
1470 virtual
void setBase(
double base) noexcept = 0;
1473 virtual
void getLogSideSlopeValue(
double(&values)[3]) const noexcept = 0;
1474 virtual
void setLogSideSlopeValue(const
double(&values)[3]) noexcept = 0;
1475 virtual
void getLogSideOffsetValue(
double(&values)[3]) const noexcept = 0;
1476 virtual
void setLogSideOffsetValue(const
double(&values)[3]) noexcept = 0;
1477 virtual
void getLinSideSlopeValue(
double(&values)[3]) const noexcept = 0;
1478 virtual
void setLinSideSlopeValue(const
double(&values)[3]) noexcept = 0;
1479 virtual
void getLinSideOffsetValue(
double(&values)[3]) const noexcept = 0;
1480 virtual
void setLinSideOffsetValue(const
double(&values)[3]) noexcept = 0;
1481 virtual
void getLinSideBreakValue(
double(&values)[3]) const noexcept = 0;
1482 virtual
void setLinSideBreakValue(const
double(&values)[3]) noexcept = 0;
1485 virtual
bool getLinearSlopeValue(
double(&values)[3]) const = 0;
1492 virtual
void setLinearSlopeValue(const
double(&values)[3]) = 0;
1494 virtual
void unsetLinearSlopeValue() = 0;
1522 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1526 virtual
bool equals(const
LogTransform & other) const noexcept = 0;
1528 virtual
double getBase() const noexcept = 0;
1529 virtual
void setBase(
double val) noexcept = 0;
1556 void validate()
const override;
1558 const char * getSrc()
const;
1559 void setSrc(
const char * src);
1561 const char * getDst()
const;
1562 void setDst(
const char *
dst);
1571 void setLooks(
const char * looks);
1573 bool getSkipColorSpaceConversion()
const;
1574 void setSkipColorSpaceConversion(
bool skip);
1582 static const char * GetLooksResultColorSpace(
const ConstConfigRcPtr & config,
1584 const char * looks);
1598 Impl * getImpl() {
return m_impl; }
1599 const Impl * getImpl()
const {
return m_impl; }
1621 virtual BitDepth getFileOutputBitDepth() const noexcept = 0;
1629 virtual
void setFileOutputBitDepth(
BitDepth bitDepth) noexcept = 0;
1631 virtual const
FormatMetadata & getFormatMetadata() const noexcept = 0;
1635 virtual
bool equals(const
Lut1DTransform & other) const noexcept = 0;
1637 virtual
unsigned long getLength() const = 0;
1642 virtual
void setLength(
unsigned long length) = 0;
1644 virtual
void getValue(
unsigned long index,
float &
r,
float &
g,
float &
b) const = 0;
1661 virtual
void setValue(
unsigned long index,
float r,
float g,
float b) = 0;
1663 virtual
bool getInputHalfDomain() const noexcept = 0;
1670 virtual
void setInputHalfDomain(
bool isHalfDomain) noexcept = 0;
1672 virtual
bool getOutputRawHalfs() const noexcept = 0;
1684 virtual
void setOutputRawHalfs(
bool isRawHalfs) noexcept = 0;
1724 virtual BitDepth getFileOutputBitDepth() const noexcept = 0;
1732 virtual
void setFileOutputBitDepth(
BitDepth bitDepth) noexcept = 0;
1734 virtual const
FormatMetadata & getFormatMetadata() const noexcept = 0;
1738 virtual
bool equals(const
Lut3DTransform & other) const noexcept = 0;
1740 virtual
unsigned long getGridSize() const = 0;
1745 virtual
void setGridSize(
unsigned long gridSize) = 0;
1747 virtual
void getValue(
unsigned long indexR,
1748 unsigned long indexG,
1749 unsigned long indexB,
1750 float & r,
float & g,
float & b) const = 0;
1763 virtual
void setValue(
unsigned long indexR,
1764 unsigned long indexG,
1765 unsigned long indexB,
1766 float r,
float g,
float b) = 0;
1795 virtual const FormatMetadata & getFormatMetadata() const noexcept = 0;
1799 virtual
bool equals(const
MatrixTransform & other) const noexcept = 0;
1801 virtual
void getMatrix(
double * m44) const = 0;
1816 virtual
void setMatrix(const
double * m44) = 0;
1818 virtual
void getOffset(
double * offset4) const = 0;
1829 virtual
void setOffset(const
double * offset4) = 0;
1842 virtual
BitDepth getFileInputBitDepth() const noexcept = 0;
1843 virtual
void setFileInputBitDepth(
BitDepth bitDepth) noexcept = 0;
1844 virtual
BitDepth getFileOutputBitDepth() const noexcept = 0;
1845 virtual
void setFileOutputBitDepth(
BitDepth bitDepth) noexcept = 0;
1855 static
void Fit(
double * m44,
double* offset4,
1856 const
double * oldmin4, const
double * oldmax4,
1857 const
double * newmin4, const
double * newmax4);
1859 static
void Identity(
double * m44,
double * offset4);
1861 static
void Sat(
double * m44,
double * offset4,
1862 double sat, const
double * lumaCoef3);
1864 static
void Scale(
double * m44,
double * offset4,
1865 const
double * scale4);
1867 static
void View(
double * m44,
double * offset4,
1869 const
double * lumaCoef3);
1910 virtual RangeStyle getStyle() const noexcept = 0;
1912 virtual
void setStyle(
RangeStyle style) noexcept = 0;
1914 virtual const
FormatMetadata & getFormatMetadata() const noexcept = 0;
1918 virtual
bool equals(const
RangeTransform & other) const noexcept = 0;
1933 virtual
BitDepth getFileInputBitDepth() const noexcept = 0;
1934 virtual
void setFileInputBitDepth(
BitDepth bitDepth) noexcept = 0;
1935 virtual
BitDepth getFileOutputBitDepth() const noexcept = 0;
1936 virtual
void setFileOutputBitDepth(
BitDepth bitDepth) noexcept = 0;
1950 virtual
double getMinInValue() const noexcept = 0;
1952 virtual
void setMinInValue(
double val) noexcept = 0;
1954 virtual
bool hasMinInValue() const noexcept = 0;
1956 virtual
void unsetMinInValue() noexcept = 0;
1959 virtual
void setMaxInValue(
double val) noexcept = 0;
1961 virtual
double getMaxInValue() const noexcept = 0;
1963 virtual
bool hasMaxInValue() const noexcept = 0;
1965 virtual
void unsetMaxInValue() noexcept = 0;
1968 virtual
void setMinOutValue(
double val) noexcept = 0;
1970 virtual
double getMinOutValue() const noexcept = 0;
1972 virtual
bool hasMinOutValue() const noexcept = 0;
1974 virtual
void unsetMinOutValue() noexcept = 0;
1977 virtual
void setMaxOutValue(
double val) noexcept = 0;
1979 virtual
double getMaxOutValue() const noexcept = 0;
1981 virtual
bool hasMaxOutValue() const noexcept = 0;
1983 virtual
void unsetMaxOutValue() noexcept = 0;
OCIO_SHARED_PTR< DisplayViewTransform > DisplayViewTransformRcPtr
2D control point used by GradingBSplineCurve.
PXL_API const char * getDescription(const ColorSpace *space)
Return the description of the color space.
OCIO_SHARED_PTR< LookTransform > LookTransformRcPtr
GradingControlPoint(float x, float y)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
RangeStyle
A RangeTransform may be set to clamp the values, or not.
Algorithms for Scene Linear color spaces.
OCIO_SHARED_PTR< ExponentTransform > ExponentTransformRcPtr
GradingRGBMSW(const double(&rgbmsw)[6])
OCIO_SHARED_PTR< DynamicPropertyGradingTone > DynamicPropertyGradingToneRcPtr
Interface used to access dynamic property double value.
OCIO_SHARED_PTR< const Transform > ConstTransformRcPtr
OCIO_SHARED_PTR< AllocationTransform > AllocationTransformRcPtr
bool isIdentity(const MatType &m)
Determine if a matrix is an identity matrix.
GradingRGBM(const double(&rgbm)[4])
GLuint GLsizei GLsizei * length
OCIOEXPORT bool operator!=(const GradingRGBM &lhs, const GradingRGBM &rhs)
OCIO_SHARED_PTR< Lut1DTransform > Lut1DTransformRcPtr
OCIO_SHARED_PTR< LogCameraTransform > LogCameraTransformRcPtr
GradingRGBMSW m_highlights
DynamicPropertyType
Types for dynamic properties.
GradingRGBM(double red, double green, double blue, double master)
GLenum GLenum GLsizei const GLuint GLboolean enabled
__hostdev__ void setValue(uint32_t offset, bool v)
Interface used to access dynamic property GradingTone value.
GradingRGBMSW(double start, double width)
class OCIOEXPORT DynamicProperty
GLenum const GLfloat * params
OCIO_SHARED_PTR< FixedFunctionTransform > FixedFunctionTransformRcPtr
OCIOEXPORT DynamicPropertyGradingPrimaryRcPtr AsGradingPrimary(DynamicPropertyRcPtr &prop)
__hostdev__ float getValue(uint32_t i) const
OCIO_SHARED_PTR< DynamicPropertyGradingRGBCurve > DynamicPropertyGradingRGBCurveRcPtr
OCIO_SHARED_PTR< ExponentWithLinearTransform > ExponentWithLinearTransformRcPtr
class OCIOEXPORT LookTransform
OCIO_SHARED_PTR< ColorSpaceTransform > ColorSpaceTransformRcPtr
OCIO_SHARED_PTR< const Context > ConstContextRcPtr
Interface used to access dynamic property ConstGradingRGBCurveRcPtr value.
Algorithms for Logarithmic color spaces.
OCIO_SHARED_PTR< DynamicPropertyDouble > DynamicPropertyDoubleRcPtr
OCIO_SHARED_PTR< Lut3DTransform > Lut3DTransformRcPtr
OCIOEXPORT DynamicPropertyGradingRGBCurveRcPtr AsGradingRGBCurve(DynamicPropertyRcPtr &prop)
OCIO_SHARED_PTR< ExposureContrastTransform > ExposureContrastTransformRcPtr
PXL_API const char * getName(const ColorSpace *space)
Return the name of the color space.
OCIO_SHARED_PTR< LogTransform > LogTransformRcPtr
class OCIOEXPORT GroupTransform
class OCIOEXPORT GradingBSplineCurve
class OCIOEXPORT Transform
OCIO_SHARED_PTR< GradingPrimaryTransform > GradingPrimaryTransformRcPtr
OCIO_SHARED_PTR< GradingBSplineCurve > GradingBSplineCurveRcPtr
GLuint const GLchar * name
GradingTone(GradingStyle style)
class OCIOEXPORT GradingRGBCurve
GLboolean GLboolean GLboolean b
GradingPrimary(GradingStyle style)
GA_API const UT_StringHolder transform
OCIO_SHARED_PTR< GradingRGBCurve > GradingRGBCurveRcPtr
OCIO_SHARED_PTR< MatrixTransform > MatrixTransformRcPtr
OCIO_SHARED_PTR< Transform > TransformRcPtr
GradingStyle
Styles for grading transforms.
class OCIOEXPORT DynamicPropertyGradingPrimary
OCIO_SHARED_PTR< const Config > ConstConfigRcPtr
OCIO_SHARED_PTR< RangeTransform > RangeTransformRcPtr
OCIO_SHARED_PTR< GradingToneTransform > GradingToneTransformRcPtr
OCIO_SHARED_PTR< DynamicPropertyGradingPrimary > DynamicPropertyGradingPrimaryRcPtr
GLenum GLsizei GLsizei GLint * values
OCIOEXPORT bool operator==(const GradingRGBM &lhs, const GradingRGBM &rhs)
Interface used to access dynamic property GradingPrimary value.
LeafData & operator=(const LeafData &)=delete
OCIO_SHARED_PTR< BuiltinTransform > BuiltinTransformRcPtr
OCIO_SHARED_PTR< FileTransform > FileTransformRcPtr
GA_API const UT_StringHolder pivot
Lut1DHueAdjust
Used by :cpp:classLut1DTransform to control optional hue restoration algorithm.
OCIO_SHARED_PTR< const GradingBSplineCurve > ConstGradingBSplineCurveRcPtr
class OCIOEXPORT AllocationTransform
OCIO_SHARED_PTR< LogAffineTransform > LogAffineTransformRcPtr
OCIOEXPORT std::ostream & operator<<(std::ostream &, const ColorSpaceMenuParameters &)
FixedFunctionStyle
Enumeration of the :cpp:class:FixedFunctionTransform transform algorithms.
OCIO_SHARED_PTR< GroupTransform > GroupTransformRcPtr
OCIOEXPORT DynamicPropertyDoubleRcPtr AsDouble(DynamicPropertyRcPtr &prop)
class OCIOEXPORT FileTransform
PXL_API void getLooks(UT_StringArray &looks)
Returns a list of looks (color transforms)
GradingRGBMSW(double red, double green, double blue, double master, double start, double width)
OCIO_SHARED_PTR< CDLTransform > CDLTransformRcPtr
class OCIOEXPORT DynamicPropertyGradingTone
OCIO_SHARED_PTR< GradingRGBCurveTransform > GradingRGBCurveTransformRcPtr
A BSpline curve defined with GradingControlPoint.
class OCIOEXPORT DisplayViewTransform
png_structrp int png_fixed_point red
OCIO_SHARED_PTR< const GradingRGBCurve > ConstGradingRGBCurveRcPtr
RGBCurveType
Types for GradingRGBCurve.
class OCIOEXPORT DynamicPropertyDouble
OCIOEXPORT DynamicPropertyGradingToneRcPtr AsGradingTone(DynamicPropertyRcPtr &prop)
ExposureContrastStyle
Enumeration of the :cpp:class:ExposureContrastTransform transform algorithms.
OCIO_SHARED_PTR< DynamicProperty > DynamicPropertyRcPtr
class OCIOEXPORT DynamicPropertyGradingRGBCurve