Unravel Engine C++ Reference
Loading...
Searching...
No Matches
material_script_helpers.h
Go to the documentation of this file.
1#pragma once
2
3#include "../script_interop.h"
4
6
7#include <memory>
8
9namespace unravel
10{
11
14{
15 using converter = dotnet::managed_interface::converter;
18 {
19 const auto pbr = std::static_pointer_cast<pbr_material>(material);
20 props.base_color =
21 converter::convert<math::color, dotnetpp_backend::managed_interface::color>(pbr->get_base_color());
22 props.emissive_color =
23 converter::convert<math::color, dotnetpp_backend::managed_interface::color>(pbr->get_emissive_color());
24 props.tiling =
25 converter::convert<math::vec2, dotnetpp_backend::managed_interface::vector2>(pbr->get_tiling());
26 props.roughness = pbr->get_roughness();
27 props.metalness = pbr->get_metalness();
28 props.bumpiness = pbr->get_bumpiness();
29 props.valid = true;
30 }
31 return props;
32}
33
36{
37 using converter = dotnet::managed_interface::converter;
39 {
40 auto pbr = std::static_pointer_cast<pbr_material>(material);
41 auto base_color =
42 converter::convert<dotnetpp_backend::managed_interface::color, math::color>(props.base_color);
43 pbr->set_base_color(base_color);
44 auto emissive_color =
45 converter::convert<dotnetpp_backend::managed_interface::color, math::color>(props.emissive_color);
46 pbr->set_emissive_color(emissive_color);
47 auto tiling =
48 converter::convert<dotnetpp_backend::managed_interface::vector2, math::vec2>(props.tiling);
49 pbr->set_tiling(tiling);
50 pbr->set_metalness(props.metalness);
51 pbr->set_bumpiness(props.bumpiness);
52 }
53}
54
55} // namespace unravel
Base class for materials used in rendering.
Definition material.h:44
std::shared_ptr< material > sptr
Definition material.h:48
Class for physically-based rendering (PBR) materials.
Definition material.h:112
void set_material_properties(const material::sptr &material, const dotnetpp_backend::managed_interface::material_properties &props)
auto get_material_properties(const material::sptr &material) -> dotnetpp_backend::managed_interface::material_properties
auto is() const -> bool