fix studio staying open on Windows machines after close
This commit is contained in:
parent
2f34afd1ae
commit
7f58689d82
|
|
@ -39,4 +39,6 @@ int main(int argc, char** argv)
|
||||||
window.ogreWidget->render();
|
window.ogreWidget->render();
|
||||||
world->update();
|
world->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.exit();
|
||||||
}
|
}
|
||||||
|
|
@ -29,6 +29,7 @@ add_library(Engine STATIC
|
||||||
Header/App/V8/World/World.hpp
|
Header/App/V8/World/World.hpp
|
||||||
Header/App/V8/World/Weld.hpp
|
Header/App/V8/World/Weld.hpp
|
||||||
Header/App/V8/World/JointsService.hpp
|
Header/App/V8/World/JointsService.hpp
|
||||||
|
Header/App/V8/World/JointInstance.hpp
|
||||||
Header/App/V8/World/ComPlicitNgine.hpp
|
Header/App/V8/World/ComPlicitNgine.hpp
|
||||||
Header/App/CoordinateFrame.hpp
|
Header/App/CoordinateFrame.hpp
|
||||||
Header/App/BrickColor.hpp
|
Header/App/BrickColor.hpp
|
||||||
|
|
@ -69,6 +70,7 @@ add_library(Engine STATIC
|
||||||
Source/App/V8/World/World.cpp
|
Source/App/V8/World/World.cpp
|
||||||
Source/App/V8/World/Weld.cpp
|
Source/App/V8/World/Weld.cpp
|
||||||
Source/App/V8/World/JointsService.cpp
|
Source/App/V8/World/JointsService.cpp
|
||||||
|
Source/App/V8/World/JointInstance.cpp
|
||||||
Source/App/V8/World/ComPlicitNgine.cpp
|
Source/App/V8/World/ComPlicitNgine.cpp
|
||||||
Source/Network/GUID.cpp
|
Source/Network/GUID.cpp
|
||||||
Source/Network/Player.cpp
|
Source/Network/Player.cpp
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
#pragma once
|
||||||
|
#include <App/V8/Tree/Instance.hpp>
|
||||||
|
#include <App/V8/DataModel/PartInstance.hpp>
|
||||||
|
#include <App/V8/World/ComPlicitNgine.hpp>
|
||||||
|
|
||||||
|
namespace RNR
|
||||||
|
{
|
||||||
|
class JointInstance : public Instance
|
||||||
|
{
|
||||||
|
PartInstance *m_aInstance, *m_bInstance;
|
||||||
|
btRigidBody *m_aBody, *m_bBody;
|
||||||
|
CoordinateFrame m_c0, m_c1;
|
||||||
|
virtual void addProperties(std::vector<ReflectionProperty>& properties);
|
||||||
|
virtual void deserializeProperty(char* prop_name, pugi::xml_node prop);
|
||||||
|
public:
|
||||||
|
JointInstance();
|
||||||
|
|
||||||
|
void setBodies(PartInstance* a, PartInstance* b);
|
||||||
|
|
||||||
|
PartInstance* getABody() { return m_aInstance; }
|
||||||
|
void setABody(PartInstance* a) { m_aInstance = a; }
|
||||||
|
PartInstance* getBBody() { return m_bInstance; }
|
||||||
|
void setBBody(PartInstance* b) { m_bInstance = b; }
|
||||||
|
|
||||||
|
CoordinateFrame& getC0() { return m_c0; }
|
||||||
|
void setC0(CoordinateFrame c) { m_c0 = c; }
|
||||||
|
CoordinateFrame& getC1() { return m_c1; }
|
||||||
|
void setC1(CoordinateFrame c) { m_c1 = c; }
|
||||||
|
|
||||||
|
|
||||||
|
void link();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -2,10 +2,11 @@
|
||||||
#include <App/V8/Tree/Instance.hpp>
|
#include <App/V8/Tree/Instance.hpp>
|
||||||
#include <App/V8/DataModel/PartInstance.hpp>
|
#include <App/V8/DataModel/PartInstance.hpp>
|
||||||
#include <App/V8/World/ComPlicitNgine.hpp>
|
#include <App/V8/World/ComPlicitNgine.hpp>
|
||||||
|
#include <App/V8/World/JointInstance.hpp>
|
||||||
|
|
||||||
namespace RNR
|
namespace RNR
|
||||||
{
|
{
|
||||||
class Weld : public Instance
|
class Weld : public JointInstance
|
||||||
{
|
{
|
||||||
btRigidBody* m_aBody;
|
btRigidBody* m_aBody;
|
||||||
PartInstance* m_aInstance;
|
PartInstance* m_aInstance;
|
||||||
|
|
@ -14,9 +15,6 @@ namespace RNR
|
||||||
PartInstance* m_bInstance;
|
PartInstance* m_bInstance;
|
||||||
|
|
||||||
btFixedConstraint* m_constraint;
|
btFixedConstraint* m_constraint;
|
||||||
|
|
||||||
virtual void addProperties(std::vector<ReflectionProperty>& properties);
|
|
||||||
virtual void deserializeProperty(char* prop_name, pugi::xml_node prop);
|
|
||||||
public:
|
public:
|
||||||
Weld();
|
Weld();
|
||||||
~Weld();
|
~Weld();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
#include <App/V8/World/JointInstance.hpp>
|
||||||
|
#include <App/V8/World/World.hpp>
|
||||||
|
|
||||||
|
namespace RNR
|
||||||
|
{
|
||||||
|
JointInstance::JointInstance()
|
||||||
|
{
|
||||||
|
setName("Joint");
|
||||||
|
}
|
||||||
|
|
||||||
|
void JointInstance::setBodies(PartInstance* a, PartInstance* b)
|
||||||
|
{
|
||||||
|
m_aInstance = a;
|
||||||
|
m_bInstance = b;
|
||||||
|
|
||||||
|
m_aBody = world->getComPlicitNgine()->getBody(a);
|
||||||
|
m_bBody = world->getComPlicitNgine()->getBody(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void JointInstance::addProperties(std::vector<ReflectionProperty>& properties)
|
||||||
|
{
|
||||||
|
ReflectionProperty _properties[] = {
|
||||||
|
{ this, std::string("Part0"), std::string(""),
|
||||||
|
ACCESS_NONE, OPERATION_READWRITE, PROPERTY_INSTANCE,
|
||||||
|
REFLECTION_GETTER(JointInstance* instance = (JointInstance*)object; return instance->m_aInstance; ),
|
||||||
|
REFLECTION_SETTER(JointInstance* instance = (JointInstance*)object; ) },
|
||||||
|
{ this, std::string("Part1"), std::string(""),
|
||||||
|
ACCESS_NONE, OPERATION_READWRITE, PROPERTY_INSTANCE,
|
||||||
|
REFLECTION_GETTER(JointInstance* instance = (JointInstance*)object; return instance->m_bInstance; ),
|
||||||
|
REFLECTION_SETTER(JointInstance* instance = (JointInstance*)object; ) },
|
||||||
|
};
|
||||||
|
|
||||||
|
properties.insert(properties.end(), _properties, _properties+(sizeof(_properties)/sizeof(ReflectionProperty)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void JointInstance::deserializeProperty(char* prop_name, pugi::xml_node prop)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
namespace RNR
|
namespace RNR
|
||||||
{
|
{
|
||||||
Weld::Weld()
|
Weld::Weld() : JointInstance()
|
||||||
{
|
{
|
||||||
setName("Weld");
|
setName("Weld");
|
||||||
}
|
}
|
||||||
|
|
@ -13,15 +13,6 @@ namespace RNR
|
||||||
destroy();
|
destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Weld::weld(PartInstance* a, PartInstance* b)
|
|
||||||
{
|
|
||||||
m_aInstance = a;
|
|
||||||
m_bInstance = b;
|
|
||||||
|
|
||||||
m_aBody = world->getComPlicitNgine()->getBody(a);
|
|
||||||
m_bBody = world->getComPlicitNgine()->getBody(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Weld::create()
|
bool Weld::create()
|
||||||
{
|
{
|
||||||
if(!m_aBody || !m_bBody)
|
if(!m_aBody || !m_bBody)
|
||||||
|
|
@ -51,25 +42,4 @@ namespace RNR
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Weld::addProperties(std::vector<ReflectionProperty>& properties)
|
|
||||||
{
|
|
||||||
ReflectionProperty _properties[] = {
|
|
||||||
{ this, std::string("Part0"), std::string(""),
|
|
||||||
ACCESS_NONE, OPERATION_READWRITE, PROPERTY_INSTANCE,
|
|
||||||
REFLECTION_GETTER(Weld* instance = (Weld*)object; return instance->m_aInstance; ),
|
|
||||||
REFLECTION_SETTER(Weld* instance = (Weld*)object; ) },
|
|
||||||
{ this, std::string("Part1"), std::string(""),
|
|
||||||
ACCESS_NONE, OPERATION_READWRITE, PROPERTY_INSTANCE,
|
|
||||||
REFLECTION_GETTER(Weld* instance = (Weld*)object; return instance->m_bInstance; ),
|
|
||||||
REFLECTION_SETTER(Weld* instance = (Weld*)object; ) },
|
|
||||||
};
|
|
||||||
|
|
||||||
properties.insert(properties.end(), _properties, _properties+(sizeof(_properties)/sizeof(ReflectionProperty)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Weld::deserializeProperty(char* prop_name, pugi::xml_node prop)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue