IRayTraceNSCData

ノンシーケンシャル モードでの光線追跡モードは、IRayTraceNSCData のみです。

ツールを起動して、追跡する光線の最大数、各光線を構成するセグメントの最大数、コヒーレンス長をユーザー側で選択します。

CreateNSC (int MaxRays, int maxSegments, double coherenceLength)

つづいて、AddRay 関数で光線を 1 本ずつ定義します。

AddRay (int waveNumber, int surf, NSCTraceOptions mode, double X, double Y, double Z, double L, double M, double N, int InsideOf, double exr, double exi, double eyr, double eyi, double ezr, double ezi)

光線は、次の引数で定義します。

  • int waveNumber : 波長番号で表した波長。
  • int surf : 光線追跡の開始面。
  • NSCTraceOptions : 光線を追跡するためのノンシーケンシャル オプション。次の 8 つのオプションがあります。後半の 4 つのオプションは、MATLAB と Python が .NET の enum に正しく対応していないことから追加されています。C# と C++ では、OR 演算子をビット単位で使用して前半の 4 つのオプションを結び付けることができます。
    • None (なし)
    • UsePolarization (偏光を使用)
    • UseSplitting (光線分割を使用)
    • UseScattering (散乱を使用)
    • UsePolarizationSplitting (偏光と光線分割を使用)
    • UsePolarizationScattering (偏光と散乱を使用)
    • UseSplittingScattering (光線分割と散乱を使用)
    • UsePolarizationSplittingScattering (偏光、光線分割、散乱を使用)
  • double X、Y、Z : 開始面における光線の座標。
  • double L、M、N : 開始面における光線の方向余弦。
  • int InsideOf : 開始面がオブジェクトの内部にあるかどうかを指定します。開始面が空気中にある場合は InsideOf = 0、その他の場合は、開始面が存在するオブジェクトと同じ値とします。
  • double exr、exi、eyr、eyi、ezr、ezi : 開始面における光線の電界。

入力強度は必ず 1.0 であると仮定します。したがって、電界強度を使用する場合は、それも 1.0 になります。

偏光光線追跡を使用する場合 (NSCTraceOptions = UsePolarization)、電界の初期値を指定する必要があります。ユーザー アプリケーションでは、定義されたベクトルが光線の伝搬ベクトルと直交し、結果として生じる強度が開始強度の値と一致するようにする必要があります。そうでない場合、誤った光線追跡の結果が生成されます。

結果

結果を返すメソッドとして以下の 2 つがあります。一方は光線ごとに結果を読み取り、もう一方はセグメントごとに結果を読み取ります。

ReadNextResult (out int rayNumber, out int ErrorCode, out int wave, out int numSegments)
 
ReadNextSegment (out int segmentLevel, out int segmentParent, out int hitObj, out int InsideOf, out double X, out double Y, out double Z, out double L, out double M, out double N, out double exr, out double exi, out double eyr, out double eyi, out double ezr, out double ezi, out double intensity, out double pathLength)
  • rayNumber
  • ErrorCode
  • 波長
  • numSegments : 光線のセグメント数。
  • segmentLevel
  • segmentParent
  • hitObj
  • InsideOf
  • double X, out double Y, out double Z
  • double L, out double M, out double N
  • double exr, out double exi, out double eyr, out double eyi, out double ezr, out double ezi
  • intensity : 光線の相対透過強度。
  • double intensity
  • double pathLengthレンズユニット内の物理的な長さであり、光路長ではありません

次へ :