Profile angle calculations should not depend on Incoming/Outgoing direction. Coordinate system is entirely changing and Theta and Phi are calculated in the same way for either Incoming or Outgoing directions.
Should be this:
|
double BSDFDirections::correctPhiForOutgoingDirection(double currentPhi) |
|
{ |
|
return (currentPhi > 360) ? currentPhi - 360 : currentPhi; |
|
} |
instead of:
|
double BSDFDirections::correctPhiForOutgoingDireciton(const BSDFDirection & t_Side, |
|
const size_t nPhis, |
|
double currentPhi) |
|
{ |
|
double correctedPhi = |
|
(t_Side == BSDFDirection::Outgoing && nPhis != 1) ? currentPhi + 180 : currentPhi; |
|
return (correctedPhi > 360) ? correctedPhi - 360 : correctedPhi; |
|
} |
Profile angle calculations should not depend on Incoming/Outgoing direction. Coordinate system is entirely changing and Theta and Phi are calculated in the same way for either Incoming or Outgoing directions.
Should be this:
Windows-CalcEngine/src/SingleLayerOptics/src/BSDFDirections.cpp
Lines 97 to 100 in 6c7f0a5
instead of:
Windows-CalcEngine/src/SingleLayerOptics/src/BSDFDirections.cpp
Lines 99 to 106 in e2a05f6