Merge branch 'master' into physics3d-material

This commit is contained in:
Lynix
2018-01-17 18:25:57 +01:00
410 changed files with 544 additions and 492 deletions

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_SNDFILE_HPP
#define NAZARA_LOADERS_SNDFILE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -42,7 +42,7 @@
#ifndef NAZARA_HASH_SHA2_INTERNAL_HPP
#define NAZARA_HASH_SHA2_INTERNAL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
/* Digest lengths for SHA-1/224/256/384/512 */
#define SHA1_DIGEST_LENGTH 20

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_CLOCKIMPL_POSIX_HPP
#define NAZARA_CLOCKIMPL_POSIX_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -9,7 +9,7 @@
#ifndef NAZARA_CONDITIONVARIABLEIMPL_HPP
#define NAZARA_CONDITIONVARIABLEIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <pthread.h>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_DIRECTORYIMPL_HPP
#define NAZARA_DIRECTORYIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <dirent.h>
namespace Nz

View File

@@ -11,7 +11,7 @@
#define _LARGEFILE64_SOURCE
#endif
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/Enums.hpp>
#include <ctime>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_HARDWAREINFOIMPL_POSIX_HPP
#define NAZARA_HARDWAREINFOIMPL_POSIX_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_SEMAPHOREIMPL_HPP
#define NAZARA_SEMAPHOREIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <semaphore.h>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_TASKSCHEDULERIMPL_HPP
#define NAZARA_TASKSCHEDULERIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <atomic>
#include <memory>
#include <pthread.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_THREADIMPL_HPP
#define NAZARA_THREADIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#if defined(__GNUC__) && !defined(_GNU_SOURCE)
#define _GNU_SOURCE

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_CLOCKIMPL_WINDOWS_HPP
#define NAZARA_CLOCKIMPL_WINDOWS_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -9,7 +9,7 @@
#ifndef NAZARA_CONDITIONVARIABLEIMPL_HPP
#define NAZARA_CONDITIONVARIABLEIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <atomic>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_DIRECTORYIMPL_HPP
#define NAZARA_DIRECTORYIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <windows.h>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_DYNLIBIMPL_HPP
#define NAZARA_DYNLIBIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/DynLib.hpp>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_FILEIMPL_HPP
#define NAZARA_FILEIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/File.hpp>
#include <ctime>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_HARDWAREINFOIMPL_WINDOWS_HPP
#define NAZARA_HARDWAREINFOIMPL_WINDOWS_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_MUTEXIMPL_HPP
#define NAZARA_MUTEXIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <windows.h>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_SEMAPHOREIMPL_HPP
#define NAZARA_SEMAPHOREIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <windows.h>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_TASKSCHEDULERIMPL_HPP
#define NAZARA_TASKSCHEDULERIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/Functor.hpp>
#include <atomic>
#include <memory>

View File

