
/* Automatically generated struct definitions for the Data API.
 * Do not edit manually, changes will be overwritten.           */

#define RNA_RUNTIME

#include <float.h>
#include <stdio.h>
#include <limits.h>
#include <string.h>

#include <stddef.h>

#include "MEM_guardedalloc.h"

#include "DNA_ID.h"
#include "DNA_scene_types.h"
#include "BLI_blenlib.h"

#include "BLI_utildefines.h"

#include "BKE_context.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "RNA_define.h"
#include "RNA_types.h"
#include "rna_internal.h"

#include "rna_prototypes_gen.h"

#include "rna_smoke.c"

/* Autogenerated Functions */


CollectionPropertyRNA rna_SmokeDomainSettings_rna_properties;
PointerPropertyRNA rna_SmokeDomainSettings_rna_type;
IntPropertyRNA rna_SmokeDomainSettings_resolution_max;
IntPropertyRNA rna_SmokeDomainSettings_amplify;
BoolPropertyRNA rna_SmokeDomainSettings_use_high_resolution;
BoolPropertyRNA rna_SmokeDomainSettings_show_high_resolution;
EnumPropertyRNA rna_SmokeDomainSettings_noise_type;
FloatPropertyRNA rna_SmokeDomainSettings_alpha;
FloatPropertyRNA rna_SmokeDomainSettings_beta;
PointerPropertyRNA rna_SmokeDomainSettings_collision_group;
PointerPropertyRNA rna_SmokeDomainSettings_fluid_group;
PointerPropertyRNA rna_SmokeDomainSettings_effector_group;
FloatPropertyRNA rna_SmokeDomainSettings_strength;
IntPropertyRNA rna_SmokeDomainSettings_dissolve_speed;
BoolPropertyRNA rna_SmokeDomainSettings_use_dissolve_smoke;
BoolPropertyRNA rna_SmokeDomainSettings_use_dissolve_smoke_log;
PointerPropertyRNA rna_SmokeDomainSettings_point_cache;
EnumPropertyRNA rna_SmokeDomainSettings_point_cache_compress_type;
EnumPropertyRNA rna_SmokeDomainSettings_openvdb_cache_compress_type;
EnumPropertyRNA rna_SmokeDomainSettings_data_depth;
EnumPropertyRNA rna_SmokeDomainSettings_collision_extents;
PointerPropertyRNA rna_SmokeDomainSettings_effector_weights;
EnumPropertyRNA rna_SmokeDomainSettings_highres_sampling;
FloatPropertyRNA rna_SmokeDomainSettings_time_scale;
FloatPropertyRNA rna_SmokeDomainSettings_vorticity;
FloatPropertyRNA rna_SmokeDomainSettings_density_grid;
FloatPropertyRNA rna_SmokeDomainSettings_velocity_grid;
FloatPropertyRNA rna_SmokeDomainSettings_flame_grid;
FloatPropertyRNA rna_SmokeDomainSettings_color_grid;
FloatPropertyRNA rna_SmokeDomainSettings_heat_grid;
FloatPropertyRNA rna_SmokeDomainSettings_cell_size;
FloatPropertyRNA rna_SmokeDomainSettings_start_point;
IntPropertyRNA rna_SmokeDomainSettings_domain_resolution;
FloatPropertyRNA rna_SmokeDomainSettings_burning_rate;
FloatPropertyRNA rna_SmokeDomainSettings_flame_smoke;
FloatPropertyRNA rna_SmokeDomainSettings_flame_vorticity;
FloatPropertyRNA rna_SmokeDomainSettings_flame_ignition;
FloatPropertyRNA rna_SmokeDomainSettings_flame_max_temp;
FloatPropertyRNA rna_SmokeDomainSettings_flame_smoke_color;
BoolPropertyRNA rna_SmokeDomainSettings_use_adaptive_domain;
IntPropertyRNA rna_SmokeDomainSettings_additional_res;
IntPropertyRNA rna_SmokeDomainSettings_adapt_margin;
FloatPropertyRNA rna_SmokeDomainSettings_adapt_threshold;
EnumPropertyRNA rna_SmokeDomainSettings_cache_file_format;
EnumPropertyRNA rna_SmokeDomainSettings_slice_method;
EnumPropertyRNA rna_SmokeDomainSettings_axis_slice_method;
EnumPropertyRNA rna_SmokeDomainSettings_slice_axis;
FloatPropertyRNA rna_SmokeDomainSettings_slice_per_voxel;
FloatPropertyRNA rna_SmokeDomainSettings_slice_depth;
FloatPropertyRNA rna_SmokeDomainSettings_display_thickness;
BoolPropertyRNA rna_SmokeDomainSettings_draw_velocity;
EnumPropertyRNA rna_SmokeDomainSettings_vector_draw_type;
FloatPropertyRNA rna_SmokeDomainSettings_vector_scale;
BoolPropertyRNA rna_SmokeDomainSettings_use_color_ramp;
EnumPropertyRNA rna_SmokeDomainSettings_coba_field;
PointerPropertyRNA rna_SmokeDomainSettings_color_ramp;


CollectionPropertyRNA rna_SmokeFlowSettings_rna_properties;
PointerPropertyRNA rna_SmokeFlowSettings_rna_type;
FloatPropertyRNA rna_SmokeFlowSettings_density;
FloatPropertyRNA rna_SmokeFlowSettings_smoke_color;
FloatPropertyRNA rna_SmokeFlowSettings_fuel_amount;
FloatPropertyRNA rna_SmokeFlowSettings_temperature;
PointerPropertyRNA rna_SmokeFlowSettings_particle_system;
EnumPropertyRNA rna_SmokeFlowSettings_smoke_flow_type;
EnumPropertyRNA rna_SmokeFlowSettings_smoke_flow_source;
BoolPropertyRNA rna_SmokeFlowSettings_use_absolute;
BoolPropertyRNA rna_SmokeFlowSettings_use_initial_velocity;
FloatPropertyRNA rna_SmokeFlowSettings_velocity_factor;
FloatPropertyRNA rna_SmokeFlowSettings_velocity_normal;
FloatPropertyRNA rna_SmokeFlowSettings_velocity_random;
FloatPropertyRNA rna_SmokeFlowSettings_volume_density;
FloatPropertyRNA rna_SmokeFlowSettings_surface_distance;
FloatPropertyRNA rna_SmokeFlowSettings_particle_size;
BoolPropertyRNA rna_SmokeFlowSettings_use_particle_size;
IntPropertyRNA rna_SmokeFlowSettings_subframes;
StringPropertyRNA rna_SmokeFlowSettings_density_vertex_group;
BoolPropertyRNA rna_SmokeFlowSettings_use_texture;
EnumPropertyRNA rna_SmokeFlowSettings_texture_map_type;
StringPropertyRNA rna_SmokeFlowSettings_uv_layer;
PointerPropertyRNA rna_SmokeFlowSettings_noise_texture;
FloatPropertyRNA rna_SmokeFlowSettings_texture_size;
FloatPropertyRNA rna_SmokeFlowSettings_texture_offset;


CollectionPropertyRNA rna_SmokeCollSettings_rna_properties;
PointerPropertyRNA rna_SmokeCollSettings_rna_type;
EnumPropertyRNA rna_SmokeCollSettings_collision_type;

static PointerRNA SmokeDomainSettings_rna_properties_get(CollectionPropertyIterator *iter)
{
	return rna_builtin_properties_get(iter);
}

void SmokeDomainSettings_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

	memset(iter, 0, sizeof(*iter));
	iter->parent = *ptr;
	iter->prop = (PropertyRNA *)&rna_SmokeDomainSettings_rna_properties;

	rna_builtin_properties_begin(iter, ptr);

	if (iter->valid)
		iter->ptr = SmokeDomainSettings_rna_properties_get(iter);
}

void SmokeDomainSettings_rna_properties_next(CollectionPropertyIterator *iter)
{
	rna_builtin_properties_next(iter);

	if (iter->valid)
		iter->ptr = SmokeDomainSettings_rna_properties_get(iter);
}

void SmokeDomainSettings_rna_properties_end(CollectionPropertyIterator *iter)
{
	rna_iterator_listbase_end(iter);
}

int SmokeDomainSettings_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
	return rna_builtin_properties_lookup_string(ptr, key, r_ptr);
}

PointerRNA SmokeDomainSettings_rna_type_get(PointerRNA *ptr)
{
	return rna_builtin_type_get(ptr);
}

int SmokeDomainSettings_resolution_max_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->maxres);
}

void SmokeDomainSettings_resolution_max_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->maxres = CLAMPIS(value, 6, 512);
}

int SmokeDomainSettings_amplify_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->amplify);
}

void SmokeDomainSettings_amplify_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->amplify = CLAMPIS(value, 1, 10);
}

int SmokeDomainSettings_use_high_resolution_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (((data->flags) & 2) != 0);
}

void SmokeDomainSettings_use_high_resolution_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value) data->flags |= 2;
	else data->flags &= ~2;
}

int SmokeDomainSettings_show_high_resolution_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (((data->viewsettings) & 1) != 0);
}

void SmokeDomainSettings_show_high_resolution_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value) data->viewsettings |= 1;
	else data->viewsettings &= ~1;
}

int SmokeDomainSettings_noise_type_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->noise);
}

