REALAPS -Omni（Ver 1）APIREALAPS-Hdr-Omni-DLL.dll
クラス ライブラリ説明書

2023 年 6 月 17 日株式会社 ビジュアル・テクノロジー研究所 （略称：VTL）

目次

III

REALAPS-Hdr-Omni-DLL.dll について ......................................... 1
1.1

REALAPS-Hdr-Omni-DLL.dll の概要 ................................................................................................ 1

1.2

REALAPS-Hdr-Omni-DLL.dll の呼び出し要件 ................................................................................. 1

クラス ライブラリ説明 ...................................................................... 2
1 HdrOmni クラス ..................................................................................................2
1.1プロパティ ........................................................................................................................................... 2

1.2

サブクラス ProjectionType クラス ..................................................................................................... 2

1.3メソッド............................................................................................................................................... 3

1.4

1

ReadFile() ( ) メソッド ................................................................................................................. 3

2

SaveOxyz ( ) メソッド .................................................................................................................. 4
使用例 .................................................................................................................................................. 5

I

REALAPS-Hdr-Omni-DLL.dll について
1.1 REALAPS-Hdr-Omni-DLL.dll の概要

REALAPS-Hdr-Omni-DLL.dll は、「Radiance が出力した HDR ファイルを OXYZ ファイルに変換する機能」を C#プログラムや 3D モデリングソフト Rhinoceros のプラグインツール Grasshopper から扱えるように、API 化したものです。

1.2 REALAPS-Hdr-Omni-DLL.dll の呼び出し要件

1.

64bit の DLL のため、64bit 呼び出しを行ってください。
フレームワークは .NET Framework 4.7.2 で作成されています。

2.

DLL は REALAPS-Omni をインストールしたフォルダ下にある"RhinoPlugin"フォルダにインストールされます。
Windows スタートメニューの"RhinoPlugin フォルダを開く"で、DLL のあるフォルダが開きます。

1

II
1

クラス ライブラリ説明
HdrOmni クラス
・Radiance が出力する HDR ファイルを読み込んで、メモリに展開します。
・REALAPS-Omni が扱うことができる OXYZ ファイルを出力します。

1.1 プロパティ
プロパティ一覧
名前型

説明

1

HdrFilename

string

読み込む HDR ファイルパス(ファイル名)

2

OxyzFilename

string

保存する OXYZ ファイルパス(ファイル名)

3

XYZ

float[ ][,]

メモリに展開した X,Y,Z データ、配列[0],[1],[2]にそれぞれの値が格納されています。

4

HdrHeaderstring

読み込んだ HDR ファイルのヘッダ内容

5

Widthint

読み込んだ HDR 画像ファイルの幅

6Heightint

読み込んだ HDR 画像ファイルの高さ

7

Notes

List<string>

自由に追記できる List データ

1.2 サブクラス ProjectionType クラス
・HDR ファイルの画像形式が正距円筒画像かそれ以外の画像なのかを指定します。
・画角を設定できます。

ProjectionType のプロパティ一覧
名前型

説明

1

Projection

HdrOmni.ProjTypeenum の ProjType2

HorizontalViewAngle

double水平画角

3VerticalViewAngle

double垂直画角

enum HdrOmni.ProjType 一覧
メンバー名

説明

1

Others

正距円筒画像以外の画像

2

Omni

正距円筒画像(全方位画像)

2

1.3 メソッド
メソッド一覧
名前説明

1

ReadFile( )HDR ファイルを読み込んで、OXYZ データをメモリ内に展開します。

2

SaveOxyz( )メモリに展開した OXYZ データを OXYZ ファイルとして保存します。

1ReadFile() ( ) メソッド
HDR ファイルを読み込んで、OXYZ データをメモリ内に展開します。

1-1 指定された HDR ファイルを読み込んで、OXYZ データを作成します。
また、ProjectionType クラスを引数にすると、正距円筒画像かそれ以外の画像かを指定できます。正距円筒画像以外の画像の場合は、水平画角と垂直画角を指定することもできます。

【構文】
enmResult ReadFile(string filename, ProjectionType projectionType = null)【引数】
string filename
Radiance が出力した HDR ファイルパス

ProjectionType projectionType

省略可能です。省略した場合は「正距円筒画像」扱いとなります。



このクラスに画像のタイプや画角が格納されています。

【戻り値】
返却値意味Success

成功しました。

ViewAngleError

画角が間違っています。

NotReadFileData

HDR ファイルが読み込めませんでした。

HeightNotHalfWidth

正距円筒画像なのに、画像サイズが 2:1 になっていません。

1-2 クラスを new したときに指定された HDR ファイルを読み込んで、OXYZ データを作成します。
また、ProjectionType クラスを引数にすると、正距円筒画像かそれ以外の画像かを指定できます。正距円筒画像以外の画像の場合は、水平画角と垂直画角を指定することもできます。

【構文】
enmResult ReadFile(ProjectionType projectionType = null)

3

【引数】
ProjectionType projectionType

省略可能です。省略した場合は「正距円筒画像」扱いとなります。



このクラスに画像のタイプや画角が格納されています。

【戻り値】

2

返却値

意味Success

成功しました。

ViewAngleError

画角が間違っています。

NotReadFileData

HDR ファイルが読み込めませんでした。

HeightNotHalfWidth

正距円筒画像なのに、画像サイズが 2:1 になっていません。

SaveOxyz ( ) メソッド
メモリに展開した OXYZ データを OXYZ ファイルとして保存します。

2-1 引数に指定した OXYZ ファイル名で、メモリに格納している OXYZ データを OXYZ ファイルとして保存します。
保存した後は、OxyzFilename プロパティに設定されます。

【構文】
enmResult SaveOxyz(string oxyzfilename)【引数】
string oxyzfilenameOXYZ ファイル名です。

【戻り値】
返却値意味

Success

成功しました。

ErrorNonData

メモリ内に XYZ データが格納されていません。

OxyzFileSaveError

OXYZ ファイルの保存に失敗しました。

2-2 OxyzFilename プロパティに設定された OXYZ ファイル名で、メモリに格納している OXYZ データをOXYZ ファイルとして保存します。
OxyzFilename プロパティを設定していないときは、HDR ファイル名の拡張子を oxyz としたものが設定されます。

4【構文】
enmResult SaveOxyz()

【戻り値】
返却値

意味

Success

成功しました。

ErrorNonData

メモリ内に XYZ データが格納されていません。

OxyzFileSaveError

OXYZ ファイルの保存に失敗しました。

1.4 使用例
HdrOmni.enmResult result;string hdrFilename = @"C:¥temp¥ClimateStudio¥ClimateStudio1.hdr";
HdrOmni hdrOmni = new HdrOmni();
result = hdrOmni.ReadFile(hdrFilename);
Print(result.ToString());
hdrOmni.Notes.Add("これは¥r¥n");
hdrOmni.Notes.Add("正距円筒画像です。");
result = hdrOmni.SaveOxyz();Print(result.ToString());

HdrOmni.ProjectionType pj = new HdrOmni.ProjectionType(HdrOmni.ProjType.Others, 1200, 1000);
result = hdrOmni.ReadFile(hdrFilename, pj);
Print(result.ToString());
hdrOmni.Notes.Clear();hdrOmni.Notes.Add("これはパース画像です");
result = hdrOmni.SaveOxyz();Print(result.ToString());

上記の 3～5 行目は次のようにすることもできます。
HdrOmni hdrOmni = new HdrOmni(hdrFilename);
result = hdrOmni.ReadFile();Print(result.ToString());

5