@@ -9,7 +9,7 @@
#ifndef NAZARA_THREADIMPL_HPP
#define NAZARA_THREADIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/String.hpp>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_WINDOWS_TIME_HPP
#define NAZARA_WINDOWS_TIME_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <ctime>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_MESH_HPP
#define NAZARA_LOADERS_MESH_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_TEXTURE_HPP
#define NAZARA_LOADERS_TEXTURE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -20,6 +20,8 @@ namespace Nz
m_geom(),
m_userData(nullptr),
m_world(world),
m_isRegistered(false),
m_isSimulationEnabled(true),
m_isStatic(false),
m_gravityFactor(1.f),
m_mass(mass)
@@ -34,6 +36,8 @@ namespace Nz
m_geom(object.m_geom),
m_userData(object.m_userData),
m_world(object.m_world),
m_isRegistered(false),
m_isSimulationEnabled(true),
m_isStatic(object.m_isStatic),
m_gravityFactor(object.m_gravityFactor),
m_mass(object.GetMass())
@@ -121,6 +125,19 @@ namespace Nz
cpBodySetTorque(m_handle, cpBodyGetTorque(m_handle) + ToRadians(torque));
}
void RigidBody2D::EnableSimulation(bool simulation)
{
if (m_isRegistered != simulation)
{
m_isRegistered = simulation;
if (simulation)
RegisterToSpace();
else
UnregisterFromSpace();
}
}
Rectf RigidBody2D::GetAABB() const
{
if (m_shapes.empty())
@@ -217,6 +234,11 @@ namespace Nz
return m_mass <= 0.f;
}
bool RigidBody2D::IsSimulationEnabled() const
{
return m_isRegistered;
}
bool RigidBody2D::IsSleeping() const
{
return cpBodyIsSleeping(m_handle) != 0;
@@ -244,6 +266,7 @@ namespace Nz
cpBody* newHandle = Create(static_cast<float>(mass), static_cast<float>(moment));
CopyBodyData(m_handle, newHandle);
Destroy();
m_handle = newHandle;
@@ -258,10 +281,10 @@ namespace Nz
cpSpace* space = m_world->GetHandle();
for (cpShape* shape : m_shapes)
{
cpShapeSetUserData(shape, this);
cpSpaceAddShape(space, shape);
}
if (m_isSimulationEnabled)
RegisterToSpace();
if (recomputeMoment)
{
@@ -384,6 +407,7 @@ namespace Nz
OnRigidBody2DRelease = std::move(object.OnRigidBody2DRelease);
m_handle = object.m_handle;
m_isRegistered = object.m_isRegistered;
m_isStatic = object.m_isStatic;
m_geom = std::move(object.m_geom);
m_gravityFactor = object.m_gravityFactor;
@@ -417,28 +441,54 @@ namespace Nz
handle = cpBodyNew(mass, moment);
cpBodySetUserData(handle, this);
cpSpaceAddBody(m_world->GetHandle(), handle);
return handle;
}
void RigidBody2D::Destroy()
{
UnregisterFromSpace();
cpSpace* space = m_world->GetHandle();
for (cpShape* shape : m_shapes)
{
cpSpaceRemoveShape(space, shape);
cpShapeFree(shape);
}
if (m_handle)
{
cpSpaceRemoveBody(space, m_handle);
cpBodyFree(m_handle);
}
m_shapes.clear();
}
void RigidBody2D::RegisterToSpace()
{
if (!m_isRegistered)
{
cpSpace* space = m_world->GetHandle();
for (cpShape* shape : m_shapes)
cpSpaceAddShape(space, shape);
if (m_handle)
cpSpaceAddBody(space, m_handle);
m_isRegistered = true;
}
}
void RigidBody2D::UnregisterFromSpace()
{
if (m_isRegistered)
{
cpSpace* space = m_world->GetHandle();
for (cpShape* shape : m_shapes)
cpSpaceRemoveShape(space, shape);
if (m_handle)
cpSpaceRemoveBody(space, m_handle);
m_isRegistered = false;
}
}
void RigidBody2D::CopyBodyData(cpBody* from, cpBody* to)
{
cpBodySetAngle(to, cpBodyGetAngle(from));

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_CURSORIMPL_HPP
#define NAZARA_CURSORIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Platform/Enums.hpp>
#include <array>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_ICONIMPL_HPP
#define NAZARA_ICONIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <windows.h>
namespace Nz

View File

@@ -9,7 +9,7 @@
#ifndef NAZARA_WINDOWIMPL_HPP
#define NAZARA_WINDOWIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Core/Thread.hpp>
#include <Nazara/Math/Rect.hpp>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_CURSORIMPL_HPP
#define NAZARA_CURSORIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Platform/Enums.hpp>
#include <xcb/xcb_cursor.h>
#include <array>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_X11DISPLAY_HPP
#define NAZARA_X11DISPLAY_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Platform/Config.hpp>
#include <xcb/xcb.h>
#include <xcb/xcb_ewmh.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_ICONIMPL_HPP
#define NAZARA_ICONIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Platform/X11/ScopedXCB.hpp>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_INPUTIMPL_HPP
#define NAZARA_INPUTIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Platform/Keyboard.hpp>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_SCOPEDXCB_HPP
#define NAZARA_SCOPEDXCB_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <xcb/xcb.h>
#include <xcb/xcb_ewmh.h>
#include <cstdlib>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_VIDEOMODEIMPL_HPP
#define NAZARA_VIDEOMODEIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Platform/VideoMode.hpp>
namespace Nz

View File

@@ -9,7 +9,7 @@
#ifndef NAZARA_WINDOWIMPL_HPP
#define NAZARA_WINDOWIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/Thread.hpp>
#include <Nazara/Math/Vector2.hpp>
#include <Nazara/Platform/Enums.hpp>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_HARDWAREBUFFER_HPP
#define NAZARA_HARDWAREBUFFER_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Renderer/OpenGL.hpp>
#include <Nazara/Utility/AbstractBuffer.hpp>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_CONTEXTIMPL_HPP
#define NAZARA_CONTEXTIMPL_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Renderer/ContextParameters.hpp>
#include <windows.h>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_DDS_CONSTANTS_HPP
#define NAZARA_LOADERS_DDS_CONSTANTS_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/SerializationContext.hpp>
#include <Nazara/Utility/Config.hpp>

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_DDS_HPP
#define NAZARA_LOADERS_DDS_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_FREETYPE_HPP
#define NAZARA_LOADERS_FREETYPE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -5,7 +5,7 @@
#ifndef NAZARA_LOADERS_MD2_CONSTANTS_HPP
#define NAZARA_LOADERS_MD2_CONSTANTS_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Math/Vector3.hpp>
namespace Nz

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_MD2_HPP
#define NAZARA_LOADERS_MD2_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_MD5ANIM_HPP
#define NAZARA_LOADERS_MD5ANIM_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_MD5MESH_HPP
#define NAZARA_LOADERS_MD5MESH_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_OBJ_HPP
#define NAZARA_LOADERS_OBJ_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_FORMATS_OBJSAVER_HPP
#define NAZARA_FORMATS_OBJSAVER_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_LOADERS_PCX_HPP
#define NAZARA_LOADERS_PCX_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_FORMATS_STBLOADER_HPP
#define NAZARA_FORMATS_STBLOADER_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{

View File

@@ -7,7 +7,7 @@
#ifndef NAZARA_FORMATS_STBSAVER_HPP
#define NAZARA_FORMATS_STBSAVER_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Prerequisites.hpp>
namespace Nz
{