void SmokeDomainSettings_noise_type_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->noise = value;
}

float SmokeDomainSettings_alpha_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->alpha);
}

void SmokeDomainSettings_alpha_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->alpha = CLAMPIS(value, -5.0f, 5.0f);
}

float SmokeDomainSettings_beta_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->beta);
}

void SmokeDomainSettings_beta_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->beta = CLAMPIS(value, -5.0f, 5.0f);
}

PointerRNA SmokeDomainSettings_collision_group_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_Group, data->coll_group);
}

void SmokeDomainSettings_collision_group_set(PointerRNA *ptr, PointerRNA value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value.data)
		id_lib_extern((ID *)value.data);

	data->coll_group = value.data;
}

PointerRNA SmokeDomainSettings_fluid_group_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_Group, data->fluid_group);
}

void SmokeDomainSettings_fluid_group_set(PointerRNA *ptr, PointerRNA value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value.data)
		id_lib_extern((ID *)value.data);

	data->fluid_group = value.data;
}

PointerRNA SmokeDomainSettings_effector_group_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_Group, data->eff_group);
}

void SmokeDomainSettings_effector_group_set(PointerRNA *ptr, PointerRNA value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value.data)
		id_lib_extern((ID *)value.data);

	data->eff_group = value.data;
}

float SmokeDomainSettings_strength_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->strength);
}

void SmokeDomainSettings_strength_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->strength = CLAMPIS(value, 0.0f, 10.0f);
}

int SmokeDomainSettings_dissolve_speed_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->diss_speed);
}

void SmokeDomainSettings_dissolve_speed_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->diss_speed = CLAMPIS(value, 1, 10000);
}

int SmokeDomainSettings_use_dissolve_smoke_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (((data->flags) & 4) != 0);
}

void SmokeDomainSettings_use_dissolve_smoke_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value) data->flags |= 4;
	else data->flags &= ~4;
}

int SmokeDomainSettings_use_dissolve_smoke_log_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (((data->flags) & 8) != 0);
}

void SmokeDomainSettings_use_dissolve_smoke_log_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value) data->flags |= 8;
	else data->flags &= ~8;
}

PointerRNA SmokeDomainSettings_point_cache_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_PointCache, data->point_cache[0]);
}

int SmokeDomainSettings_point_cache_compress_type_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->cache_comp);
}

void SmokeDomainSettings_point_cache_compress_type_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->cache_comp = value;
}

int SmokeDomainSettings_openvdb_cache_compress_type_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->openvdb_comp);
}

void SmokeDomainSettings_openvdb_cache_compress_type_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->openvdb_comp = value;
}

int SmokeDomainSettings_data_depth_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return ((data->data_depth) & 16);
}

void SmokeDomainSettings_data_depth_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->data_depth &= ~16;
	data->data_depth |= value;
}

int SmokeDomainSettings_collision_extents_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->border_collisions);
}

void SmokeDomainSettings_collision_extents_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->border_collisions = value;
}

PointerRNA SmokeDomainSettings_effector_weights_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_EffectorWeights, data->effector_weights);
}

int SmokeDomainSettings_highres_sampling_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->highres_sampling);
}

void SmokeDomainSettings_highres_sampling_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->highres_sampling = value;
}

float SmokeDomainSettings_time_scale_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->time_scale);
}

void SmokeDomainSettings_time_scale_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->time_scale = CLAMPIS(value, 0.2000000030f, 1.5000000000f);
}

float SmokeDomainSettings_vorticity_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->vorticity);
}

void SmokeDomainSettings_vorticity_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->vorticity = CLAMPIS(value, 0.0099999998f, 4.0f);
}

void SmokeDomainSettings_density_grid_get(PointerRNA *ptr, float values[])
{
	rna_SmokeModifier_density_grid_get(ptr, values);
}

void SmokeDomainSettings_velocity_grid_get(PointerRNA *ptr, float values[])
{
	rna_SmokeModifier_velocity_grid_get(ptr, values);
}

void SmokeDomainSettings_flame_grid_get(PointerRNA *ptr, float values[])
{
	rna_SmokeModifier_flame_grid_get(ptr, values);
}

void SmokeDomainSettings_color_grid_get(PointerRNA *ptr, float values[])
{
	rna_SmokeModifier_color_grid_get(ptr, values);
}

void SmokeDomainSettings_heat_grid_get(PointerRNA *ptr, float values[])
{
	rna_SmokeModifier_heat_grid_get(ptr, values);
}

void SmokeDomainSettings_cell_size_get(PointerRNA *ptr, float values[3])
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		values[i] = (float)(((float *)data->cell_size)[i]);
	}
}

void SmokeDomainSettings_start_point_get(PointerRNA *ptr, float values[3])
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		values[i] = (float)(((float *)data->p0)[i]);
	}
}

void SmokeDomainSettings_domain_resolution_get(PointerRNA *ptr, int values[3])
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		values[i] = (int)(((int *)data->res)[i]);
	}
}

float SmokeDomainSettings_burning_rate_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->burning_rate);
}

void SmokeDomainSettings_burning_rate_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->burning_rate = CLAMPIS(value, 0.0099999998f, 4.0f);
}

float SmokeDomainSettings_flame_smoke_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->flame_smoke);
}

void SmokeDomainSettings_flame_smoke_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->flame_smoke = CLAMPIS(value, 0.0f, 8.0f);
}

float SmokeDomainSettings_flame_vorticity_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->flame_vorticity);
}

void SmokeDomainSettings_flame_vorticity_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->flame_vorticity = CLAMPIS(value, 0.0f, 2.0f);
}

float SmokeDomainSettings_flame_ignition_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->flame_ignition);
}

void SmokeDomainSettings_flame_ignition_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->flame_ignition = CLAMPIS(value, 0.5000000000f, 5.0f);
}

float SmokeDomainSettings_flame_max_temp_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->flame_max_temp);
}

void SmokeDomainSettings_flame_max_temp_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->flame_max_temp = CLAMPIS(value, 1.0f, 10.0f);
}

void SmokeDomainSettings_flame_smoke_color_get(PointerRNA *ptr, float values[3])
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		values[i] = (float)(((float *)data->flame_smoke_color)[i]);
	}
}

void SmokeDomainSettings_flame_smoke_color_set(PointerRNA *ptr, const float values[3])
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		((float *)data->flame_smoke_color)[i] = CLAMPIS(values[i], 0.0f, FLT_MAX);
	}
}

int SmokeDomainSettings_use_adaptive_domain_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (((data->flags) & 128) != 0);
}

void SmokeDomainSettings_use_adaptive_domain_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	if (value) data->flags |= 128;
	else data->flags &= ~128;
}

int SmokeDomainSettings_additional_res_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->adapt_res);
}

void SmokeDomainSettings_additional_res_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->adapt_res = CLAMPIS(value, 0, 512);
}

int SmokeDomainSettings_adapt_margin_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->adapt_margin);
}

void SmokeDomainSettings_adapt_margin_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->adapt_margin = CLAMPIS(value, 2, 24);
}

float SmokeDomainSettings_adapt_threshold_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->adapt_threshold);
}

void SmokeDomainSettings_adapt_threshold_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->adapt_threshold = CLAMPIS(value, 0.0099999998f, 0.5000000000f);
}

int SmokeDomainSettings_cache_file_format_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->cache_file_format);
}

void SmokeDomainSettings_cache_file_format_set(PointerRNA *ptr, int value)
{
	rna_Smoke_cachetype_set(ptr, value);
}

int SmokeDomainSettings_slice_method_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->slice_method);
}

void SmokeDomainSettings_slice_method_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->slice_method = value;
}

int SmokeDomainSettings_axis_slice_method_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->axis_slice_method);
}

void SmokeDomainSettings_axis_slice_method_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->axis_slice_method = value;
}

int SmokeDomainSettings_slice_axis_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->slice_axis);
}

void SmokeDomainSettings_slice_axis_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->slice_axis = value;
}

float SmokeDomainSettings_slice_per_voxel_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->slice_per_voxel);
}

void SmokeDomainSettings_slice_per_voxel_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->slice_per_voxel = CLAMPIS(value, 0.0f, 100.0f);
}

float SmokeDomainSettings_slice_depth_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->slice_depth);
}

void SmokeDomainSettings_slice_depth_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->slice_depth = CLAMPIS(value, 0.0f, 1.0f);
}

float SmokeDomainSettings_display_thickness_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->display_thickness);
}

void SmokeDomainSettings_display_thickness_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->display_thickness = CLAMPIS(value, 0.0010000000f, 1000.0f);
}

int SmokeDomainSettings_draw_velocity_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->draw_velocity);
}

void SmokeDomainSettings_draw_velocity_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->draw_velocity = value;
}

int SmokeDomainSettings_vector_draw_type_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->vector_draw_type);
}

void SmokeDomainSettings_vector_draw_type_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->vector_draw_type = value;
}

float SmokeDomainSettings_vector_scale_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (float)(data->vector_scale);
}

void SmokeDomainSettings_vector_scale_set(PointerRNA *ptr, float value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->vector_scale = CLAMPIS(value, 0.0f, 1000.0f);
}

int SmokeDomainSettings_use_color_ramp_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->use_coba);
}

void SmokeDomainSettings_use_color_ramp_set(PointerRNA *ptr, int value)
{
	rna_Smoke_use_color_ramp_set(ptr, value);
}

int SmokeDomainSettings_coba_field_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return (int)(data->coba_field);
}

void SmokeDomainSettings_coba_field_set(PointerRNA *ptr, int value)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	data->coba_field = value;
}

PointerRNA SmokeDomainSettings_color_ramp_get(PointerRNA *ptr)
{
	SmokeDomainSettings *data = (SmokeDomainSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_ColorRamp, data->coba);
}

static PointerRNA SmokeFlowSettings_rna_properties_get(CollectionPropertyIterator *iter)
{
	return rna_builtin_properties_get(iter);
}

void SmokeFlowSettings_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

	memset(iter, 0, sizeof(*iter));
	iter->parent = *ptr;
	iter->prop = (PropertyRNA *)&rna_SmokeFlowSettings_rna_properties;

	rna_builtin_properties_begin(iter, ptr);

	if (iter->valid)
		iter->ptr = SmokeFlowSettings_rna_properties_get(iter);
}

void SmokeFlowSettings_rna_properties_next(CollectionPropertyIterator *iter)
{
	rna_builtin_properties_next(iter);

	if (iter->valid)
		iter->ptr = SmokeFlowSettings_rna_properties_get(iter);
}

void SmokeFlowSettings_rna_properties_end(CollectionPropertyIterator *iter)
{
	rna_iterator_listbase_end(iter);
}

int SmokeFlowSettings_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
	return rna_builtin_properties_lookup_string(ptr, key, r_ptr);
}

PointerRNA SmokeFlowSettings_rna_type_get(PointerRNA *ptr)
{
	return rna_builtin_type_get(ptr);
}

float SmokeFlowSettings_density_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->density);
}

void SmokeFlowSettings_density_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->density = CLAMPIS(value, 0.0f, 1.0f);
}

void SmokeFlowSettings_smoke_color_get(PointerRNA *ptr, float values[3])
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		values[i] = (float)(((float *)data->color)[i]);
	}
}

void SmokeFlowSettings_smoke_color_set(PointerRNA *ptr, const float values[3])
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	unsigned int i;

	for (i = 0; i < 3; i++) {
		((float *)data->color)[i] = CLAMPIS(values[i], 0.0f, FLT_MAX);
	}
}

float SmokeFlowSettings_fuel_amount_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->fuel_amount);
}

void SmokeFlowSettings_fuel_amount_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->fuel_amount = CLAMPIS(value, 0.0f, 10.0f);
}

float SmokeFlowSettings_temperature_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->temp);
}

void SmokeFlowSettings_temperature_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->temp = CLAMPIS(value, -10.0f, 10.0f);
}

PointerRNA SmokeFlowSettings_particle_system_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_ParticleSystem, data->psys);
}

void SmokeFlowSettings_particle_system_set(PointerRNA *ptr, PointerRNA value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->psys = value.data;
}

int SmokeFlowSettings_smoke_flow_type_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (int)(data->type);
}

void SmokeFlowSettings_smoke_flow_type_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->type = value;
}

int SmokeFlowSettings_smoke_flow_source_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (int)(data->source);
}

void SmokeFlowSettings_smoke_flow_source_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->source = value;
}

int SmokeFlowSettings_use_absolute_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (((data->flags) & 2) != 0);
}

void SmokeFlowSettings_use_absolute_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	if (value) data->flags |= 2;
	else data->flags &= ~2;
}

int SmokeFlowSettings_use_initial_velocity_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (((data->flags) & 4) != 0);
}

void SmokeFlowSettings_use_initial_velocity_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	if (value) data->flags |= 4;
	else data->flags &= ~4;
}

float SmokeFlowSettings_velocity_factor_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->vel_multi);
}

void SmokeFlowSettings_velocity_factor_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->vel_multi = CLAMPIS(value, -100.0f, 100.0f);
}

float SmokeFlowSettings_velocity_normal_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->vel_normal);
}

void SmokeFlowSettings_velocity_normal_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->vel_normal = CLAMPIS(value, -100.0f, 100.0f);
}

float SmokeFlowSettings_velocity_random_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->vel_random);
}

void SmokeFlowSettings_velocity_random_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->vel_random = CLAMPIS(value, 0.0f, 10.0f);
}

float SmokeFlowSettings_volume_density_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->volume_density);
}

void SmokeFlowSettings_volume_density_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->volume_density = CLAMPIS(value, 0.0f, 1.0f);
}

float SmokeFlowSettings_surface_distance_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->surface_distance);
}

void SmokeFlowSettings_surface_distance_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->surface_distance = CLAMPIS(value, 0.0f, 10.0f);
}

float SmokeFlowSettings_particle_size_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->particle_size);
}

void SmokeFlowSettings_particle_size_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->particle_size = CLAMPIS(value, 0.1000000015f, 20.0f);
}

int SmokeFlowSettings_use_particle_size_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (((data->flags) & 16) != 0);
}

void SmokeFlowSettings_use_particle_size_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	if (value) data->flags |= 16;
	else data->flags &= ~16;
}

int SmokeFlowSettings_subframes_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (int)(data->subframes);
}

void SmokeFlowSettings_subframes_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->subframes = CLAMPIS(value, 0, 50);
}

void SmokeFlowSettings_density_vertex_group_get(PointerRNA *ptr, char *value)
{
	rna_SmokeFlow_density_vgroup_get(ptr, value);
}

int SmokeFlowSettings_density_vertex_group_length(PointerRNA *ptr)
{
	return rna_SmokeFlow_density_vgroup_length(ptr);
}

void SmokeFlowSettings_density_vertex_group_set(PointerRNA *ptr, const char *value)
{
	rna_SmokeFlow_density_vgroup_set(ptr, value);
}

int SmokeFlowSettings_use_texture_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (((data->flags) & 8) != 0);
}

void SmokeFlowSettings_use_texture_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	if (value) data->flags |= 8;
	else data->flags &= ~8;
}

int SmokeFlowSettings_texture_map_type_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (int)(data->texture_type);
}

void SmokeFlowSettings_texture_map_type_set(PointerRNA *ptr, int value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->texture_type = value;
}

void SmokeFlowSettings_uv_layer_get(PointerRNA *ptr, char *value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	BLI_strncpy_utf8(value, data->uvlayer_name, 64);
}

int SmokeFlowSettings_uv_layer_length(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return strlen(data->uvlayer_name);
}

void SmokeFlowSettings_uv_layer_set(PointerRNA *ptr, const char *value)
{
	rna_SmokeFlow_uvlayer_set(ptr, value);
}

PointerRNA SmokeFlowSettings_noise_texture_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return rna_pointer_inherit_refine(ptr, &RNA_Texture, data->noise_texture);
}

void SmokeFlowSettings_noise_texture_set(PointerRNA *ptr, PointerRNA value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);

	if (data->noise_texture)
		id_us_min((ID *)data->noise_texture);
	if (value.data)
		id_us_plus((ID *)value.data);

	data->noise_texture = value.data;
}

float SmokeFlowSettings_texture_size_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->texture_size);
}

void SmokeFlowSettings_texture_size_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->texture_size = CLAMPIS(value, 0.0099999998f, 10.0f);
}

float SmokeFlowSettings_texture_offset_get(PointerRNA *ptr)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	return (float)(data->texture_offset);
}

void SmokeFlowSettings_texture_offset_set(PointerRNA *ptr, float value)
{
	SmokeFlowSettings *data = (SmokeFlowSettings *)(ptr->data);
	data->texture_offset = CLAMPIS(value, 0.0f, 200.0f);
}

static PointerRNA SmokeCollSettings_rna_properties_get(CollectionPropertyIterator *iter)
{
	return rna_builtin_properties_get(iter);
}

void SmokeCollSettings_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

	memset(iter, 0, sizeof(*iter));
	iter->parent = *ptr;
	iter->prop = (PropertyRNA *)&rna_SmokeCollSettings_rna_properties;

	rna_builtin_properties_begin(iter, ptr);

	if (iter->valid)
		iter->ptr = SmokeCollSettings_rna_properties_get(iter);
}

void SmokeCollSettings_rna_properties_next(CollectionPropertyIterator *iter)
{
	rna_builtin_properties_next(iter);

	if (iter->valid)
		iter->ptr = SmokeCollSettings_rna_properties_get(iter);
}

void SmokeCollSettings_rna_properties_end(CollectionPropertyIterator *iter)
{
	rna_iterator_listbase_end(iter);
}

int SmokeCollSettings_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
	return rna_builtin_properties_lookup_string(ptr, key, r_ptr);
}

PointerRNA SmokeCollSettings_rna_type_get(PointerRNA *ptr)
{
	return rna_builtin_type_get(ptr);
}

int SmokeCollSettings_collision_type_get(PointerRNA *ptr)
{
	SmokeCollSettings *data = (SmokeCollSettings *)(ptr->data);
	return (int)(data->type);
}

void SmokeCollSettings_collision_type_set(PointerRNA *ptr, int value)
{
	SmokeCollSettings *data = (SmokeCollSettings *)(ptr->data);
	data->type = value;
}

int SmokeDomainSettings_density_grid_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_SmokeModifier_grid_get_length(ptr, arraylen);
}

int SmokeDomainSettings_velocity_grid_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_SmokeModifier_velocity_grid_get_length(ptr, arraylen);
}

int SmokeDomainSettings_flame_grid_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_SmokeModifier_grid_get_length(ptr, arraylen);
}

int SmokeDomainSettings_color_grid_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_SmokeModifier_color_grid_get_length(ptr, arraylen);
}

int SmokeDomainSettings_heat_grid_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_SmokeModifier_heat_grid_get_length(ptr, arraylen);
}




/* Domain Settings */
CollectionPropertyRNA rna_SmokeDomainSettings_rna_properties = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_rna_type, NULL,
	-1, "rna_properties", 0, 0, 1, "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_rna_properties_begin, SmokeDomainSettings_rna_properties_next, SmokeDomainSettings_rna_properties_end, SmokeDomainSettings_rna_properties_get, NULL, NULL, SmokeDomainSettings_rna_properties_lookup_string, NULL, &RNA_Property
};

PointerPropertyRNA rna_SmokeDomainSettings_rna_type = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_resolution_max, (PropertyRNA *)&rna_SmokeDomainSettings_rna_properties,
	-1, "rna_type", 8912896, 0, 0, "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_rna_type_get, NULL, NULL, NULL,&RNA_Struct
};

IntPropertyRNA rna_SmokeDomainSettings_resolution_max = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_amplify, (PropertyRNA *)&rna_SmokeDomainSettings_rna_type,
	-1, "resolution_max", 1, 0, 4, "Max Res",
	"Maximal resolution used in the fluid domain",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, maxres), 0, NULL},
	SmokeDomainSettings_resolution_max_get, SmokeDomainSettings_resolution_max_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	24, 512, 6, 512, 2, 0, NULL
};

IntPropertyRNA rna_SmokeDomainSettings_amplify = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_use_high_resolution, (PropertyRNA *)&rna_SmokeDomainSettings_resolution_max,
	-1, "amplify", 1, 0, 4, "Amplification",
	"Enhance the resolution of smoke by this factor using noise",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, amplify), 0, NULL},
	SmokeDomainSettings_amplify_get, SmokeDomainSettings_amplify_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	1, 10, 1, 10, 1, 0, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_use_high_resolution = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_show_high_resolution, (PropertyRNA *)&rna_SmokeDomainSettings_amplify,
	-1, "use_high_resolution", 1, 0, 0, "High res",
	"Enable high resolution (using amplification)",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_use_high_resolution_get, SmokeDomainSettings_use_high_resolution_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_show_high_resolution = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_noise_type, (PropertyRNA *)&rna_SmokeDomainSettings_use_high_resolution,
	-1, "show_high_resolution", 3, 0, 0, "Show High Resolution",
	"Show high resolution (using amplification)",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_show_high_resolution_get, SmokeDomainSettings_show_high_resolution_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

static EnumPropertyItem rna_SmokeDomainSettings_noise_type_items[3] = {
	{1, "NOISEWAVE", 0, "Wavelet", ""},
	{2, "NOISEFFT", 0, "FFT", ""},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_noise_type = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_alpha, (PropertyRNA *)&rna_SmokeDomainSettings_show_high_resolution,
	-1, "noise_type", 1, 0, 0, "Noise Method",
	"Noise method which is used for creating the high resolution",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_noise_type_get, SmokeDomainSettings_noise_type_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_noise_type_items, 2, 1
};

FloatPropertyRNA rna_SmokeDomainSettings_alpha = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_beta, (PropertyRNA *)&rna_SmokeDomainSettings_noise_type,
	-1, "alpha", 3, 0, 4, "Density",
	"How much density affects smoke motion (higher value results in faster rising smoke)",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, alpha), 4, NULL},
	SmokeDomainSettings_alpha_get, SmokeDomainSettings_alpha_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -5.0f, 5.0f, -5.0f, 5.0f, 0.0199999996f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_beta = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_collision_group, (PropertyRNA *)&rna_SmokeDomainSettings_alpha,
	-1, "beta", 3, 0, 4, "Heat",
	"How much heat affects smoke motion (higher value results in faster rising smoke)",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, beta), 4, NULL},
	SmokeDomainSettings_beta_get, SmokeDomainSettings_beta_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -5.0f, 5.0f, -5.0f, 5.0f, 0.0199999996f, 5, 0.0f, NULL
};

PointerPropertyRNA rna_SmokeDomainSettings_collision_group = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_fluid_group, (PropertyRNA *)&rna_SmokeDomainSettings_beta,
	-1, "collision_group", 8388609, 0, 0, "Collision Group",
	"Limit collisions to this group",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset_dependency, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_collision_group_get, SmokeDomainSettings_collision_group_set, NULL, NULL,&RNA_Group
};

PointerPropertyRNA rna_SmokeDomainSettings_fluid_group = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_effector_group, (PropertyRNA *)&rna_SmokeDomainSettings_collision_group,
	-1, "fluid_group", 8388609, 0, 0, "Fluid Group",
	"Limit fluid objects to this group",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset_dependency, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_fluid_group_get, SmokeDomainSettings_fluid_group_set, NULL, NULL,&RNA_Group
};

PointerPropertyRNA rna_SmokeDomainSettings_effector_group = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_strength, (PropertyRNA *)&rna_SmokeDomainSettings_fluid_group,
	-1, "effector_group", 8388609, 0, 0, "Effector Group",
	"Limit effectors to this group",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset_dependency, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_effector_group_get, SmokeDomainSettings_effector_group_set, NULL, NULL,&RNA_Group
};

FloatPropertyRNA rna_SmokeDomainSettings_strength = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_dissolve_speed, (PropertyRNA *)&rna_SmokeDomainSettings_effector_group,
	-1, "strength", 3, 0, 4, "Strength",
	"Strength of noise",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, strength), 4, NULL},
	SmokeDomainSettings_strength_get, SmokeDomainSettings_strength_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 10.0f, 0.0f, 10.0f, 1.0f, 2, 0.0f, NULL
};

IntPropertyRNA rna_SmokeDomainSettings_dissolve_speed = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_use_dissolve_smoke, (PropertyRNA *)&rna_SmokeDomainSettings_strength,
	-1, "dissolve_speed", 3, 0, 4, "Dissolve Speed",
	"Dissolve Speed",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, diss_speed), 0, NULL},
	SmokeDomainSettings_dissolve_speed_get, SmokeDomainSettings_dissolve_speed_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	1, 10000, 1, 10000, 1, 0, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_use_dissolve_smoke = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_use_dissolve_smoke_log, (PropertyRNA *)&rna_SmokeDomainSettings_dissolve_speed,
	-1, "use_dissolve_smoke", 3, 0, 0, "Dissolve Smoke",
	"Enable smoke to disappear over time",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_use_dissolve_smoke_get, SmokeDomainSettings_use_dissolve_smoke_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_use_dissolve_smoke_log = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_point_cache, (PropertyRNA *)&rna_SmokeDomainSettings_use_dissolve_smoke,
	-1, "use_dissolve_smoke_log", 3, 0, 0, "Logarithmic dissolve",
	"Using 1/x ",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_use_dissolve_smoke_log_get, SmokeDomainSettings_use_dissolve_smoke_log_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

PointerPropertyRNA rna_SmokeDomainSettings_point_cache = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_point_cache_compress_type, (PropertyRNA *)&rna_SmokeDomainSettings_use_dissolve_smoke_log,
	-1, "point_cache", 8650752, 0, 0, "Point Cache",
	"",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {2, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_point_cache_get, NULL, NULL, NULL,&RNA_PointCache
};

