Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
CIccOpDefCartesianToPolar Class Reference
+ Inheritance diagram for CIccOpDefCartesianToPolar:
+ Collaboration diagram for CIccOpDefCartesianToPolar:

Public Member Functions

virtual bool Exec (SIccCalcOp *op, SIccOpState &os)
 
- Public Member Functions inherited from IIccOpDef
virtual int ArgsPushed (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 
virtual int ArgsUsed (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 
virtual void Describe (SIccCalcOp &op, std::string &desc, int nVerboseness)
 
 IIccOpDef ()
 
virtual bool IsValid (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 
virtual ~IIccOpDef ()
 

Detailed Description

Definition at line 1448 of file IccMpeCalc.cpp.

Member Function Documentation

◆ Exec()

virtual bool CIccOpDefCartesianToPolar::Exec ( SIccCalcOp * op,
SIccOpState & os )
inlinevirtual

Reimplemented from IIccOpDef.

Definition at line 1451 of file IccMpeCalc.cpp.

1452 {
1453 int j, n = op->data.select.v1+1;
1454 icFloatNumber a1, a2;
1455 int tn = n*2;
1456 size_t ss = os.pStack->size();
1457 if (tn>(int)ss)
1458 return false;
1459 icFloatNumber *s = &(*os.pStack)[ss-tn];
1460 for (j=0; j<n; j++) {
1461 a1 = s[j];
1462 a2 = s[j+n];
1463 s[j] = (icFloatNumber)sqrt(a2*a2 + a1*a1);
1464 icFloatNumber h = (icFloatNumber)atan2(a2, a1) * 180.0f / (icFloatNumber)icPiNum;
1465 if (h<0.0f)
1466 h += 360.0f;
1467 s[j+n] = h;
1468 }
1469 return true;
1470 }
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
#define icPiNum
Definition IccUtil.h:85
icUInt16Number v1
Definition IccMpeCalc.h:243
struct SIccCalcOp::@1::@2 select
union SIccCalcOp::@1 data
CIccFloatVector * pStack
Definition IccMpeCalc.h:275

References SIccCalcOp::data, icPiNum, SIccOpState::pStack, SIccCalcOp::select, and SIccCalcOp::v1.


The documentation for this class was generated from the following file: