/**@class android.graphics.ColorSpace.Rgb
@extends android.graphics.ColorSpace

 {@usesMathJax}

 <p>An RGB color space is an additive color space using the
 {@link android.graphics.ColorSpace.Model#RGB RGB} color model (a color is therefore represented
 by a tuple of 3 numbers).</p>

 <p>A specific RGB color space is defined by the following properties:</p>
 <ul>
     <li>Three chromaticities of the red, green and blue primaries, which
     define the gamut of the color space.</li>
     <li>A white point chromaticity that defines the stimulus to which
     color space values are normalized (also just called "white").</li>
     <li>An opto-electronic transfer function, also called opto-electronic
     conversion function or often, and approximately, gamma function.</li>
     <li>An electro-optical transfer function, also called electo-optical
     conversion function or often, and approximately, gamma function.</li>
     <li>A range of valid RGB values (most commonly \([0..1]\)).</li>
 </ul>

 <p>The most commonly used RGB color space is {@link android.graphics.ColorSpace.Named#SRGB sRGB}.</p>

 <h3>Primaries and white point chromaticities</h3>
 <p>In this implementation, the chromaticity of the primaries and the white
 point of an RGB color space is defined in the CIE xyY color space. This
 color space separates the chromaticity of a color, the x and y components,
 and its luminance, the Y component. Since the primaries and the white
 point have full brightness, the Y component is assumed to be 1 and only
 the x and y components are needed to encode them.</p>
 <p>For convenience, this implementation also allows to define the
 primaries and white point in the CIE XYZ space. The tristimulus XYZ values
 are internally converted to xyY.</p>

 <p>
     <img style="display: block; margin: 0 auto;" src="{@docRoot}reference/android/images/graphics/colorspace_srgb.png" />
     <figcaption style="text-align: center;">sRGB primaries and white point</figcaption>
 </p>

 <h3>Transfer functions</h3>
 <p>A transfer function is a color component conversion function, defined as
 a single variable, monotonic mathematical function. It is applied to each
 individual component of a color. They are used to perform the mapping
 between linear tristimulus values and non-linear electronic signal value.</p>
 <p>The <em>opto-electronic transfer function</em> (OETF or OECF) encodes
 tristimulus values in a scene to a non-linear electronic signal value.
 An OETF is often expressed as a power function with an exponent between
 0.38 and 0.55 (the reciprocal of 1.8 to 2.6).</p>
 <p>The <em>electro-optical transfer function</em> (EOTF or EOCF) decodes
 a non-linear electronic signal value to a tristimulus value at the display.
 An EOTF is often expressed as a power function with an exponent between
 1.8 and 2.6.</p>
 <p>Transfer functions are used as a compression scheme. For instance,
 linear sRGB values would normally require 11 to 12 bits of precision to
 store all values that can be perceived by the human eye. When encoding
 sRGB values using the appropriate OETF (see {@link android.graphics.ColorSpace.Named#SRGB sRGB} for
 an exact mathematical description of that OETF), the values can be
 compressed to only 8 bits precision.</p>
 <p>When manipulating RGB values, particularly sRGB values, it is safe
 to assume that these values have been encoded with the appropriate
 OETF (unless noted otherwise). Encoded values are often said to be in
 "gamma space". They are therefore defined in a non-linear space. This
 in turns means that any linear operation applied to these values is
 going to yield mathematically incorrect results (any linear interpolation
 such as gradient generation for instance, most image processing functions
 such as blurs, etc.).</p>
 <p>To properly process encoded RGB values you must first apply the
 EOTF to decode the value into linear space. After processing, the RGB
 value must be encoded back to non-linear ("gamma") space. Here is a
 formal description of the process, where \(f\) is the processing
 function to apply:</p>

 $$RGB_{out} = OETF(f(EOTF(RGB_{in})))$$

 <p>If the transfer functions of the color space can be expressed as an
 ICC parametric curve as defined in ICC.1:2004-10, the numeric parameters
 can be retrieved by calling {@link #getTransferParameters}(). This can
 be useful to match color spaces for instance.</p>

 <p class="note">Some RGB color spaces, such as {@link android.graphics.ColorSpace.Named#ACES} and
 {@link android.graphics.ColorSpace.Named#LINEAR_EXTENDED_SRGB scRGB}, are said to be linear because
 their transfer functions are the identity function: \(f(x) = x\).
 If the source and/or destination are known to be linear, it is not
 necessary to invoke the transfer functions.</p>

 <h3>Range</h3>
 <p>Most RGB color spaces allow RGB values in the range \([0..1]\). There
 are however a few RGB color spaces that allow much larger ranges. For
 instance, {@link android.graphics.ColorSpace.Named#EXTENDED_SRGB scRGB} is used to manipulate the
 range \([-0.5..7.5]\) while {@link android.graphics.ColorSpace.Named#ACES ACES} can be used throughout
 the range \([-65504, 65504]\).</p>

 <p>
     <img style="display: block; margin: 0 auto;" src="{@docRoot}reference/android/images/graphics/colorspace_scrgb.png" />
     <figcaption style="text-align: center;">Extended sRGB and its large range</figcaption>
 </p>

 <h3>Converting between RGB color spaces</h3>
 <p>Conversion between two color spaces is achieved by using an intermediate
 color space called the profile connection space (PCS). The PCS used by
 this implementation is CIE XYZ. The conversion operation is defined
 as such:</p>

 $$RGB_{out} = OETF(T_{dst}^{-1} \cdot T_{src} \cdot EOTF(RGB_{in}))$$

 <p>Where \(T_{src}\) is the {@link #getTransform() RGB to XYZ transform}
 of the source color space and \(T_{dst}^{-1}\) the {@link #getInverseTransform()
 XYZ to RGB transform} of the destination color space.</p>
 <p>Many RGB color spaces commonly used with electronic devices use the
 standard illuminant {@link #ILLUMINANT_D65 D65}. Care must be take however
 when converting between two RGB color spaces if their white points do not
 match. This can be achieved by either calling
 {@link #adapt(ColorSpace, float[])} to adapt one or both color spaces to
 a single common white point. This can be achieved automatically by calling
 {@link android.graphics.ColorSpace#connect(android.graphics.ColorSpace, android.graphics.ColorSpace)}, which also handles
 non-RGB color spaces.</p>
 <p>To learn more about the white point adaptation process, refer to the
 documentation of {@link android.graphics.ColorSpace.Adaptation}.</p>
*/
var Rgb = {

/**Copies the non-adapted CIE xyY white point of this color space in
 specified array. The Y component is assumed to be 1 and is therefore
 not copied into the destination. The x and y components are written
 in the array at positions 0 and 1 respectively.
@param {Object {float[]}} whitePoint The destination array, cannot be null, its length
                   must be >= 2
@return {Number} The destination array passed as a parameter
@see #getWhitePoint(float[])
*/
getWhitePoint : function(  ) {},

/**Returns the non-adapted CIE xyY white point of this color space as
 a new array of 2 floats. The Y component is assumed to be 1 and is
 therefore not copied into the destination. The x and y components
 are written in the array at positions 0 and 1 respectively.
@return {Number} A new non-null array of 2 floats
@see #getWhitePoint()
*/
getWhitePoint : function(  ) {},

/**Copies the primaries of this color space in specified array. The Y
 component is assumed to be 1 and is therefore not copied into the
 destination. The x and y components of the first primary are written
 in the array at positions 0 and 1 respectively.
@param {Object {float[]}} primaries The destination array, cannot be null, its length
                  must be >= 6
@return {Number} The destination array passed as a parameter
@see #getPrimaries(float[])
*/
getPrimaries : function(  ) {},

/**Returns the primaries of this color space as a new array of 6 floats.
 The Y component is assumed to be 1 and is therefore not copied into
 the destination. The x and y components of the first primary are
 written in the array at positions 0 and 1 respectively.
@return {Number} A new non-null array of 2 floats
@see #getWhitePoint()
*/
getPrimaries : function(  ) {},

/**<p>Copies the transform of this color space in specified array. The
 transform is used to convert from RGB to XYZ (with the same white
 point as this color space). To connect color spaces, you must first
 {@link android.graphics.ColorSpace#adapt(android.graphics.ColorSpace, float[]) adapt} them to the
 same white point.</p>
 <p>It is recommended to use {@link android.graphics.ColorSpace#connect(android.graphics.ColorSpace, android.graphics.ColorSpace)}
 to convert between color spaces.</p>
@param {Object {float[]}} transform The destination array, cannot be null, its length
                  must be >= 9
@return {Number} The destination array passed as a parameter
@see #getInverseTransform()
*/
getTransform : function(  ) {},

/**<p>Returns the transform of this color space as a new array. The
 transform is used to convert from RGB to XYZ (with the same white
 point as this color space). To connect color spaces, you must first
 {@link android.graphics.ColorSpace#adapt(android.graphics.ColorSpace, float[]) adapt} them to the
 same white point.</p>
 <p>It is recommended to use {@link android.graphics.ColorSpace#connect(android.graphics.ColorSpace, android.graphics.ColorSpace)}
 to convert between color spaces.</p>
@return {Number} A new array of 9 floats
@see #getInverseTransform(float[])
*/
getTransform : function(  ) {},

/**<p>Copies the inverse transform of this color space in specified array.
 The inverse transform is used to convert from XYZ to RGB (with the
 same white point as this color space). To connect color spaces, you
 must first {@link android.graphics.ColorSpace#adapt(android.graphics.ColorSpace, float[]) adapt} them
 to the same white point.</p>
 <p>It is recommended to use {@link android.graphics.ColorSpace#connect(android.graphics.ColorSpace, android.graphics.ColorSpace)}
 to convert between color spaces.</p>
@param {Object {float[]}} inverseTransform The destination array, cannot be null, its length
                  must be >= 9
@return {Number} The destination array passed as a parameter
@see #getTransform()
*/
getInverseTransform : function(  ) {},

/**<p>Returns the inverse transform of this color space as a new array.
 The inverse transform is used to convert from XYZ to RGB (with the
 same white point as this color space). To connect color spaces, you
 must first {@link android.graphics.ColorSpace#adapt(android.graphics.ColorSpace, float[]) adapt} them
 to the same white point.</p>
 <p>It is recommended to use {@link android.graphics.ColorSpace#connect(android.graphics.ColorSpace, android.graphics.ColorSpace)}
 to convert between color spaces.</p>
@return {Number} A new array of 9 floats
@see #getTransform(float[])
*/
getInverseTransform : function(  ) {},

/**<p>Returns the opto-electronic transfer function (OETF) of this color space.
 The inverse function is the electro-optical transfer function (EOTF) returned
 by {@link #getEotf}(). These functions are defined to satisfy the following
 equality for \(x \in [0..1]\):</p>

 $$OETF(EOTF(x)) = EOTF(OETF(x)) = x$$

 <p>For RGB colors, this function can be used to convert from linear space
 to "gamma space" (gamma encoded). The terms gamma space and gamma encoded
 are frequently used because many OETFs can be closely approximated using
 a simple power function of the form \(x^{\frac{1}{\gamma}}\) (the
 approximation of the {@link android.graphics.ColorSpace.Named#SRGB sRGB} OETF uses \(\gamma=2.2\)
 for instance).</p>
@return {Object {java.util.function.DoubleUnaryOperator}} A transfer function that converts from linear space to "gamma space"
@see #getEotf()
@see #getTransferParameters()
*/
getOetf : function(  ) {},

/**<p>Returns the electro-optical transfer function (EOTF) of this color space.
 The inverse function is the opto-electronic transfer function (OETF)
 returned by {@link #getOetf}(). These functions are defined to satisfy the
 following equality for \(x \in [0..1]\):</p>

 $$OETF(EOTF(x)) = EOTF(OETF(x)) = x$$

 <p>For RGB colors, this function can be used to convert from "gamma space"
 (gamma encoded) to linear space. The terms gamma space and gamma encoded
 are frequently used because many EOTFs can be closely approximated using
 a simple power function of the form \(x^\gamma\) (the approximation of the
 {@link android.graphics.ColorSpace.Named#SRGB sRGB} EOTF uses \(\gamma=2.2\) for instance).</p>
@return {Object {java.util.function.DoubleUnaryOperator}} A transfer function that converts from "gamma space" to linear space
@see #getOetf()
@see #getTransferParameters()
*/
getEotf : function(  ) {},

/**<p>Returns the parameters used by the {@link #getEotf() electro-optical}
 and {@link #getOetf() opto-electronic} transfer functions. If the transfer
 functions do not match the ICC parametric curves defined in ICC.1:2004-10
 (section 10.15), this method returns null.</p>

 <p>See {@link android.graphics.Rgb.TransferParameters} for a full description of the transfer
 functions.</p>
@return {Object {android.graphics.ColorSpace.Rgb.TransferParameters}} An instance of {@link TransferParameters} or null if this color
         space's transfer functions do not match the equation defined in
         {@link TransferParameters}
*/
getTransferParameters : function(  ) {},

/**
*/
isSrgb : function(  ) {},

/**
*/
isWideGamut : function(  ) {},

/**
*/
getMinValue : function(  ) {},

/**
*/
getMaxValue : function(  ) {},

/**<p>Decodes an RGB value to linear space. This is achieved by
 applying this color space's electro-optical transfer function
 to the supplied values.</p>

 <p>Refer to the documentation of {@link android.graphics.ColorSpace.Rgb} for
 more information about transfer functions and their use for
 encoding and decoding RGB values.</p>
@param {Number} r The red component to decode to linear space
@param {Number} g The green component to decode to linear space
@param {Number} b The blue component to decode to linear space
@return {Number} A new array of 3 floats containing linear RGB values
@see #toLinear(float[])
@see #fromLinear(float, float, float)
*/
toLinear : function(  ) {},

/**<p>Decodes an RGB value to linear space. This is achieved by
 applying this color space's electro-optical transfer function
 to the first 3 values of the supplied array. The result is
 stored back in the input array.</p>

 <p>Refer to the documentation of {@link android.graphics.ColorSpace.Rgb} for
 more information about transfer functions and their use for
 encoding and decoding RGB values.</p>
@param {Object {float[]}} v A non-null array of non-linear RGB values, its length
          must be at least 3
@return {Number} The specified array
@see #toLinear(float, float, float)
@see #fromLinear(float[])
*/
toLinear : function(  ) {},

/**<p>Encodes an RGB value from linear space to this color space's
 "gamma space". This is achieved by applying this color space's
 opto-electronic transfer function to the supplied values.</p>

 <p>Refer to the documentation of {@link android.graphics.ColorSpace.Rgb} for
 more information about transfer functions and their use for
 encoding and decoding RGB values.</p>
@param {Number} r The red component to encode from linear space
@param {Number} g The green component to encode from linear space
@param {Number} b The blue component to encode from linear space
@return {Number} A new array of 3 floats containing non-linear RGB values
@see #fromLinear(float[])
@see #toLinear(float, float, float)
*/
fromLinear : function(  ) {},

/**<p>Encodes an RGB value from linear space to this color space's
 "gamma space". This is achieved by applying this color space's
 opto-electronic transfer function to the first 3 values of the
 supplied array. The result is stored back in the input array.</p>

 <p>Refer to the documentation of {@link android.graphics.ColorSpace.Rgb} for
 more information about transfer functions and their use for
 encoding and decoding RGB values.</p>
@param {Object {float[]}} v A non-null array of linear RGB values, its length
          must be at least 3
@return {Number} A new array of 3 floats containing non-linear RGB values
@see #fromLinear(float[])
@see #toLinear(float, float, float)
*/
fromLinear : function(  ) {},

/**
*/
toXyz : function(  ) {},

/**
*/
fromXyz : function(  ) {},

/**
*/
equals : function(  ) {},

/**
*/
hashCode : function(  ) {},


};