static EnumPropertyItem rna_SmokeDomainSettings_point_cache_compress_type_items[3] = {
	{0, "CACHELIGHT", 0, "Light", "Fast but not so effective compression"},
	{1, "CACHEHEAVY", 0, "Heavy", "Effective but slow compression"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_point_cache_compress_type = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_openvdb_cache_compress_type, (PropertyRNA *)&rna_SmokeDomainSettings_point_cache,
	-1, "point_cache_compress_type", 3, 0, 0, "Cache Compression",
	"Compression method to be used",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_point_cache_compress_type_get, SmokeDomainSettings_point_cache_compress_type_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_point_cache_compress_type_items, 2, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_openvdb_cache_compress_type_items[4] = {
	{1, "ZIP", 0, "Zip", "Effective but slow compression"},
	{0, "BLOSC", 0, "Blosc", "Multithreaded compression, similar in size and quality as \'Zip\'"},
	{2, "NONE", 0, "None", "Do not use any compression"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_openvdb_cache_compress_type = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_data_depth, (PropertyRNA *)&rna_SmokeDomainSettings_point_cache_compress_type,
	-1, "openvdb_cache_compress_type", 3, 0, 0, "Compression",
	"Compression method to be used",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_openvdb_cache_compress_type_get, SmokeDomainSettings_openvdb_cache_compress_type_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_openvdb_cache_compress_type_items, 3, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_data_depth_items[3] = {
	{16, "16", 0, "Float (Half)", "Half float (16 bit data)"},
	{0, "32", 0, "Float (Full)", "Full float (32 bit data)"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_data_depth = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_collision_extents, (PropertyRNA *)&rna_SmokeDomainSettings_openvdb_cache_compress_type,
	-1, "data_depth", 3, 0, 0, "Data Depth",
	"Bit depth for writing all scalar (including vector) lower values reduce file size",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_data_depth_get, SmokeDomainSettings_data_depth_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_data_depth_items, 2, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_collision_extents_items[4] = {
	{0, "BORDEROPEN", 0, "Open", "Smoke doesn\'t collide with any border"},
	{1, "BORDERVERTICAL", 0, "Vertically Open", "Smoke doesn\'t collide with top and bottom sides"},
	{2, "BORDERCLOSED", 0, "Collide All", "Smoke collides with every side"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_collision_extents = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_effector_weights, (PropertyRNA *)&rna_SmokeDomainSettings_data_depth,
	-1, "collision_extents", 3, 0, 0, "Border Collisions",
	"Select which domain border will be treated as collision object",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_collision_extents_get, SmokeDomainSettings_collision_extents_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_collision_extents_items, 3, 0
};

PointerPropertyRNA rna_SmokeDomainSettings_effector_weights = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_highres_sampling, (PropertyRNA *)&rna_SmokeDomainSettings_collision_extents,
	-1, "effector_weights", 8388608, 0, 0, "Effector Weights",
	"",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_effector_weights_get, NULL, NULL, NULL,&RNA_EffectorWeights
};

static EnumPropertyItem rna_SmokeDomainSettings_highres_sampling_items[4] = {
	{2, "FULLSAMPLE", 0, "Full Sample", ""},
	{1, "LINEAR", 0, "Linear", ""},
	{0, "NEAREST", 0, "Nearest", ""},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_highres_sampling = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_time_scale, (PropertyRNA *)&rna_SmokeDomainSettings_effector_weights,
	-1, "highres_sampling", 3, 0, 0, "Emitter",
	"Method for sampling the high resolution flow",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_highres_sampling_get, SmokeDomainSettings_highres_sampling_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_highres_sampling_items, 3, 0
};

FloatPropertyRNA rna_SmokeDomainSettings_time_scale = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_vorticity, (PropertyRNA *)&rna_SmokeDomainSettings_highres_sampling,
	-1, "time_scale", 3, 0, 4, "Time Scale",
	"Adjust simulation speed",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, time_scale), 4, NULL},
	SmokeDomainSettings_time_scale_get, SmokeDomainSettings_time_scale_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2000000030f, 1.5000000000f, 0.2000000030f, 1.5000000000f, 0.0199999996f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_vorticity = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_density_grid, (PropertyRNA *)&rna_SmokeDomainSettings_time_scale,
	-1, "vorticity", 3, 0, 4, "Vorticity",
	"Amount of turbulence/rotation in fluid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, vorticity), 4, NULL},
	SmokeDomainSettings_vorticity_get, SmokeDomainSettings_vorticity_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0099999998f, 4.0f, 0.0099999998f, 4.0f, 0.0199999996f, 5, 0.0f, NULL
};

static float rna_SmokeDomainSettings_density_grid_default[32] = {
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_density_grid = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_velocity_grid, (PropertyRNA *)&rna_SmokeDomainSettings_vorticity,
	-1, "density_grid", 131074, 0, 0, "Density Grid",
	"Smoke density grid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, rna_SmokeModifier_grid_get_length, 1, {32, 0, 0}, 32,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	NULL, NULL, SmokeDomainSettings_density_grid_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_density_grid_default
};

static float rna_SmokeDomainSettings_velocity_grid_default[32] = {
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_velocity_grid = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_grid, (PropertyRNA *)&rna_SmokeDomainSettings_density_grid,
	-1, "velocity_grid", 131074, 0, 0, "Velocity Grid",
	"Smoke velocity grid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, rna_SmokeModifier_velocity_grid_get_length, 1, {32, 0, 0}, 32,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	NULL, NULL, SmokeDomainSettings_velocity_grid_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_velocity_grid_default
};

static float rna_SmokeDomainSettings_flame_grid_default[32] = {
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_grid = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_color_grid, (PropertyRNA *)&rna_SmokeDomainSettings_velocity_grid,
	-1, "flame_grid", 131074, 0, 0, "Flame Grid",
	"Smoke flame grid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, rna_SmokeModifier_grid_get_length, 1, {32, 0, 0}, 32,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	NULL, NULL, SmokeDomainSettings_flame_grid_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_flame_grid_default
};

static float rna_SmokeDomainSettings_color_grid_default[32] = {
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_color_grid = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_heat_grid, (PropertyRNA *)&rna_SmokeDomainSettings_flame_grid,
	-1, "color_grid", 131074, 0, 0, "Color Grid",
	"Smoke color grid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, rna_SmokeModifier_color_grid_get_length, 1, {32, 0, 0}, 32,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	NULL, NULL, SmokeDomainSettings_color_grid_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_color_grid_default
};

static float rna_SmokeDomainSettings_heat_grid_default[32] = {
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_heat_grid = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_cell_size, (PropertyRNA *)&rna_SmokeDomainSettings_color_grid,
	-1, "heat_grid", 131074, 0, 0, "Heat Grid",
	"Smoke heat grid",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, rna_SmokeModifier_heat_grid_get_length, 1, {32, 0, 0}, 32,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	NULL, NULL, SmokeDomainSettings_heat_grid_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_heat_grid_default
};

static float rna_SmokeDomainSettings_cell_size_default[3] = {
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_cell_size = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_start_point, (PropertyRNA *)&rna_SmokeDomainSettings_heat_grid,
	-1, "cell_size", 2, 0, 4, "cell_size",
	"Cell Size",
	0, "*",
	PROP_FLOAT, PROP_XYZ | PROP_UNIT_NONE, NULL, 1, {3, 0, 0}, 3,
	NULL, 0, NULL, NULL,
	offsetof(SmokeDomainSettings, cell_size), 4, NULL},
	NULL, NULL, SmokeDomainSettings_cell_size_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_cell_size_default
};

static float rna_SmokeDomainSettings_start_point_default[3] = {
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_start_point = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_domain_resolution, (PropertyRNA *)&rna_SmokeDomainSettings_cell_size,
	-1, "start_point", 2, 0, 4, "p0",
	"Start point",
	0, "*",
	PROP_FLOAT, PROP_XYZ | PROP_UNIT_NONE, NULL, 1, {3, 0, 0}, 3,
	NULL, 0, NULL, NULL,
	offsetof(SmokeDomainSettings, p0), 4, NULL},
	NULL, NULL, SmokeDomainSettings_start_point_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_start_point_default
};

static int rna_SmokeDomainSettings_domain_resolution_default[3] = {
	0,
	0,
	0
};

IntPropertyRNA rna_SmokeDomainSettings_domain_resolution = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_burning_rate, (PropertyRNA *)&rna_SmokeDomainSettings_start_point,
	-1, "domain_resolution", 2, 0, 4, "res",
	"Smoke Grid Resolution",
	0, "*",
	PROP_INT, PROP_XYZ | PROP_UNIT_NONE, NULL, 1, {3, 0, 0}, 3,
	NULL, 0, NULL, NULL,
	offsetof(SmokeDomainSettings, res), 0, NULL},
	NULL, NULL, SmokeDomainSettings_domain_resolution_get, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	-10000, 10000, INT_MIN, INT_MAX, 1, 0, rna_SmokeDomainSettings_domain_resolution_default
};

FloatPropertyRNA rna_SmokeDomainSettings_burning_rate = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_smoke, (PropertyRNA *)&rna_SmokeDomainSettings_domain_resolution,
	-1, "burning_rate", 3, 0, 4, "Speed",
	"Speed of the burning reaction (use larger values for smaller flame)",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, burning_rate), 4, NULL},
	SmokeDomainSettings_burning_rate_get, SmokeDomainSettings_burning_rate_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0099999998f, 2.0f, 0.0099999998f, 4.0f, 1.0f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_smoke = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_vorticity, (PropertyRNA *)&rna_SmokeDomainSettings_burning_rate,
	-1, "flame_smoke", 3, 0, 4, "Smoke",
	"Amount of smoke created by burning fuel",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, flame_smoke), 4, NULL},
	SmokeDomainSettings_flame_smoke_get, SmokeDomainSettings_flame_smoke_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 4.0f, 0.0f, 8.0f, 1.0f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_vorticity = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_ignition, (PropertyRNA *)&rna_SmokeDomainSettings_flame_smoke,
	-1, "flame_vorticity", 3, 0, 4, "Vorticity",
	"Additional vorticity for the flames",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, flame_vorticity), 4, NULL},
	SmokeDomainSettings_flame_vorticity_get, SmokeDomainSettings_flame_vorticity_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, 2.0f, 1.0f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_ignition = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_max_temp, (PropertyRNA *)&rna_SmokeDomainSettings_flame_vorticity,
	-1, "flame_ignition", 3, 0, 4, "Ignition",
	"Minimum temperature of flames",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, flame_ignition), 4, NULL},
	SmokeDomainSettings_flame_ignition_get, SmokeDomainSettings_flame_ignition_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5000000000f, 2.5000000000f, 0.5000000000f, 5.0f, 1.0f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_max_temp = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_flame_smoke_color, (PropertyRNA *)&rna_SmokeDomainSettings_flame_ignition,
	-1, "flame_max_temp", 3, 0, 4, "Maximum",
	"Maximum temperature of flames",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, flame_max_temp), 4, NULL},
	SmokeDomainSettings_flame_max_temp_get, SmokeDomainSettings_flame_max_temp_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.0f, 5.0f, 1.0f, 10.0f, 1.0f, 5, 0.0f, NULL
};

