d3d10/src/scenes/curve_interpolation/curve_interpolation.cpp

1832 lines
46 KiB
C++

#include "collada_types.hpp"
namespace curve_interpolation {
using namespace collada;
light const light_environmentambientlight = {
.type = light_type::AMBIENT,
.color = { 0.0f, 0.0f, 0.0f },
};
light const light_light_light = {
.type = light_type::POINT,
.color = { 1.0f, 1.0f, 1.0f },
};
float const array_node_cube_translation_x_input_array[] = {
0.0f,
1.666667f,
3.333333f,
5.0f,
};
float const array_node_cube_translation_x_output_array[] = {
10.0f,
-10.0f,
10.0f,
-10.0f,
};
float const array_node_cube_translation_x_intangent_array[] = {
-0.3332306f, 10.0f,
1.111167f, -10.0f,
2.778333f, 10.0f,
4.4445f, -9.219337f,
};
float const array_node_cube_translation_x_outtangent_array[] = {
0.5555f, 10.0f,
2.222167f, -10.0f,
3.888333f, 10.0f,
4.000208f, -8.594958f,
};
enum interpolation const array_node_cube_translation_x_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_cube_translation_x_sampler = {
// node_cube_translation_x_input
.input = {
.float_array = array_node_cube_translation_x_input_array,
.count = 4,
.stride = 1,
},
// node_cube_translation_x_output
.output = {
.float_array = array_node_cube_translation_x_output_array,
.count = 4,
.stride = 1,
},
// node_cube_translation_x_intangent
.in_tangent = {
.float_array = array_node_cube_translation_x_intangent_array,
.count = 4,
.stride = 2,
},
// node_cube_translation_x_outtangent
.out_tangent = {
.float_array = array_node_cube_translation_x_outtangent_array,
.count = 4,
.stride = 2,
},
// node_cube_translation_x_interpolation
.interpolation = {
.interpolation_array = array_node_cube_translation_x_interpolation_array,
.count = 4,
.stride = 1,
},
};
float const array_node_cube_translation_y_input_array[] = {
-0.8333334f,
0.8333334f,
2.5f,
4.166667f,
};
float const array_node_cube_translation_y_output_array[] = {
-10.05776f,
10.05852f,
-9.941484f,
10.05852f,
};
float const array_node_cube_translation_y_intangent_array[] = {
-1.166264f, -10.05776f,
0.2778334f, 10.05852f,
1.9445f, -9.941484f,
3.611667f, 10.05852f,
};
float const array_node_cube_translation_y_outtangent_array[] = {
-0.2783333f, -10.05776f,
1.388833f, 10.05852f,
3.0555f, -9.941484f,
4.499598f, 10.05852f,
};
enum interpolation const array_node_cube_translation_y_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_cube_translation_y_sampler = {
// node_cube_translation_y_input
.input = {
.float_array = array_node_cube_translation_y_input_array,
.count = 4,
.stride = 1,
},
// node_cube_translation_y_output
.output = {
.float_array = array_node_cube_translation_y_output_array,
.count = 4,
.stride = 1,
},
// node_cube_translation_y_intangent
.in_tangent = {
.float_array = array_node_cube_translation_y_intangent_array,
.count = 4,
.stride = 2,
},
// node_cube_translation_y_outtangent
.out_tangent = {
.float_array = array_node_cube_translation_y_outtangent_array,
.count = 4,
.stride = 2,
},
// node_cube_translation_y_interpolation
.interpolation = {
.interpolation_array = array_node_cube_translation_y_interpolation_array,
.count = 4,
.stride = 1,
},
};
float const array_node_torus_rotationx_angle_input_array[] = {
0.0f,
0.8333334f,
1.666667f,
2.5f,
3.333333f,
};
float const array_node_torus_rotationx_angle_output_array[] = {
0.0f,
-90.0f,
-180.0f,
-270.0f,
-360.0f,
};
float const array_node_torus_rotationx_angle_intangent_array[] = {
0.9997917f, 0.0f,
0.3270486f, -89.70257f,
0.9961964f, -179.1937f,
1.990403f, -269.8432f,
2.6534f, -360.0f,
};
float const array_node_torus_rotationx_angle_outtangent_array[] = {
0.6602973f, 0.0f,
1.324714f, -90.28867f,
2.332406f, -180.8006f,
3.004865f, -270.1553f,
2.333542f, -360.0f,
};
enum interpolation const array_node_torus_rotationx_angle_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_torus_rotationx_angle_sampler = {
// node_torus_rotationx_angle_input
.input = {
.float_array = array_node_torus_rotationx_angle_input_array,
.count = 5,
.stride = 1,
},
// node_torus_rotationx_angle_output
.output = {
.float_array = array_node_torus_rotationx_angle_output_array,
.count = 5,
.stride = 1,
},
// node_torus_rotationx_angle_intangent
.in_tangent = {
.float_array = array_node_torus_rotationx_angle_intangent_array,
.count = 5,
.stride = 2,
},
// node_torus_rotationx_angle_outtangent
.out_tangent = {
.float_array = array_node_torus_rotationx_angle_outtangent_array,
.count = 5,
.stride = 2,
},
// node_torus_rotationx_angle_interpolation
.interpolation = {
.interpolation_array = array_node_torus_rotationx_angle_interpolation_array,
.count = 5,
.stride = 1,
},
};
float const array_node_geosphere_scale_input_array[] = {
0.0f,
1.666667f,
3.333333f,
};
float const array_node_geosphere_scale_output_array[] = {
1.0f, 1.0f, 1.0f,
1.996525f, 1.996525f, 1.996525f,
1.0f, 1.0f, 1.0f,
};
float const array_node_geosphere_scale_intangent_array[] = {
0.9997917f, 1.0f, 0.9997917f, 1.0f, 0.9997917f, 1.0f,
1.111167f, 1.996525f, 1.111167f, 1.996525f, 1.111167f, 1.996525f,
2.777833f, 1.0f, 2.777833f, 1.0f, 2.777833f, 1.0f,
};
float const array_node_geosphere_scale_outtangent_array[] = {
0.5555f, 1.0f, 0.5555f, 1.0f, 0.5555f, 1.0f,
2.222167f, 1.996525f, 2.222167f, 1.996525f, 2.222167f, 1.996525f,
2.333542f, 1.0f, 2.333542f, 1.0f, 2.333542f, 1.0f,
};
enum interpolation const array_node_geosphere_scale_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_geosphere_scale_sampler = {
// node_geosphere_scale_input
.input = {
.float_array = array_node_geosphere_scale_input_array,
.count = 3,
.stride = 1,
},
// node_geosphere_scale_output
.output = {
.float_array = array_node_geosphere_scale_output_array,
.count = 3,
.stride = 3,
},
// node_geosphere_scale_intangent
.in_tangent = {
.float_array = array_node_geosphere_scale_intangent_array,
.count = 3,
.stride = 6,
},
// node_geosphere_scale_outtangent
.out_tangent = {
.float_array = array_node_geosphere_scale_outtangent_array,
.count = 3,
.stride = 6,
},
// node_geosphere_scale_interpolation
.interpolation = {
.interpolation_array = array_node_geosphere_scale_interpolation_array,
.count = 3,
.stride = 1,
},
};
float const array_node_geosphere_inversescaleaxisrotation_input_array[] = {
0.0f,
1.666667f,
3.333333f,
};
float const array_node_geosphere_inversescaleaxisrotation_output_array[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
};
enum interpolation const array_node_geosphere_inversescaleaxisrotation_interpolation_array[] = {
interpolation::LINEAR,
interpolation::LINEAR,
interpolation::LINEAR,
};
sampler const sampler_node_geosphere_inversescaleaxisrotation_sampler = {
// node_geosphere_inversescaleaxisrotation_input
.input = {
.float_array = array_node_geosphere_inversescaleaxisrotation_input_array,
.count = 3,
.stride = 1,
},
// node_geosphere_inversescaleaxisrotation_output
.output = {
.float_array = array_node_geosphere_inversescaleaxisrotation_output_array,
.count = 3,
.stride = 4,
},
// node_geosphere_inversescaleaxisrotation_interpolation
.interpolation = {
.interpolation_array = array_node_geosphere_inversescaleaxisrotation_interpolation_array,
.count = 3,
.stride = 1,
},
};
float const array_node_geosphere_scaleaxisrotation_input_array[] = {
0.0f,
1.666667f,
3.333333f,
};
float const array_node_geosphere_scaleaxisrotation_output_array[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
};
enum interpolation const array_node_geosphere_scaleaxisrotation_interpolation_array[] = {
interpolation::LINEAR,
interpolation::LINEAR,
interpolation::LINEAR,
};
sampler const sampler_node_geosphere_scaleaxisrotation_sampler = {
// node_geosphere_scaleaxisrotation_input
.input = {
.float_array = array_node_geosphere_scaleaxisrotation_input_array,
.count = 3,
.stride = 1,
},
// node_geosphere_scaleaxisrotation_output
.output = {
.float_array = array_node_geosphere_scaleaxisrotation_output_array,
.count = 3,
.stride = 4,
},
// node_geosphere_scaleaxisrotation_interpolation
.interpolation = {
.interpolation_array = array_node_geosphere_scaleaxisrotation_interpolation_array,
.count = 3,
.stride = 1,
},
};
float const array_node_light_translation_x_input_array[] = {
0.0f,
0.5f,
1.0f,
1.5f,
2.0f,
2.833333f,
3.333333f,
};
float const array_node_light_translation_x_output_array[] = {
2.124535f,
-5.611371f,
-5.611371f,
0.04967833f,
0.04967833f,
2.124535f,
2.124535f,
};
float const array_node_light_translation_x_intangent_array[] = {
0.9997917f, 2.124535f,
0.33335f, -5.611371f,
0.83335f, -5.611371f,
1.33335f, 0.04967833f,
1.83335f, 0.04967833f,
2.555583f, 2.124535f,
3.166683f, 2.124535f,
};
float const array_node_light_translation_x_outtangent_array[] = {
0.16665f, 2.124535f,
0.66665f, -5.611371f,
1.16665f, -5.611371f,
1.66665f, 0.04967833f,
2.27775f, 0.04967833f,
2.999983f, 2.124535f,
3.666564f, 2.124535f,
};
enum interpolation const array_node_light_translation_x_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_light_translation_x_sampler = {
// node_light_translation_x_input
.input = {
.float_array = array_node_light_translation_x_input_array,
.count = 7,
.stride = 1,
},
// node_light_translation_x_output
.output = {
.float_array = array_node_light_translation_x_output_array,
.count = 7,
.stride = 1,
},
// node_light_translation_x_intangent
.in_tangent = {
.float_array = array_node_light_translation_x_intangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_x_outtangent
.out_tangent = {
.float_array = array_node_light_translation_x_outtangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_x_interpolation
.interpolation = {
.interpolation_array = array_node_light_translation_x_interpolation_array,
.count = 7,
.stride = 1,
},
};
float const array_node_light_translation_y_input_array[] = {
0.0f,
0.5f,
1.0f,
1.5f,
2.0f,
2.833333f,
3.333333f,
};
float const array_node_light_translation_y_output_array[] = {
8.291501f,
0.2940993f,
0.2940993f,
-3.820096f,
-3.820096f,
8.291501f,
8.291501f,
};
float const array_node_light_translation_y_intangent_array[] = {
0.9997917f, 8.291501f,
0.33335f, 0.2940993f,
0.83335f, 0.2940993f,
1.33335f, -3.820096f,
1.83335f, -3.820096f,
2.555583f, 8.291501f,
3.166683f, 8.291501f,
};
float const array_node_light_translation_y_outtangent_array[] = {
0.16665f, 8.291501f,
0.66665f, 0.2940993f,
1.16665f, 0.2940993f,
1.66665f, -3.820096f,
2.27775f, -3.820096f,
2.999983f, 8.291501f,
3.666564f, 8.291501f,
};
enum interpolation const array_node_light_translation_y_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_light_translation_y_sampler = {
// node_light_translation_y_input
.input = {
.float_array = array_node_light_translation_y_input_array,
.count = 7,
.stride = 1,
},
// node_light_translation_y_output
.output = {
.float_array = array_node_light_translation_y_output_array,
.count = 7,
.stride = 1,
},
// node_light_translation_y_intangent
.in_tangent = {
.float_array = array_node_light_translation_y_intangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_y_outtangent
.out_tangent = {
.float_array = array_node_light_translation_y_outtangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_y_interpolation
.interpolation = {
.interpolation_array = array_node_light_translation_y_interpolation_array,
.count = 7,
.stride = 1,
},
};
float const array_node_light_translation_z_input_array[] = {
0.0f,
0.5f,
1.0f,
1.5f,
2.0f,
2.833333f,
3.333333f,
};
float const array_node_light_translation_z_output_array[] = {
6.185831f,
6.185831f,
6.185831f,
6.185831f,
6.185831f,
6.185831f,
6.185831f,
};
float const array_node_light_translation_z_intangent_array[] = {
0.9997917f, 6.185831f,
0.33335f, 6.185831f,
0.83335f, 6.185831f,
1.33335f, 6.185831f,
1.83335f, 6.185831f,
2.555583f, 6.185831f,
3.166683f, 6.185831f,
};
float const array_node_light_translation_z_outtangent_array[] = {
0.16665f, 6.185831f,
0.66665f, 6.185831f,
1.16665f, 6.185831f,
1.66665f, 6.185831f,
2.27775f, 6.185831f,
2.999983f, 6.185831f,
3.666564f, 6.185831f,
};
enum interpolation const array_node_light_translation_z_interpolation_array[] = {
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
interpolation::BEZIER,
};
sampler const sampler_node_light_translation_z_sampler = {
// node_light_translation_z_input
.input = {
.float_array = array_node_light_translation_z_input_array,
.count = 7,
.stride = 1,
},
// node_light_translation_z_output
.output = {
.float_array = array_node_light_translation_z_output_array,
.count = 7,
.stride = 1,
},
// node_light_translation_z_intangent
.in_tangent = {
.float_array = array_node_light_translation_z_intangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_z_outtangent
.out_tangent = {
.float_array = array_node_light_translation_z_outtangent_array,
.count = 7,
.stride = 2,
},
// node_light_translation_z_interpolation
.interpolation = {
.interpolation_array = array_node_light_translation_z_interpolation_array,
.count = 7,
.stride = 1,
},
};
channel const node_channel_node_cube_translation_x = {
.source_sampler = &sampler_node_cube_translation_x_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::X,
};
channel const node_channel_node_cube_translation_y = {
.source_sampler = &sampler_node_cube_translation_y_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::Y,
};
channel const node_channel_node_torus_rotationx_angle = {
.source_sampler = &sampler_node_torus_rotationx_angle_sampler,
.target_transform_index = 3,
.target_attribute = target_attribute::ANGLE,
};
channel const node_channel_node_geosphere_scale = {
.source_sampler = &sampler_node_geosphere_scale_sampler,
.target_transform_index = 1,
.target_attribute = target_attribute::ALL,
};
channel const node_channel_node_geosphere_inversescaleaxisrotation = {
.source_sampler = &sampler_node_geosphere_inversescaleaxisrotation_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::ALL,
};
channel const node_channel_node_geosphere_scaleaxisrotation = {
.source_sampler = &sampler_node_geosphere_scaleaxisrotation_sampler,
.target_transform_index = 2,
.target_attribute = target_attribute::ALL,
};
channel const node_channel_node_light_translation_x = {
.source_sampler = &sampler_node_light_translation_x_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::X,
};
channel const node_channel_node_light_translation_y = {
.source_sampler = &sampler_node_light_translation_y_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::Y,
};
channel const node_channel_node_light_translation_z = {
.source_sampler = &sampler_node_light_translation_z_sampler,
.target_transform_index = 0,
.target_attribute = target_attribute::Z,
};
// american_cherry_png
image const image_american_cherry_png = {
.resource_name = L"_AMERICAN_CHERRY_PNG",
};
// _02_png
image const image__02_png = {
.resource_name = L"_102_PNG",
};
// Finishes_Flooring_Tile_Square_Medium_Blue_png
image const image_finishes_flooring_tile_square_medium_blue_png = {
.resource_name = L"_FINISHES_FLOORING_TILE_SQUARE_MEDIUM_BLUE_PNG",
};
// SiteWork_Planting_Grass_Bermuda1_jpg
image const image_sitework_planting_grass_bermuda1_jpg = {
.resource_name = L"_SITEWORK_PLANTING_GRASS_BERMUDA1_JPG",
};
image const * const images[] = {
&image_american_cherry_png,
&image__02_png,
&image_finishes_flooring_tile_square_medium_blue_png,
&image_sitework_planting_grass_bermuda1_jpg,
};
effect const effect_material__15 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_material__16 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_material__17 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_material__18 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_material__19 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_material__20 = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_coloreffectr26g177b26 = {
.type = effect_type::PHONG,
.phong = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 0.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_grass = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.588f, 0.588f, 0.588f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::TEXTURE,
.texture = { .image_index = 3 }, // SiteWork_Planting_Grass_Bermuda1_jpg
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_wood = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.588f, 0.588f, 0.588f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::TEXTURE,
.texture = { .image_index = 0 }, // american_cherry_png
},
.specular = {
.type = color_or_texture_type::TEXTURE,
.texture = { .image_index = 2 }, // Finishes_Flooring_Tile_Square_Medium_Blue_png
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_coloreffectr198g224b87 = {
.type = effect_type::PHONG,
.phong = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 0.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
effect const effect_lightemit = {
.type = effect_type::BLINN,
.blinn = {
.emission = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.ambient = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.diffuse = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.specular = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.shininess = 10.0f,
.reflective = {
.type = color_or_texture_type::COLOR,
.color = {0.0f, 0.0f, 0.0f, 1.0f},
},
.reflectivity = 0.0f,
.transparent = {
.type = color_or_texture_type::COLOR,
.color = {1.0f, 1.0f, 1.0f, 1.0f},
},
.transparency = 1.0f,
.index_of_refraction = 0.0f,
}
};
material const material_coloreffectr26g177b26_material = {
.effect = &effect_coloreffectr26g177b26,
};
material const material_coloreffectr198g224b87_material = {
.effect = &effect_coloreffectr198g224b87,
};
material const material_material__15_material = {
.effect = &effect_material__15,
};
material const material_material__16_material = {
.effect = &effect_material__16,
};
material const material_material__17_material = {
.effect = &effect_material__17,
};
material const material_material__18_material = {
.effect = &effect_material__18,
};
material const material_material__19_material = {
.effect = &effect_material__19,
};
material const material_material__20_material = {
.effect = &effect_material__20,
};
material const material_grass_material = {
.effect = &effect_grass,
};
material const material_wood_material = {
.effect = &effect_wood,
};
material const material_lightemit_material = {
.effect = &effect_lightemit,
};
input_element const input_elements_position_0_3_normal_0_3_texcoord_0_3[] = {
{
.semantic = "POSITION",
.semantic_index = 0,
.format = input_format::FLOAT3,
},
{
.semantic = "NORMAL",
.semantic_index = 0,
.format = input_format::FLOAT3,
},
{
.semantic = "TEXCOORD",
.semantic_index = 0,
.format = input_format::FLOAT3,
},
};
triangles const triangles_geom_cube[] = {
{
.count = 2, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
{
.count = 2, // triangles
.index_offset = 6, // indices
.inputs_index = 0, // index into inputs_list
},
{
.count = 2, // triangles
.index_offset = 12, // indices
.inputs_index = 0, // index into inputs_list
},
{
.count = 2, // triangles
.index_offset = 18, // indices
.inputs_index = 0, // index into inputs_list
},
{
.count = 2, // triangles
.index_offset = 24, // indices
.inputs_index = 0, // index into inputs_list
},
{
.count = 2, // triangles
.index_offset = 30, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_cube = {
.mesh = {
.triangles = triangles_geom_cube,
.triangles_count = 6,
.vertex_buffer_offset = 0,
.vertex_buffer_size = 864,
.index_buffer_offset = 0,
.index_buffer_size = 144,
}
};
triangles const triangles_geom_torus[] = {
{
.count = 240, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_torus = {
.mesh = {
.triangles = triangles_geom_torus,
.triangles_count = 1,
.vertex_buffer_offset = 864,
.vertex_buffer_size = 5148,
.index_buffer_offset = 144,
.index_buffer_size = 2880,
}
};
triangles const triangles_geom_cylinder[] = {
{
.count = 30, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_cylinder = {
.mesh = {
.triangles = triangles_geom_cylinder,
.triangles_count = 1,
.vertex_buffer_offset = 6012,
.vertex_buffer_size = 1152,
.index_buffer_offset = 3024,
.index_buffer_size = 360,
}
};
triangles const triangles_geom_plane[] = {
{
.count = 2, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_plane = {
.mesh = {
.triangles = triangles_geom_plane,
.triangles_count = 1,
.vertex_buffer_offset = 7164,
.vertex_buffer_size = 144,
.index_buffer_offset = 3384,
.index_buffer_size = 24,
}
};
triangles const triangles_geom_geosphere[] = {
{
.count = 40, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_geosphere = {
.mesh = {
.triangles = triangles_geom_geosphere,
.triangles_count = 1,
.vertex_buffer_offset = 7308,
.vertex_buffer_size = 4320,
.index_buffer_offset = 3408,
.index_buffer_size = 480,
}
};
triangles const triangles_geom_lightindicator[] = {
{
.count = 8, // triangles
.index_offset = 0, // indices
.inputs_index = 0, // index into inputs_list
},
};
geometry const geometry_geom_lightindicator = {
.mesh = {
.triangles = triangles_geom_lightindicator,
.triangles_count = 1,
.vertex_buffer_offset = 11628,
.vertex_buffer_size = 864,
.index_buffer_offset = 3888,
.index_buffer_size = 96,
}
};
geometry const * const geometries[] = {
&geometry_geom_cube,
&geometry_geom_torus,
&geometry_geom_cylinder,
&geometry_geom_plane,
&geometry_geom_geosphere,
&geometry_geom_lightindicator,
};
transform const transforms_node_environmentambientlight[] = {
};
instance_geometry const instance_geometries_node_environmentambientlight[] = {
};
instance_controller const instance_controllers_node_environmentambientlight[] = {
};
instance_light const instance_lights_node_environmentambientlight[] = {
{
.light = &light_environmentambientlight,
}
};
channel const * const node_channels_node_environmentambientlight[] = {};
node const node_node_environmentambientlight = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_environmentambientlight,
.transforms_count = 0,
.instance_geometries = instance_geometries_node_environmentambientlight,
.instance_geometries_count = 0,
.instance_controllers = instance_controllers_node_environmentambientlight,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_environmentambientlight,
.instance_lights_count = 1,
.channels = node_channels_node_environmentambientlight,
.channels_count = 0,
};
transform const transforms_node_cube[] = {
{
.type = transform_type::TRANSLATE,
.translate = {10.0f, -1.14258e-07f, 0.0f},
},
};
instance_material const instance_geometry_instance_materials_node_cube_0[] = {
{
.element_index = 1, // an index into mesh.triangles
.material = &material_material__15_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
{
.element_index = 0, // an index into mesh.triangles
.material = &material_material__16_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
{
.element_index = 5, // an index into mesh.triangles
.material = &material_material__17_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
{
.element_index = 4, // an index into mesh.triangles
.material = &material_material__20_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
{
.element_index = 3, // an index into mesh.triangles
.material = &material_material__18_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
{
.element_index = 2, // an index into mesh.triangles
.material = &material_material__19_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
};
instance_geometry const instance_geometries_node_cube[] = {
{
.geometry = &geometry_geom_cube,
.instance_materials = instance_geometry_instance_materials_node_cube_0,
.instance_materials_count = 6,
},
};
instance_controller const instance_controllers_node_cube[] = {
};
instance_light const instance_lights_node_cube[] = {
};
channel const * const node_channels_node_cube[] = {
&node_channel_node_cube_translation_x,
&node_channel_node_cube_translation_y,
};
node const node_node_cube = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_cube,
.transforms_count = 1,
.instance_geometries = instance_geometries_node_cube,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_cube,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_cube,
.instance_lights_count = 0,
.channels = node_channels_node_cube,
.channels_count = 2,
};
transform const transforms_node_torus[] = {
{
.type = transform_type::TRANSLATE,
.translate = {5.0f, 1.14258e-07f, 2.0f},
},
{
.type = transform_type::ROTATE,
.rotate = {0.0f, 0.0f, 1.0f, 0.0f},
},
{
.type = transform_type::ROTATE,
.rotate = {0.0f, 1.0f, 0.0f, 2.00358e-05f},
},
{
.type = transform_type::ROTATE,
.rotate = {1.0f, 0.0f, 0.0f, 0.0f},
},
{
.type = transform_type::SCALE,
.scale = {0.5f, 0.5f, 0.5f},
},
};
instance_material const instance_geometry_instance_materials_node_torus_0[] = {
{
.element_index = 0, // an index into mesh.triangles
.material = &material_coloreffectr26g177b26_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
};
instance_geometry const instance_geometries_node_torus[] = {
{
.geometry = &geometry_geom_torus,
.instance_materials = instance_geometry_instance_materials_node_torus_0,
.instance_materials_count = 1,
},
};
instance_controller const instance_controllers_node_torus[] = {
};
instance_light const instance_lights_node_torus[] = {
};
channel const * const node_channels_node_torus[] = {
&node_channel_node_torus_rotationx_angle,
};
node const node_node_torus = {
.parent_index = 1,
.type = node_type::NODE,
.transforms = transforms_node_torus,
.transforms_count = 5,
.instance_geometries = instance_geometries_node_torus,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_torus,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_torus,
.instance_lights_count = 0,
.channels = node_channels_node_torus,
.channels_count = 1,
};
transform const transforms_node_cylinder[] = {
};
instance_material const instance_geometry_instance_materials_node_cylinder_0[] = {
{
.element_index = 0, // an index into mesh.triangles
.material = &material_grass_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = 0 },
.specular = { .input_set = -1 },
},
};
instance_geometry const instance_geometries_node_cylinder[] = {
{
.geometry = &geometry_geom_cylinder,
.instance_materials = instance_geometry_instance_materials_node_cylinder_0,
.instance_materials_count = 1,
},
};
instance_controller const instance_controllers_node_cylinder[] = {
};
instance_light const instance_lights_node_cylinder[] = {
};
channel const * const node_channels_node_cylinder[] = {
};
node const node_node_cylinder = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_cylinder,
.transforms_count = 0,
.instance_geometries = instance_geometries_node_cylinder,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_cylinder,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_cylinder,
.instance_lights_count = 0,
.channels = node_channels_node_cylinder,
.channels_count = 0,
};
transform const transforms_node_plane[] = {
{
.type = transform_type::TRANSLATE,
.translate = {0.0f, 0.0f, 0.01f},
},
{
.type = transform_type::ROTATE,
.rotate = {0.0f, 0.0f, -1.0f, -44.99999f},
},
};
instance_material const instance_geometry_instance_materials_node_plane_0[] = {
{
.element_index = 0, // an index into mesh.triangles
.material = &material_wood_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = 0 },
.specular = { .input_set = 0 },
},
};
instance_geometry const instance_geometries_node_plane[] = {
{
.geometry = &geometry_geom_plane,
.instance_materials = instance_geometry_instance_materials_node_plane_0,
.instance_materials_count = 1,
},
};
instance_controller const instance_controllers_node_plane[] = {
};
instance_light const instance_lights_node_plane[] = {
};
channel const * const node_channels_node_plane[] = {
};
node const node_node_plane = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_plane,
.transforms_count = 2,
.instance_geometries = instance_geometries_node_plane,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_plane,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_plane,
.instance_lights_count = 0,
.channels = node_channels_node_plane,
.channels_count = 0,
};
transform const transforms_node_geosphere[] = {
{
.type = transform_type::ROTATE,
.rotate = {0.0f, 0.0f, 0.0f, 0.0f},
},
{
.type = transform_type::SCALE,
.scale = {1.0f, 1.0f, 1.0f},
},
{
.type = transform_type::ROTATE,
.rotate = {0.0f, 0.0f, 0.0f, 0.0f},
},
};
instance_material const instance_geometry_instance_materials_node_geosphere_0[] = {
{
.element_index = 0, // an index into mesh.triangles
.material = &material_coloreffectr198g224b87_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
};
instance_geometry const instance_geometries_node_geosphere[] = {
{
.geometry = &geometry_geom_geosphere,
.instance_materials = instance_geometry_instance_materials_node_geosphere_0,
.instance_materials_count = 1,
},
};
instance_controller const instance_controllers_node_geosphere[] = {
};
instance_light const instance_lights_node_geosphere[] = {
};
channel const * const node_channels_node_geosphere[] = {
&node_channel_node_geosphere_inversescaleaxisrotation,
&node_channel_node_geosphere_scale,
&node_channel_node_geosphere_scaleaxisrotation,
};
node const node_node_geosphere = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_geosphere,
.transforms_count = 3,
.instance_geometries = instance_geometries_node_geosphere,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_geosphere,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_geosphere,
.instance_lights_count = 0,
.channels = node_channels_node_geosphere,
.channels_count = 3,
};
transform const transforms_node_light[] = {
{
.type = transform_type::TRANSLATE,
.translate = {2.124535f, 8.291501f, 6.185831f},
},
};
instance_geometry const instance_geometries_node_light[] = {
};
instance_controller const instance_controllers_node_light[] = {
};
instance_light const instance_lights_node_light[] = {
{
.light = &light_light_light,
}
};
channel const * const node_channels_node_light[] = {
&node_channel_node_light_translation_x,
&node_channel_node_light_translation_z,
&node_channel_node_light_translation_y,
};
node const node_node_light = {
.parent_index = -1,
.type = node_type::NODE,
.transforms = transforms_node_light,
.transforms_count = 1,
.instance_geometries = instance_geometries_node_light,
.instance_geometries_count = 0,
.instance_controllers = instance_controllers_node_light,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_light,
.instance_lights_count = 1,
.channels = node_channels_node_light,
.channels_count = 3,
};
transform const transforms_node_lightindicator[] = {
{
.type = transform_type::ROTATE,
.rotate = {0.5773504f, -0.5773501f, -0.5773504f, -120.0f},
},
};
instance_material const instance_geometry_instance_materials_node_lightindicator_0[] = {
{
.element_index = 0, // an index into mesh.triangles
.material = &material_lightemit_material,
.emission = { .input_set = -1 },
.ambient = { .input_set = -1 },
.diffuse = { .input_set = -1 },
.specular = { .input_set = -1 },
},
};
instance_geometry const instance_geometries_node_lightindicator[] = {
{
.geometry = &geometry_geom_lightindicator,
.instance_materials = instance_geometry_instance_materials_node_lightindicator_0,
.instance_materials_count = 1,
},
};
instance_controller const instance_controllers_node_lightindicator[] = {
};
instance_light const instance_lights_node_lightindicator[] = {
};
channel const * const node_channels_node_lightindicator[] = {
};
node const node_node_lightindicator = {
.parent_index = 6,
.type = node_type::NODE,
.transforms = transforms_node_lightindicator,
.transforms_count = 1,
.instance_geometries = instance_geometries_node_lightindicator,
.instance_geometries_count = 1,
.instance_controllers = instance_controllers_node_lightindicator,
.instance_controllers_count = 0,
.instance_lights = instance_lights_node_lightindicator,
.instance_lights_count = 0,
.channels = node_channels_node_lightindicator,
.channels_count = 0,
};
node const * const nodes[] = {
&node_node_environmentambientlight,
&node_node_cube,
&node_node_torus,
&node_node_cylinder,
&node_node_plane,
&node_node_geosphere,
&node_node_light,
&node_node_lightindicator,
};
inputs const inputs_list[] = {
{
.elements = input_elements_position_0_3_normal_0_3_texcoord_0_3,
.elements_count = 3,
},
};
extern collada::descriptor const descriptor;
collada::descriptor const descriptor = {
.nodes = nodes,
.nodes_count = (sizeof (nodes)) / (sizeof (nodes[0])),
.inputs_list = inputs_list,
.inputs_list_count = (sizeof (inputs_list)) / (sizeof (inputs_list[0])),
.images = images,
.images_count = (sizeof (images)) / (sizeof (images[0])),
};
}