cleanup before reworking the scripting engine layout:

This commit is contained in:
Hartmut Seichter 2019-01-22 15:21:04 +01:00
parent 4ff557d446
commit 803af8c37a
6 changed files with 130 additions and 108 deletions

View file

@ -7,7 +7,7 @@
#include "pw/core/size.hpp"
#include "pw/core/point.hpp"
#include "pw/core/timer.hpp"
#include "pw/core/mesh.hpp"
namespace pw {
@ -19,46 +19,41 @@ void script_core::load(sol::table &ns)
ns.set("pi",pw::pi<Scalar>());
ns.new_usertype<vector3>(
"vector3",
sol::constructors<vector3(),vector3(vector3::value_type,vector3::value_type,vector3::value_type)>(),
"x", sol::property(sol::resolve<const vector3::value_type&() const>(&vector3::x), [](vector3::value_type v){ x() = v})
);
ns.new_usertype<vector3>
(
"vector3",
sol::constructors<vector3(),vector3(vector3::value_type,vector3::value_type,vector3::value_type)>(),
"x", sol::property(sol::resolve<const vector3::value_type&() const>(&vector3::x), [](vector3& v,vector3::value_type val){ v.x() = val;}),
"y", sol::property(sol::resolve<const vector3::value_type&() const>(&vector3::y), [](vector3& v,vector3::value_type val){ v.y() = val;}),
"z", sol::property(sol::resolve<const vector3::value_type&() const>(&vector3::z), [](vector3& v,vector3::value_type val){ v.z() = val;}),
"cross",&vector3::cross,
"lerp",&vector3::lerp
);
// ns.new_usertype<vector3>("vector3",
// sol::constructors<vector3(),vector3(vector3::value_type,vector3::value_type,vector3::value_type)>(),
// "x",&vector3::x
//// "set",&vector3::set,
//// "x", scripting::property(scripting::resolve<const Scalar&() const>(&vector3::x), &vector3::set_x),
//// "y", scripting::property(scripting::resolve<const Scalar&() const>(&vector3::y), &vector3::set_y),
//// "z", scripting::property(scripting::resolve<const Scalar&() const>(&vector3::z), &vector3::set_z),
//// "norm",&vector3::norm,
//// "cross",&vector3::cross,
//// "dot",&vector3::dot
// );
// ns.new_usertype<quaternion>("quaternion",
// sol::constructors<quaternion(), quaternion(Scalar,Scalar,Scalar,Scalar)>(),
// "set",&quaternion::set,
// "x", scripting::property(scripting::resolve<const Scalar&() const>(&quaternion::x), &quaternion::set_x),
// "y", scripting::property(scripting::resolve<const Scalar&() const>(&quaternion::y), &quaternion::set_y),
// "z", scripting::property(scripting::resolve<const Scalar&() const>(&quaternion::z), &quaternion::set_z),
// "w", scripting::property(scripting::resolve<const Scalar&() const>(&quaternion::w), &quaternion::set_w),
// "dot",&quaternion::dot,
// "inverse",scripting::readonly_property(&quaternion::inverse),
// "normalized",&quaternion::normalized,
// "lerp",&quaternion::lerp,
// "slerp",&quaternion::slerp
// // "v",&vector3d::values,
// // "clone",&vector3d::clone
// );
ns.new_usertype<quaternion>
(
"quaternion",
sol::constructors<quaternion(), quaternion(quaternion::value_type,quaternion::value_type,quaternion::value_type,quaternion::value_type)>(),
"x", sol::property(sol::resolve<const quaternion::value_type&() const>(&quaternion::x), [](quaternion& v,quaternion::value_type val){ v.x() = val;}),
"y", sol::property(sol::resolve<const quaternion::value_type&() const>(&quaternion::y), [](quaternion& v,quaternion::value_type val){ v.y() = val;}),
"z", sol::property(sol::resolve<const quaternion::value_type&() const>(&quaternion::z), [](quaternion& v,quaternion::value_type val){ v.z() = val;}),
"w", sol::property(sol::resolve<const quaternion::value_type&() const>(&quaternion::w), [](quaternion& v,quaternion::value_type val){ v.w() = val;}),
"identity",sol::readonly_property(&quaternion::identity),
"dot",&quaternion::dot,
"inverse",scripting::readonly_property(&quaternion::inverse),
"normalized",&quaternion::normalized,
"lerp",&quaternion::lerp,
"slerp",&quaternion::slerp
);
ns.new_usertype<axisangle>("axisangle",
sol::constructors<axisangle(), axisangle(vector3,Scalar)>(),
"axis",scripting::property(&axisangle::axis,&axisangle::set_axis),
"angle",scripting::property(&axisangle::angle,&axisangle::set_angle)
);
ns.new_usertype<axisangle>
("axisangle",
sol::constructors<axisangle(), axisangle(vector3,Scalar)>(),
"axis",scripting::property(&axisangle::axis,&axisangle::set_axis),
"angle",scripting::property(&axisangle::angle,&axisangle::set_angle)
);
ns.new_usertype<size>("size",
@ -89,6 +84,17 @@ void script_core::load(sol::table &ns)
"reset",&timer::reset
);
ns.new_usertype<mesh>
(
"mesh",
sol::constructors<mesh()>()
);
// ns.new_enum<mesh::topology_type>
// (
// "mesh",
// sol::constructors<mesh()>()
// );
}