static float rna_SmokeDomainSettings_flame_smoke_color_default[3] = {
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeDomainSettings_flame_smoke_color = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_use_adaptive_domain, (PropertyRNA *)&rna_SmokeDomainSettings_flame_max_temp,
	-1, "flame_smoke_color", 3, 0, 4, "Smoke Color",
	"Color of smoke emitted from burning fuel",
	0, "*",
	PROP_FLOAT, PROP_COLOR_GAMMA | PROP_UNIT_NONE, NULL, 1, {3, 0, 0}, 3,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, flame_smoke_color), 4, NULL},
	NULL, NULL, SmokeDomainSettings_flame_smoke_color_get, SmokeDomainSettings_flame_smoke_color_set, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeDomainSettings_flame_smoke_color_default
};

BoolPropertyRNA rna_SmokeDomainSettings_use_adaptive_domain = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_additional_res, (PropertyRNA *)&rna_SmokeDomainSettings_flame_smoke_color,
	-1, "use_adaptive_domain", 1, 0, 0, "Adaptive Domain",
	"Adapt simulation resolution and size to fluid",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_use_adaptive_domain_get, SmokeDomainSettings_use_adaptive_domain_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

IntPropertyRNA rna_SmokeDomainSettings_additional_res = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_adapt_margin, (PropertyRNA *)&rna_SmokeDomainSettings_use_adaptive_domain,
	-1, "additional_res", 3, 0, 4, "Additional",
	"Maximum number of additional cells",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, adapt_res), 0, NULL},
	SmokeDomainSettings_additional_res_get, SmokeDomainSettings_additional_res_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	0, 512, 0, 512, 2, 0, NULL
};

IntPropertyRNA rna_SmokeDomainSettings_adapt_margin = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_adapt_threshold, (PropertyRNA *)&rna_SmokeDomainSettings_additional_res,
	-1, "adapt_margin", 3, 0, 4, "Margin",
	"Margin added around fluid to minimize boundary interference",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, adapt_margin), 0, NULL},
	SmokeDomainSettings_adapt_margin_get, SmokeDomainSettings_adapt_margin_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	2, 24, 2, 24, 2, 0, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_adapt_threshold = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_cache_file_format, (PropertyRNA *)&rna_SmokeDomainSettings_adapt_margin,
	-1, "adapt_threshold", 3, 0, 4, "Threshold",
	"Maximum amount of fluid cell can contain before it is considered empty",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, adapt_threshold), 4, NULL},
	SmokeDomainSettings_adapt_threshold_get, SmokeDomainSettings_adapt_threshold_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0099999998f, 0.5000000000f, 0.0099999998f, 0.5000000000f, 1.0f, 5, 0.0f, NULL
};

static EnumPropertyItem rna_SmokeDomainSettings_cache_file_format_items[3] = {
	{0, "POINTCACHE", 0, "Point Cache", "Blender specific point cache file format"},
	{1, "OPENVDB", 0, "OpenVDB", "OpenVDB file format"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_cache_file_format = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_slice_method, (PropertyRNA *)&rna_SmokeDomainSettings_adapt_threshold,
	-1, "cache_file_format", 3, 0, 0, "File Format",
	"Select the file format to be used for caching",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_resetCache, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_cache_file_format_get, SmokeDomainSettings_cache_file_format_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_cache_file_format_items, 2, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_slice_method_items[3] = {
	{0, "VIEW_ALIGNED", 0, "View", "Slice volume parallel to the view plane"},
	{1, "AXIS_ALIGNED", 0, "Axis", "Slice volume parallel to the major axis"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_slice_method = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_axis_slice_method, (PropertyRNA *)&rna_SmokeDomainSettings_cache_file_format,
	-1, "slice_method", 3, 0, 0, "View Method",
	"How to slice the volume for viewport rendering",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_slice_method_get, SmokeDomainSettings_slice_method_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_slice_method_items, 2, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_axis_slice_method_items[3] = {
	{0, "FULL", 0, "Full", "Slice the whole domain object"},
	{1, "SINGLE", 0, "Single", "Perform a single slice of the domain object"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_axis_slice_method = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_slice_axis, (PropertyRNA *)&rna_SmokeDomainSettings_slice_method,
	-1, "axis_slice_method", 3, 0, 0, "Method",
	"",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_axis_slice_method_get, SmokeDomainSettings_axis_slice_method_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_axis_slice_method_items, 2, 0
};

static EnumPropertyItem rna_SmokeDomainSettings_slice_axis_items[5] = {
	{0, "AUTO", 0, "Auto", "Adjust slice direction according to the view direction"},
	{1, "X", 0, "X", "Slice along the X axis"},
	{2, "Y", 0, "Y", "Slice along the Y axis"},
	{3, "Z", 0, "Z", "Slice along the Z axis"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_slice_axis = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_slice_per_voxel, (PropertyRNA *)&rna_SmokeDomainSettings_axis_slice_method,
	-1, "slice_axis", 3, 0, 0, "Axis",
	"",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_slice_axis_get, SmokeDomainSettings_slice_axis_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_slice_axis_items, 4, 0
};

FloatPropertyRNA rna_SmokeDomainSettings_slice_per_voxel = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_slice_depth, (PropertyRNA *)&rna_SmokeDomainSettings_slice_axis,
	-1, "slice_per_voxel", 3, 0, 4, "Slice Per Voxel",
	"How many slices per voxel should be generated",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	offsetof(SmokeDomainSettings, slice_per_voxel), 4, NULL},
	SmokeDomainSettings_slice_per_voxel_get, SmokeDomainSettings_slice_per_voxel_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 5.0f, 0.0f, 100.0f, 0.1000000015f, 1, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_slice_depth = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_display_thickness, (PropertyRNA *)&rna_SmokeDomainSettings_slice_per_voxel,
	-1, "slice_depth", 3, 0, 4, "Position",
	"Position of the slice",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	offsetof(SmokeDomainSettings, slice_depth), 4, NULL},
	SmokeDomainSettings_slice_depth_get, SmokeDomainSettings_slice_depth_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, 1.0f, 0.1000000015f, 3, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeDomainSettings_display_thickness = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_draw_velocity, (PropertyRNA *)&rna_SmokeDomainSettings_slice_depth,
	-1, "display_thickness", 3, 0, 4, "Thickness",
	"Thickness of smoke drawing in the viewport",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85458944, NULL, NULL,
	offsetof(SmokeDomainSettings, display_thickness), 4, NULL},
	SmokeDomainSettings_display_thickness_get, SmokeDomainSettings_display_thickness_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1000000015f, 100.0f, 0.0010000000f, 1000.0f, 0.1000000015f, 3, 0.0f, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_draw_velocity = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_vector_draw_type, (PropertyRNA *)&rna_SmokeDomainSettings_display_thickness,
	-1, "draw_velocity", 3, 0, 4, "Draw Velocity",
	"Toggle visualization of the velocity field as needles",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	offsetof(SmokeDomainSettings, draw_velocity), 2, NULL},
	SmokeDomainSettings_draw_velocity_get, SmokeDomainSettings_draw_velocity_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

static EnumPropertyItem rna_SmokeDomainSettings_vector_draw_type_items[3] = {
	{0, "NEEDLE", 0, "Needle", "Draw vectors as needles"},
	{1, "STREAMLINE", 0, "Streamlines", "Draw vectors as streamlines"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_vector_draw_type = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_vector_scale, (PropertyRNA *)&rna_SmokeDomainSettings_draw_velocity,
	-1, "vector_draw_type", 3, 0, 0, "Draw Type",
	"",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_vector_draw_type_get, SmokeDomainSettings_vector_draw_type_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_vector_draw_type_items, 2, 0
};

FloatPropertyRNA rna_SmokeDomainSettings_vector_scale = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_use_color_ramp, (PropertyRNA *)&rna_SmokeDomainSettings_vector_draw_type,
	-1, "vector_scale", 3, 0, 4, "Scale",
	"Multiplier for scaling the vectors",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	offsetof(SmokeDomainSettings, vector_scale), 4, NULL},
	SmokeDomainSettings_vector_scale_get, SmokeDomainSettings_vector_scale_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 100.0f, 0.0f, 1000.0f, 0.1000000015f, 3, 0.0f, NULL
};

BoolPropertyRNA rna_SmokeDomainSettings_use_color_ramp = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_coba_field, (PropertyRNA *)&rna_SmokeDomainSettings_vector_scale,
	-1, "use_color_ramp", 3, 0, 0, "Use Color Ramp",
	"Render a simulation field while mapping its voxels values to the colors of a ramp",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_use_color_ramp_get, SmokeDomainSettings_use_color_ramp_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

static EnumPropertyItem rna_SmokeDomainSettings_coba_field_items[11] = {
	{8, "COLOR_R", 0, "Red", "Red component of the color field"},
	{9, "COLOR_G", 0, "Green", "Green component of the color field"},
	{10, "COLOR_B", 0, "Blue", "Blue component of the color field"},
	{0, "DENSITY", 0, "Density", "Quantity of soot in the fluid"},
	{4, "FLAME", 0, "Flame", "Flame field"},
	{2, "FUEL", 0, "Fuel", "Fuel field"},
	{1, "HEAT", 0, "Heat", "Temperature of the fluid"},
	{5, "VELOCITY_X", 0, "X Velocity", "X component of the velocity field"},
	{6, "VELOCITY_Y", 0, "Y Velocity", "Y component of the velocity field"},
	{7, "VELOCITY_Z", 0, "Z Velocity", "Z component of the velocity field"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeDomainSettings_coba_field = {
	{(PropertyRNA *)&rna_SmokeDomainSettings_color_ramp, (PropertyRNA *)&rna_SmokeDomainSettings_use_color_ramp,
	-1, "coba_field", 3, 0, 0, "Field",
	"Simulation field to color map",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_coba_field_get, SmokeDomainSettings_coba_field_set, NULL, NULL, NULL, NULL, rna_SmokeDomainSettings_coba_field_items, 10, 0
};

PointerPropertyRNA rna_SmokeDomainSettings_color_ramp = {
	{NULL, (PropertyRNA *)&rna_SmokeDomainSettings_coba_field,
	-1, "color_ramp", 8388608, 0, 0, "Color Ramp",
	"",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_MASS, NULL, 0, {0, 0, 0}, 0,
	NULL, 85393408, NULL, NULL,
	0, -1, NULL},
	SmokeDomainSettings_color_ramp_get, NULL, NULL, NULL,&RNA_ColorRamp
};

StructRNA RNA_SmokeDomainSettings = {
	{(ContainerRNA *)&RNA_SmokeFlowSettings, (ContainerRNA *)&RNA_SequencerTonemapModifierData,
	NULL,
	{(PropertyRNA *)&rna_SmokeDomainSettings_rna_properties, (PropertyRNA *)&rna_SmokeDomainSettings_color_ramp}},
	"SmokeDomainSettings", NULL, NULL, 4, "Domain Settings",
	"Smoke domain settings",
	"*", 17,
	NULL, (PropertyRNA *)&rna_SmokeDomainSettings_rna_properties,
	NULL,
	NULL,
	NULL,
	rna_SmokeDomainSettings_path,
	NULL,
	NULL,
	NULL,
	NULL,
	{NULL, NULL}
};

/* Flow Settings */
CollectionPropertyRNA rna_SmokeFlowSettings_rna_properties = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_rna_type, NULL,
	-1, "rna_properties", 0, 0, 1, "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_rna_properties_begin, SmokeFlowSettings_rna_properties_next, SmokeFlowSettings_rna_properties_end, SmokeFlowSettings_rna_properties_get, NULL, NULL, SmokeFlowSettings_rna_properties_lookup_string, NULL, &RNA_Property
};

PointerPropertyRNA rna_SmokeFlowSettings_rna_type = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_density, (PropertyRNA *)&rna_SmokeFlowSettings_rna_properties,
	-1, "rna_type", 8912896, 0, 0, "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_rna_type_get, NULL, NULL, NULL,&RNA_Struct
};

FloatPropertyRNA rna_SmokeFlowSettings_density = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_smoke_color, (PropertyRNA *)&rna_SmokeFlowSettings_rna_type,
	-1, "density", 3, 0, 4, "Density",
	"",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, density), 4, NULL},
	SmokeFlowSettings_density_get, SmokeFlowSettings_density_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 4, 0.0f, NULL
};

