72 #pragma warning( disable: 4786)
99 if (XYZ1[0]!=XYZ2[0] ||
156 if (!illumRange.
steps || !illum)
174 int i, n = illumRange.
steps;
183 for (i=0; i<n; i++) {
184 rv += Ycmf[i]*illum[i];
191 for (i=0; i<n; i++) {
192 rv += Ycmf[i]*illum[i];
207 int i, n = whiteRange.
steps;
216 for (i=0; i<n; i++) {
217 rv += Ycmf[i]*pWhite[i];
224 for (i=0; i<n; i++) {
225 rv += Ycmf[i]*pWhite[i];
234 if (!pView || !pWhite)
237 int i, n = range.
steps, size = 3*n;
254 for (i = 0; i < 3; i++) {
256 fptr += observerRange.
steps;
267 fptr = &obs[range.
steps];
268 for (i=0; i<(int)range.
steps; i++) {
269 k += fptr[i]*pWhite[i];
273 for (i=0; i<size; i++) {
302 pMtx = pAdjust->
Mult(pMtx);
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
CIccCombinedConnectionConditions(CIccProfile *pProfile, IIccProfileConnectionConditions *pAppliedPCC, bool bReflectance=false)
virtual void getLumIlluminantXYZ(icFloatNumber *pXYZLum)
virtual ~CIccCombinedConnectionConditions()
virtual CIccTagMultiProcessElement * getStandardToCustomPcc()
CIccTagSpectralViewingConditions * m_pViewingConditions
icFloatNumber m_illuminantXYZLum[3]
IIccProfileConnectionConditions * m_pPCC
icFloatNumber m_mediaXYZ[3]
icFloatNumber m_illuminantXYZ[3]
virtual const CIccTagSpectralViewingConditions * getPccViewingConditions()
virtual CIccTagMultiProcessElement * getCustomToStandardPcc()
virtual void getNormIlluminantXYZ(icFloatNumber *pXYZ)
virtual bool getMediaWhiteXYZ(icFloatNumber *pXYZ)
icFloatNumber * entry(icUInt16Number nRow, icUInt16Number nCol=0)
icFloatNumber RowSum(icUInt16Number nRow) const
Name: CIccMatrixMath::RowSum.
void VectorScale(const icFloatNumber *vec)
Name: CIccMatrixMath::VectorScale.
CIccMatrixMath * Mult(const CIccMatrixMath *matrix) const
Name: CIccMatrixMath::Mult.
static CIccMatrixMath * rangeMap(const icSpectralRange &from, const icSpectralRange &to)
Name: CIccMatrixMath::rangeMap.
virtual void VectorMult(icFloatNumber *pDst, const icFloatNumber *pSrc) const
Name: CIccMatrixMath::VectorMult.
void Scale(icFloatNumber v)
Name: CIccMatrixMath::Scale.
Class: CIccTagMultiProcessElement.
Class: CIccTagSpectralViewingConditions.
CIccMatrixMath * getObserverMatrix(const icSpectralRange &newRange) const
const icFloatNumber * getObserver(icSpectralRange &observerRange) const
icFloatNumber getIlluminantCCT() const
virtual CIccTag * NewCopy() const
Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
icIlluminant getStdIllumiant() const
icFloatXYZNumber m_illuminantXYZ
const icFloatNumber * getIlluminant(icSpectralRange &illumRange) const
bool setIlluminant(icIlluminant illumId, const icSpectralRange &illumRange, const icFloatNumber *illum, icFloatNumber illumCCT=0.0f)
icStandardObserver getStdObserver() const
virtual CIccTagMultiProcessElement * getStandardToCustomPcc()=0
icFloatNumber getObserverIlluminantScaleFactor()
icFloatNumber * getEmissiveObserver(const icSpectralRange &range, const icFloatNumber *pWhite, icFloatNumber *obsMatrix=NULL)
virtual const CIccTagSpectralViewingConditions * getPccViewingConditions()=0
icIlluminant getPccIlluminant()
virtual CIccTagMultiProcessElement * getCustomToStandardPcc()=0
icFloatNumber getObserverWhiteScaleFactor(const icFloatNumber *pWhite, const icSpectralRange &whiteRange)
CIccMatrixMath * getReflectanceObserver(const icSpectralRange &rangeRef)
virtual void getNormIlluminantXYZ(icFloatNumber *pXYZ)=0
bool isEquivalentPcc(IIccProfileConnectionConditions &IPCC)
icStandardObserver getPccObserver()
icFloatNumber getPccCCT()