関数merge_3d_data_array マニュアル

(The documentation of function merge_3d_data_array)

Last Update: 2023/12/13


◆機能・用途(Purpose)

配列で与えられた複数の3次元データを統合する。
Merge multiple 3-D data given by an array.


◆形式(Format)

#include <3d_data/operation.h>
inline struct _3d_data merge_3d_data_array
(const int N,const struct _3d_data ∗data_original);


◆引数(Arguments)

N 統合する入力3次元データの個数。
The number of input 3-D data to merge.
data_original 統合する入力3次元データを並べた配列。
An array composed of the input 3-D data to merge.


◆戻り値(Return value)

引数で与えられた全ての入力3次元データをマージした3次元データ。 入力3次元データの定義域に領域や抜けがある場合はエラーとなる。
A 3-D data obtained by merging all input 3-D data given by the arguments. If the definition ranges of the input 3-D data had overlaps or gaps, the program finishes as an error.


◆使用例(Example)

struct _3d_data original[4];
struct _3d_data merged=merge_3d_data(4,original);


◆使用上の注意(Note)

入力3次元データの定義域は互いに重複なく、 かつ全体として1つの直方体領域をなす必要がある。
The definition ranges of the input 3-D data must not have overlaps, and they must constitute a rectangular-solid volume as a whole.

例えば[0,1000]×[0,1000]×[0,1000]の範囲で定義された3次元データと [500,1500]×[0,1000]×[0,1000]の範囲で定義された3次元データは 定義域に重複があるのでマージできない。
For example, 3-D data defined in [0,1000]×[0,1000]×[0,1000] and [500,1500]×[0,1000]×[0,1000] cannot be merged because they have overlaps in the definition ranges.

また、[0,1000]×[0,1000]×[0,1000]の範囲で定義された3次元データ、 [1000,2000]×[0,1000]×[0,1000]の範囲で定義された3次元データ、 [1000,2000]×[1000,2000]×[0,1000]の範囲で定義された3次元データ の3つをマージすることも出来ない。 というのは、この3つのデータをマージすると定義域は [0,2000]×[0,2000]×[0,1000]となるが、 このうちの[0,1000]×[1000,2000]×[0,1000]の範囲のデータが 存在しないからである。
Another failed example is three 3-D data defined in [0,1000]×[0,1000]×[0,1000], [1000,2000]×[0,1000]×[0,1000], and [1000,2000]×[1000,2000]×[0,1000]; they cannot be merged because the definition range of the marged 3-D data would be [0,2000]×[0,2000]×[0,1000] that consists of a region of no data in [0,1000]×[1000,2000]×[0,1000].