static float rna_SmokeFlowSettings_smoke_color_default[3] = {
	0.0f,
	0.0f,
	0.0f
};

FloatPropertyRNA rna_SmokeFlowSettings_smoke_color = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_fuel_amount, (PropertyRNA *)&rna_SmokeFlowSettings_density,
	-1, "smoke_color", 3, 0, 4, "Smoke Color",
	"Color of smoke",
	0, "*",
	PROP_FLOAT, PROP_COLOR_GAMMA | PROP_UNIT_NONE, NULL, 1, {3, 0, 0}, 3,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, color), 4, NULL},
	NULL, NULL, SmokeFlowSettings_smoke_color_get, SmokeFlowSettings_smoke_color_set, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, FLT_MAX, 10.0f, 3, 0.0f, rna_SmokeFlowSettings_smoke_color_default
};

FloatPropertyRNA rna_SmokeFlowSettings_fuel_amount = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_temperature, (PropertyRNA *)&rna_SmokeFlowSettings_smoke_color,
	-1, "fuel_amount", 3, 0, 4, "Flame Rate",
	"",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, fuel_amount), 4, NULL},
	SmokeFlowSettings_fuel_amount_get, SmokeFlowSettings_fuel_amount_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 5.0f, 0.0f, 10.0f, 1.0f, 4, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_temperature = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_particle_system, (PropertyRNA *)&rna_SmokeFlowSettings_fuel_amount,
	-1, "temperature", 3, 0, 4, "Temp. Diff.",
	"Temperature difference to ambient temperature",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, temp), 4, NULL},
	SmokeFlowSettings_temperature_get, SmokeFlowSettings_temperature_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -10.0f, 10.0f, -10.0f, 10.0f, 1.0f, 1, 0.0f, NULL
};

PointerPropertyRNA rna_SmokeFlowSettings_particle_system = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_smoke_flow_type, (PropertyRNA *)&rna_SmokeFlowSettings_temperature,
	-1, "particle_system", 8388609, 0, 0, "Particle Systems",
	"Particle systems emitted from the object",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset_dependency, 0, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_particle_system_get, SmokeFlowSettings_particle_system_set, NULL, NULL,&RNA_ParticleSystem
};

static EnumPropertyItem rna_SmokeFlowSettings_smoke_flow_type_items[5] = {
	{2, "OUTFLOW", 0, "Outflow", "Delete smoke from simulation"},
	{0, "SMOKE", 0, "Smoke", "Add smoke"},
	{3, "BOTH", 0, "Fire + Smoke", "Add fire and smoke"},
	{1, "FIRE", 0, "Fire", "Add fire"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeFlowSettings_smoke_flow_type = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_smoke_flow_source, (PropertyRNA *)&rna_SmokeFlowSettings_particle_system,
	-1, "smoke_flow_type", 3, 0, 0, "Flow Type",
	"Change how flow affects the simulation",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_smoke_flow_type_get, SmokeFlowSettings_smoke_flow_type_set, NULL, NULL, NULL, NULL, rna_SmokeFlowSettings_smoke_flow_type_items, 4, 0
};

static EnumPropertyItem rna_SmokeFlowSettings_smoke_flow_source_items[3] = {
	{0, "PARTICLES", 88, "Particle System", "Emit smoke from particles"},
	{1, "MESH", 307, "Mesh", "Emit smoke from mesh surface or volume"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeFlowSettings_smoke_flow_source = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_use_absolute, (PropertyRNA *)&rna_SmokeFlowSettings_smoke_flow_type,
	-1, "smoke_flow_source", 3, 0, 0, "Source",
	"Change how smoke is emitted",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_smoke_flow_source_get, SmokeFlowSettings_smoke_flow_source_set, NULL, NULL, NULL, NULL, rna_SmokeFlowSettings_smoke_flow_source_items, 2, 0
};

BoolPropertyRNA rna_SmokeFlowSettings_use_absolute = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_use_initial_velocity, (PropertyRNA *)&rna_SmokeFlowSettings_smoke_flow_source,
	-1, "use_absolute", 3, 0, 0, "Absolute Density",
	"Only allow given density value in emitter area",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_use_absolute_get, SmokeFlowSettings_use_absolute_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

BoolPropertyRNA rna_SmokeFlowSettings_use_initial_velocity = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_velocity_factor, (PropertyRNA *)&rna_SmokeFlowSettings_use_absolute,
	-1, "use_initial_velocity", 3, 0, 0, "Initial Velocity",
	"Smoke has some initial velocity when it is emitted",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_use_initial_velocity_get, SmokeFlowSettings_use_initial_velocity_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_velocity_factor = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_velocity_normal, (PropertyRNA *)&rna_SmokeFlowSettings_use_initial_velocity,
	-1, "velocity_factor", 3, 0, 4, "Source",
	"Multiplier of source velocity passed to smoke",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, vel_multi), 4, NULL},
	SmokeFlowSettings_velocity_factor_get, SmokeFlowSettings_velocity_factor_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -2.0f, 2.0f, -100.0f, 100.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_velocity_normal = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_velocity_random, (PropertyRNA *)&rna_SmokeFlowSettings_velocity_factor,
	-1, "velocity_normal", 3, 0, 4, "Normal",
	"Amount of normal directional velocity",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, vel_normal), 4, NULL},
	SmokeFlowSettings_velocity_normal_get, SmokeFlowSettings_velocity_normal_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -2.0f, 2.0f, -100.0f, 100.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_velocity_random = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_volume_density, (PropertyRNA *)&rna_SmokeFlowSettings_velocity_normal,
	-1, "velocity_random", 3, 0, 4, "Random",
	"Amount of random velocity",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, vel_random), 4, NULL},
	SmokeFlowSettings_velocity_random_get, SmokeFlowSettings_velocity_random_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 2.0f, 0.0f, 10.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_volume_density = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_surface_distance, (PropertyRNA *)&rna_SmokeFlowSettings_velocity_random,
	-1, "volume_density", 3, 0, 4, "Volume",
	"Factor for smoke emitted from inside the mesh volume",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, volume_density), 4, NULL},
	SmokeFlowSettings_volume_density_get, SmokeFlowSettings_volume_density_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 1.0f, 0.0f, 1.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_surface_distance = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_particle_size, (PropertyRNA *)&rna_SmokeFlowSettings_volume_density,
	-1, "surface_distance", 3, 0, 4, "Surface",
	"Maximum distance from mesh surface to emit smoke",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, surface_distance), 4, NULL},
	SmokeFlowSettings_surface_distance_get, SmokeFlowSettings_surface_distance_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5000000000f, 5.0f, 0.0f, 10.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_particle_size = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_use_particle_size, (PropertyRNA *)&rna_SmokeFlowSettings_surface_distance,
	-1, "particle_size", 3, 0, 4, "Size",
	"Particle size in simulation cells",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, particle_size), 4, NULL},
	SmokeFlowSettings_particle_size_get, SmokeFlowSettings_particle_size_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5000000000f, 5.0f, 0.1000000015f, 20.0f, 0.0500000007f, 5, 0.0f, NULL
};

