working texturing

This commit is contained in:
Hartmut Seichter 2021-01-30 21:23:16 +01:00
parent 0c8748befe
commit 2b71d39a9b
10 changed files with 90 additions and 76 deletions

View file

@ -15,23 +15,6 @@ PW_REGISTER_DECL_LUA(scene)
PW_REGISTER_DECL_LUA(visual)
void static_example()
{
// in SOL 2.20.6
// in SOL 3.2.2
}
struct script::state {
sol::state _state;

View file

@ -21,6 +21,7 @@ template <> struct is_automagical<pw::vector2> : std::false_type {};
template <> struct is_automagical<pw::vector4> : std::false_type {};
template <> struct is_automagical<pw::quaternion> : std::false_type {};
template <> struct is_automagical<pw::rectangle> : std::false_type {};
template <> struct is_automagical<pw::geometry> : std::false_type {};
}
namespace pw {
@ -91,11 +92,11 @@ void register_core_function(sol::state& lua,sol::table& ns)
ns.new_usertype<vector4>("vector4"
,sol::call_constructor,sol::constructors<vector4(),vector4(vector4::value_type,vector4::value_type,vector4::value_type,vector4::value_type)>()
,"x", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::x), [](vector4& v,vector4::value_type val){ v.x() = val;})
,"y", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::y), [](vector4& v,vector4::value_type val){ v.y() = val;})
,"z", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::z), [](vector4& v,vector4::value_type val){ v.z() = val;})
,"w", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::w), [](vector4& v,vector4::value_type val){ v.w() = val;})
,"project",&vector4::project
);
,"y", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::y), [](vector4& v,vector4::value_type val){ v.y() = val;})
,"z", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::z), [](vector4& v,vector4::value_type val){ v.z() = val;})
,"w", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::w), [](vector4& v,vector4::value_type val){ v.w() = val;})
,"project",&vector4::project
);
ns.new_usertype<quaternion>("quaternion"
@ -113,8 +114,7 @@ void register_core_function(sol::state& lua,sol::table& ns)
,"matrix",&quaternion::to_matrix
);
ns.new_usertype<axisangle>
("axisangle",
ns.new_usertype<axisangle>("axisangle",
sol::constructors<axisangle(), axisangle(vector3,Scalar)>(),
"axis",&axisangle::axis,
"angle",&axisangle::angle,
@ -159,18 +159,20 @@ void register_core_function(sol::state& lua,sol::table& ns)
);
ns.new_usertype<geometry>("geometry"
, sol::constructors<geometry(),geometry(geometry::primitive_topology_type,vector3_array,geometry::indices_t)>()
, "primitive_topology", sol::property(&geometry::primitive_topology,&geometry::set_primitive_topology)
, "vertices", sol::property(&geometry::ref_vertices,&geometry::ref_vertices)
, "indices", sol::property(&geometry::ref_indices,&geometry::ref_indices)
, "add_texture_coordinates",&geometry::add_texture_coordinates
// , "texture_coordinates",&geometry::texture_coordinates
, "compute_normals", &geometry::compute_normals);
,sol::constructors<geometry(),geometry(geometry::primitive_topology_type,vector3_array,geometry::indices_t)>()
,"primitive_topology", sol::property(&geometry::primitive_topology,&geometry::set_primitive_topology)
,"vertices", sol::property(&geometry::ref_vertices,&geometry::ref_vertices)
,"indices", sol::property(&geometry::ref_indices,&geometry::ref_indices)
// ,"texture_coordinates", sol::property(&geometry::ref_texture_coordinates,&geometry::ref_texture_coordinates)
,"compute_normals", &geometry::compute_normals
);
ns.new_enum<false>("primitive_topology_type"
,"point_list", geometry::primitive_topology_type::point_list
,"line_list", geometry::primitive_topology_type::line_list
,"triangle_list", geometry::primitive_topology_type::triangle_list);
,"point_list", geometry::primitive_topology_type::point_list
,"line_list", geometry::primitive_topology_type::line_list
,"triangle_list", geometry::primitive_topology_type::triangle_list
);
ns.new_usertype<matrix_transform<real_t>>("matrixtransform"

View file

@ -6,7 +6,7 @@ namespace pw {
void register_io_function(sol::state&,sol::table& ns)
{
ns.new_usertype<image_io>("imageio"
ns.new_usertype<image_io>("image_io"
,"new", sol::no_constructor
,"get",&image_io::get
,"read",&image_io::read