slight refactoring
This commit is contained in:
parent
e01df69575
commit
47d28b4f1e
8 changed files with 79 additions and 73 deletions
|
@ -6,7 +6,7 @@ add_subdirectory(system)
|
|||
add_subdirectory(io)
|
||||
|
||||
#add_subdirectory(ui)
|
||||
add_subdirectory(scripting)
|
||||
add_subdirectory(binding)
|
||||
add_subdirectory(visual)
|
||||
add_subdirectory(geometry)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ set(srcs
|
|||
src/runtime_lua.cpp
|
||||
)
|
||||
|
||||
add_library(pwscripting
|
||||
add_library(pwbinding
|
||||
STATIC
|
||||
${hdrs}
|
||||
${srcs}
|
||||
|
@ -22,7 +22,7 @@ add_library(pwscripting
|
|||
|
||||
|
||||
target_include_directories(
|
||||
pwscripting
|
||||
pwbinding
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/src/deps/lua-5.3.5/src
|
||||
${CMAKE_SOURCE_DIR}/src/deps/sol2-2.20.6
|
||||
|
@ -30,7 +30,7 @@ target_include_directories(
|
|||
include
|
||||
)
|
||||
|
||||
target_link_libraries(pwscripting
|
||||
target_link_libraries(pwbinding
|
||||
lualib
|
||||
pwcore
|
||||
pwsystem
|
||||
|
|
|
@ -73,6 +73,7 @@ public:
|
|||
|
||||
void compute_normals();
|
||||
|
||||
void compute_bounds();
|
||||
|
||||
protected:
|
||||
|
||||
|
@ -90,10 +91,6 @@ protected:
|
|||
|
||||
// TODO add weights, tangents etc. pp.
|
||||
|
||||
private:
|
||||
|
||||
void compute_bounds();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ void mesh::compute_normals()
|
|||
vertex3array_t normals; normals.resize(_vertices.size());
|
||||
|
||||
// for indexed-faceset
|
||||
for (auto i = 1; i < _indices.size()-1;i++)
|
||||
for (size_t i = 1; i < _indices.size()-1;i++)
|
||||
{
|
||||
// left index and right index
|
||||
auto il = (i - 1 + _indices.size()) % _indices.size();
|
||||
|
@ -26,13 +26,12 @@ void mesh::compute_normals()
|
|||
auto li = _indices[il];
|
||||
auto ri = _indices[ir];
|
||||
|
||||
// calculate delta vectors
|
||||
auto dL = vector3( _vertices[li] - _vertices[ci] );
|
||||
auto dR = vector3( _vertices[ri] - _vertices[ci] );
|
||||
// calculate edges between vertices
|
||||
auto edgeLeft = vector3( _vertices[li] - _vertices[ci] );
|
||||
auto edgeRight = vector3( _vertices[ri] - _vertices[ci] );
|
||||
|
||||
auto N = dR.cross(dL).normalized();
|
||||
|
||||
//auto dV = _vertices[idx0].cross(_vertices[idx1]);
|
||||
// calculate counter clockwise and normalize
|
||||
auto N = edgeRight.cross(edgeLeft).normalized();
|
||||
|
||||
// NOTE that addition is ugly
|
||||
normals[ci] = N + normals[ci];
|
||||
|
|
|
@ -24,7 +24,7 @@ target_include_directories(pixwerx
|
|||
)
|
||||
|
||||
target_link_libraries(pixwerx
|
||||
pwscripting
|
||||
pwbinding
|
||||
# -Wl,--whole-archive -lpwscripting -Wl,--no-whole-archive
|
||||
pwcore
|
||||
pwsystem)
|
||||
|
|
|
@ -39,11 +39,11 @@ public:
|
|||
void set_visible(bool is_visible);
|
||||
protected:
|
||||
|
||||
on_update_t _on_update;
|
||||
|
||||
struct impl;
|
||||
std::unique_ptr<impl> _impl;
|
||||
|
||||
on_update_t _on_update;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -84,9 +84,10 @@ std::string path::executable_path() const
|
|||
return result;
|
||||
}
|
||||
|
||||
std::string path::find_file(const std::string& filename) const
|
||||
std::string path::find_file(const std::string&) const
|
||||
{
|
||||
// for ()
|
||||
// TODO: Implement
|
||||
return std::string();
|
||||
}
|
||||
|
||||
path::path()
|
||||
|
|
|
@ -48,6 +48,11 @@ struct window::impl {
|
|||
|
||||
// window_context _context;
|
||||
|
||||
static void error_callback(int error, const char* description)
|
||||
{
|
||||
debug::e() << "GLFW error: " << description;
|
||||
}
|
||||
|
||||
static void drop_callback(GLFWwindow* window, int count, const char** paths)
|
||||
{
|
||||
// std::cout << __FUNCTION__ << std::endl;
|
||||
|
@ -73,6 +78,7 @@ struct window::impl {
|
|||
input::get()._mouse_position = pointd(xpos,ypos).cast<float>();
|
||||
}
|
||||
|
||||
|
||||
static void key_callback(GLFWwindow *window,int key, int scancode, int action, int mods)
|
||||
{
|
||||
input::get()._key_code = scancode;
|
||||
|
@ -137,7 +143,10 @@ struct window::impl {
|
|||
: _parent(w)
|
||||
{
|
||||
// initialize
|
||||
glfwInit();
|
||||
if (!glfwInit())
|
||||
{
|
||||
debug::e() << "Initalization error";
|
||||
}
|
||||
|
||||
update_display_list();
|
||||
|
||||
|
@ -148,7 +157,7 @@ struct window::impl {
|
|||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
|
||||
//
|
||||
_window = glfwCreateWindow(640, 480, "pixwerxs", nullptr, nullptr);
|
||||
_window = glfwCreateWindow(640, 480, "pixwerx", nullptr, nullptr);
|
||||
|
||||
// make window current
|
||||
glfwMakeContextCurrent(_window);
|
||||
|
@ -182,6 +191,9 @@ struct window::impl {
|
|||
glfwSetMouseButtonCallback(_window, mouse_button_callback);
|
||||
glfwSetScrollCallback(_window, scroll_callback);
|
||||
|
||||
|
||||
glfwSetErrorCallback(error_callback);
|
||||
|
||||
//glfwSetWindowCloseCallback(_window,close_callback);
|
||||
}
|
||||
|
||||
|
@ -192,24 +204,23 @@ struct window::impl {
|
|||
|
||||
bool update()
|
||||
{
|
||||
if (!glfwWindowShouldClose(_window)) {
|
||||
if (_window && !glfwWindowShouldClose(_window))
|
||||
{
|
||||
|
||||
|
||||
// reset input
|
||||
input::get().reset();
|
||||
|
||||
// get new events
|
||||
glfwPollEvents();
|
||||
// // reset input
|
||||
// input::get().reset();
|
||||
|
||||
_parent._on_update(_parent);
|
||||
|
||||
glfwSwapBuffers(_window);
|
||||
|
||||
// // get new events
|
||||
glfwPollEvents();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
void set_title(const std::string& title)
|
||||
|
@ -290,8 +301,6 @@ struct window::impl {
|
|||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
window::window()
|
||||
: _impl(std::make_unique<window::impl>(*this))
|
||||
, _on_update([](window&){})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue