8#ifndef DESIGNLAB_SIMULATION_MAP_PARAMETER_H_
9#define DESIGNLAB_SIMULATION_MAP_PARAMETER_H_
70 void SetOption(
const std::vector<SimulationMapOption> create_options) {
71 assert(!create_options.empty());
73 for (
const auto& i : create_options) {
74 option |=
static_cast<unsigned int>(i);
85 constexpr void SetMapSize(
const float max_x,
const float min_x,
86 const float max_y,
const float min_y,
87 const float start_rough_x,
const float map_base_z) {
88 assert(min_x < max_x);
89 assert(min_y < max_y);
90 assert(min_x < start_rough_x);
91 assert(start_rough_x < max_x);
102 assert(0 < interval);
126 const float height_max) {
127 assert(height_min < height_max);
177 "マップ生成のオプション.複数指定したいならば足し合わせて指定すること.("
195 stripe_interval,
"Stripe",
196 "各種模様や穴を作成する際,これで指定したマス分(1マス20[mm])の1辺を持つ"
197 "正方形状にあなをあける.0より大きくすること.");
200 hole_rate,
"Perforated",
201 "不整地上の足場を除外する割合.ホール率[%].0~100の間にすること.");
204 step_height,
"Step",
"段差高さ[mm].負の値にすると下りの階段になる.");
206 step_length,
"Step",
"階段の奥行[mm].正の値にすること.");
215 rough_max_height,
"Rough",
216 "デコボコな地形の最大高さ[mm].最小値より大きい値にすること.");
234 radial_angle_offset,
"Radial",
"放射状の地形の角度オフセット[deg].");
240 base_z, map_max_x, map_min_x, map_max_y, map_min_y,
241 map_start_rough_x, stripe_interval, hole_rate,
242 step_height, step_length, slope_angle, tilt_angle,
243 rough_max_height, rough_min_height, circle_center,
244 circle_radius, donut_radius, radial_center,
245 radial_division, radial_hole_rate,
246 radial_angle_offset);
std::string EnumValuesToString(const std::string separator)
enum型を渡すと,その要素を列挙した文字列を返す関数.
SimulationMapOption
getMap関数のマップ生成のオプションを指定する列挙体. bit演算を利用して複数指定できる. 例えば穴あきかつ,階段状にしたいならば, MapCreateOption::kPerforated ...
@ kTilt
縦軸を中心軸として回転させた地形に変化させる.
@ kRadiation
放射状の地形に変化させる.
@ kPerforated
穴の空いたマップに変化させる.
SimulationMapMode
getMap関数のマップ生成のモードを指定する列挙体.
@ kHorizontalStripe
横じまの面を生成する.
@ kVerticalStripe
縦じまの面を生成する.
@ kLatticePoint
格子点の面を生成する.網目状の逆.
@ kMesh
格子状の面を生成する.網目状の地形ともいっていい.
@ kDiagonalStripe
斜めじまの面を生成する.
マップ生成時のモードとオプションを指定する構造体.
int radial_hole_rate
放射状の地形のホール率[%].
int radial_division
放射状の地形の分割数.
float map_max_y
マップのY座標の最大値.
int stripe_interval
各種模様や穴を作成する際,これで指定したマス分の1辺を持つ正方形状にあなをあける.
float map_min_x
マップのX座標の最小値.
float step_length
階段の奥行[mm]
float map_start_rough_x
不整地が始まるX座標.
constexpr void SetTiltAngle(const float angle)
float circle_radius
円 / ドーナツの半径.
constexpr SimulationMapParameter()
float radial_angle_offset
放射状の地形の角度オフセット[deg].
float map_min_y
マップのY座標の最小値.
constexpr void SetHoleRate(const int rate)
float donut_radius
ドーナツの内側の半径.
constexpr void SetMode(const SimulationMapMode create_mode)
マップ生成のモードを指定する.
unsigned int option
マップ生成のオプションを指定するbit.
Vector2 radial_center
放射状の地形の中心座標.
float step_height
段差高さ[mm].負の値にすると下りの階段になる.
constexpr void SetMapSize(const float max_x, const float min_x, const float max_y, const float min_y, const float start_rough_x, const float map_base_z)
マップの大きさを指定する.
float rough_min_height
デコボコな地形の最小高さ[mm]
float map_max_x
マップのX座標の最大値.
float slope_angle
斜面の傾斜角[deg]
float rough_max_height
デコボコな地形の最大高さ[mm]
float tilt_angle
地形を傾ける角度[deg]
constexpr void SetStripeInterval(const int interval)
float base_z
マップの基準となるZ座標.
constexpr void SetSlopeAngle(const float angle)
Vector3 circle_center
円 / ドーナツの中心座標.
constexpr void SetStepValue(const float height, const float length)
int hole_rate
不整地上の足場を除外する割合。ホール率[%]
void SetOption(const std::vector< SimulationMapOption > create_options)
マップ生成のオプションを指定する. この関数を呼んだあと,その他のSet~関数を呼ぶと,段差の高さや,傾斜角を指定できる.
constexpr void SetRouthHeight(const float height_min, const float height_max)
マップ生成のモードを指定する列挙体.
#define DESIGNLAB_TOML11_SERIALIZE(NAME,...)
tomlファイルのシリアライズ/デシリアライズを行うためのマクロ. TOML11_DEFINE_CONVERSION_NON_INTRUSIVEをラッパしたもの....
#define DESIGNLAB_TOML11_NO_TABLE
tomlファイルに追加する変数をテーブルに追加しないことを示すためのマクロ.
#define DESIGNLAB_TOML11_DESCRIPTION_CLASS(CLASS)
tomlファイルに説明を追加するためのクラスの宣言を行うためのマクロ.
#define DESIGNLAB_TOML11_FILE_NO_DESCRIPTION()
tomlファイルにファイルの説明を追加しないことを示す文字列. DESIGNLAB_TOML11_DESCRIPTION_CLASS内に必ず記述する必要がある.
#define DESIGNLAB_TOML11_TABLE_NO_DESCRIPTION()
tomlファイルに追加するテーブルにコメントを追加しないことを示すマクロ. DESIGNLAB_TOML11_DESCRIPTION_CLASS内に必ず記述する必要がある.
#define DESIGNLAB_TOML11_VARIABLE_ADD_DESCRIPTION(VARIABLE, TABLE, DESCRIPTION)
tomlファイルに変数とファイルの説明を追加するためのマクロ.