BoolPropertyRNA rna_SmokeFlowSettings_use_particle_size = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_subframes, (PropertyRNA *)&rna_SmokeFlowSettings_particle_size,
	-1, "use_particle_size", 3, 0, 0, "Set Size",
	"Set particle size in simulation cells or use nearest cell",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_use_particle_size_get, SmokeFlowSettings_use_particle_size_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

IntPropertyRNA rna_SmokeFlowSettings_subframes = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_density_vertex_group, (PropertyRNA *)&rna_SmokeFlowSettings_use_particle_size,
	-1, "subframes", 3, 0, 4, "Subframes",
	"Number of additional samples to take between frames to improve quality of fast moving flows",
	0, "*",
	PROP_INT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, subframes), 0, NULL},
	SmokeFlowSettings_subframes_get, SmokeFlowSettings_subframes_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	0, 10, 0, 50, 1, 0, NULL
};

StringPropertyRNA rna_SmokeFlowSettings_density_vertex_group = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_use_texture, (PropertyRNA *)&rna_SmokeFlowSettings_subframes,
	-1, "density_vertex_group", 262145, 0, 0, "Vertex Group",
	"Name of vertex group which determines surface emission rate",
	0, "*",
	PROP_STRING, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_density_vertex_group_get, SmokeFlowSettings_density_vertex_group_length, SmokeFlowSettings_density_vertex_group_set, NULL, NULL, NULL, 0, ""
};

BoolPropertyRNA rna_SmokeFlowSettings_use_texture = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_texture_map_type, (PropertyRNA *)&rna_SmokeFlowSettings_density_vertex_group,
	-1, "use_texture", 3, 0, 0, "Use Texture",
	"Use a texture to control emission strength",
	0, "*",
	PROP_BOOLEAN, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_use_texture_get, SmokeFlowSettings_use_texture_set, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL
};

static EnumPropertyItem rna_SmokeFlowSettings_texture_map_type_items[3] = {
	{0, "AUTO", 0, "Generated", "Generated coordinates centered to flow object"},
	{1, "UV", 0, "UV", "Use UV layer for texture coordinates"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeFlowSettings_texture_map_type = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_uv_layer, (PropertyRNA *)&rna_SmokeFlowSettings_use_texture,
	-1, "texture_map_type", 3, 0, 0, "Mapping",
	"Texture mapping type",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_texture_map_type_get, SmokeFlowSettings_texture_map_type_set, NULL, NULL, NULL, NULL, rna_SmokeFlowSettings_texture_map_type_items, 2, 0
};

StringPropertyRNA rna_SmokeFlowSettings_uv_layer = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_noise_texture, (PropertyRNA *)&rna_SmokeFlowSettings_texture_map_type,
	-1, "uv_layer", 262145, 0, 0, "UV Map",
	"UV map name",
	0, "*",
	PROP_STRING, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {64, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_uv_layer_get, SmokeFlowSettings_uv_layer_length, SmokeFlowSettings_uv_layer_set, NULL, NULL, NULL, 64, ""
};

PointerPropertyRNA rna_SmokeFlowSettings_noise_texture = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_texture_size, (PropertyRNA *)&rna_SmokeFlowSettings_uv_layer,
	-1, "noise_texture", 8388673, 0, 0, "Texture",
	"Texture that controls emission strength",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeFlowSettings_noise_texture_get, SmokeFlowSettings_noise_texture_set, NULL, NULL,&RNA_Texture
};

FloatPropertyRNA rna_SmokeFlowSettings_texture_size = {
	{(PropertyRNA *)&rna_SmokeFlowSettings_texture_offset, (PropertyRNA *)&rna_SmokeFlowSettings_noise_texture,
	-1, "texture_size", 3, 0, 4, "Size",
	"Size of texture mapping",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, texture_size), 4, NULL},
	SmokeFlowSettings_texture_size_get, SmokeFlowSettings_texture_size_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1000000015f, 5.0f, 0.0099999998f, 10.0f, 0.0500000007f, 5, 0.0f, NULL
};

FloatPropertyRNA rna_SmokeFlowSettings_texture_offset = {
	{NULL, (PropertyRNA *)&rna_SmokeFlowSettings_texture_size,
	-1, "texture_offset", 3, 0, 4, "Offset",
	"Z-offset of texture mapping",
	0, "*",
	PROP_FLOAT, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	offsetof(SmokeFlowSettings, texture_offset), 4, NULL},
	SmokeFlowSettings_texture_offset_get, SmokeFlowSettings_texture_offset_set, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0f, 100.0f, 0.0f, 200.0f, 0.0500000007f, 5, 0.0f, NULL
};

StructRNA RNA_SmokeFlowSettings = {
	{(ContainerRNA *)&RNA_SmokeCollSettings, (ContainerRNA *)&RNA_SmokeDomainSettings,
	NULL,
	{(PropertyRNA *)&rna_SmokeFlowSettings_rna_properties, (PropertyRNA *)&rna_SmokeFlowSettings_texture_offset}},
	"SmokeFlowSettings", NULL, NULL, 4, "Flow Settings",
	"Smoke flow settings",
	"*", 17,
	NULL, (PropertyRNA *)&rna_SmokeFlowSettings_rna_properties,
	NULL,
	NULL,
	NULL,
	rna_SmokeFlowSettings_path,
	NULL,
	NULL,
	NULL,
	NULL,
	{NULL, NULL}
};

/* Collision Settings */
CollectionPropertyRNA rna_SmokeCollSettings_rna_properties = {
	{(PropertyRNA *)&rna_SmokeCollSettings_rna_type, NULL,
	-1, "rna_properties", 0, 0, 1, "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeCollSettings_rna_properties_begin, SmokeCollSettings_rna_properties_next, SmokeCollSettings_rna_properties_end, SmokeCollSettings_rna_properties_get, NULL, NULL, SmokeCollSettings_rna_properties_lookup_string, NULL, &RNA_Property
};

PointerPropertyRNA rna_SmokeCollSettings_rna_type = {
	{(PropertyRNA *)&rna_SmokeCollSettings_collision_type, (PropertyRNA *)&rna_SmokeCollSettings_rna_properties,
	-1, "rna_type", 8912896, 0, 0, "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	NULL, 0, NULL, NULL,
	0, -1, NULL},
	SmokeCollSettings_rna_type_get, NULL, NULL, NULL,&RNA_Struct
};

static EnumPropertyItem rna_SmokeCollSettings_collision_type_items[4] = {
	{0, "COLLSTATIC", 0, "Static", "Non moving obstacle"},
	{1, "COLLRIGID", 0, "Rigid", "Rigid obstacle"},
	{2, "COLLANIMATED", 0, "Animated", "Animated obstacle"},
	{0, NULL, 0, NULL, NULL}
};

EnumPropertyRNA rna_SmokeCollSettings_collision_type = {
	{NULL, (PropertyRNA *)&rna_SmokeCollSettings_rna_type,
	-1, "collision_type", 3, 0, 0, "Collision type",
	"Collision type",
	0, "*",
	PROP_ENUM, PROP_NONE | PROP_UNIT_NONE, NULL, 0, {0, 0, 0}, 0,
	rna_Smoke_reset, 85458944, NULL, NULL,
	0, -1, NULL},
	SmokeCollSettings_collision_type_get, SmokeCollSettings_collision_type_set, NULL, NULL, NULL, NULL, rna_SmokeCollSettings_collision_type_items, 3, 0
};

StructRNA RNA_SmokeCollSettings = {
	{(ContainerRNA *)&RNA_Space, (ContainerRNA *)&RNA_SmokeFlowSettings,
	NULL,
	{(PropertyRNA *)&rna_SmokeCollSettings_rna_properties, (PropertyRNA *)&rna_SmokeCollSettings_collision_type}},
	"SmokeCollSettings", NULL, NULL, 4, "Collision Settings",
	"Smoke collision settings",
	"*", 17,
	NULL, (PropertyRNA *)&rna_SmokeCollSettings_rna_properties,
	NULL,
	NULL,
	NULL,
	rna_SmokeCollSettings_path,
	NULL,
	NULL,
	NULL,
	NULL,
	{NULL, NULL}
};

