Remove box2d submodule but keep source
This commit is contained in:
parent
b5e7121cd4
commit
35e446f65d
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
||||
[submodule "Remake"]
|
||||
path = Remake
|
||||
url = https://dock-it.dev/GigabiteStudios/Remake.git
|
||||
[submodule "src/vendor/box2d"]
|
||||
path = src/vendor/box2d
|
||||
url = https://github.com/erincatto/box2d.git
|
||||
|
@ -1,13 +1,11 @@
|
||||
# 🔧 Remake Build Configuration
|
||||
# Remake Build Configuration
|
||||
|
||||
# Source folders to recursively find .c/.cpp files
|
||||
src_dirs:
|
||||
- src/src
|
||||
- src/vendor
|
||||
- src/include/lua
|
||||
- src/vendor/box2d
|
||||
|
||||
|
||||
- src/vendor/box2d/src # <- actual Box2D sources if you're compiling them
|
||||
|
||||
# Include directories (-I)
|
||||
include_dirs:
|
||||
@ -15,7 +13,7 @@ include_dirs:
|
||||
- src/include/lua
|
||||
- src/vendor
|
||||
- src/vendor/imgui
|
||||
- src/vendor/box2d/
|
||||
- src/vendor/box2d/include # ✅ correct Box2D C++ API include path
|
||||
|
||||
- C:/msys64/mingw64/include
|
||||
|
||||
|
@ -1,77 +1,8 @@
|
||||
[ERROR] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d/ -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\PhysicsComponent.cpp -o src\build\Components\PhysicsComponent.o
|
||||
cc1plus.exe: warning: C:\msys64\mingw64\lib\libyaml-cpp.a: not a directory
|
||||
In file included from C:/msys64/mingw64/include/yaml-cpp/parser.h:13,
|
||||
from C:/msys64/mingw64/include/yaml-cpp/yaml.h:10,
|
||||
from src\src\Components\Component.h:5,
|
||||
from src\src\Components\PhysicsComponent.h:2,
|
||||
from src\src\Components\PhysicsComponent.cpp:1:
|
||||
C:/msys64/mingw64/include/yaml-cpp/dll.h:22:65: note: '#pragma message: Defining YAML_CPP_API for DLL import'
|
||||
22 | # pragma message( "Defining YAML_CPP_API for DLL import" )
|
||||
| ^
|
||||
src\src\Components\PhysicsComponent.h:13:21: error: 'b2World' has not been declared
|
||||
13 | void CreateBody(b2World* world, const glm::vec2& position);
|
||||
| ^~~~~~~
|
||||
src\src\Components\PhysicsComponent.h:29:5: error: 'b2Body' does not name a type; did you mean 'b2BodyId'?
|
||||
29 | b2Body* body = nullptr;
|
||||
| ^~~~~~
|
||||
| b2BodyId
|
||||
src\src\Components\PhysicsComponent.h:30:5: error: 'b2World' does not name a type; did you mean 'b2WorldId'?
|
||||
30 | b2World* world = nullptr;
|
||||
| ^~~~~~~
|
||||
| b2WorldId
|
||||
src\src\Components\PhysicsComponent.h:26:10: error: 'void PhysicsComponent::OnImGuiInspector()' marked 'override', but does not override
|
||||
26 | void OnImGuiInspector() override;
|
||||
| ^~~~~~~~~~~~~~~~
|
||||
src\src\Components\PhysicsComponent.cpp:12:6: error: variable or field 'CreateBody' declared void
|
||||
12 | void PhysicsComponent::CreateBody(b2World* world, const glm::vec2& position) {
|
||||
| ^~~~~~~~~~~~~~~~
|
||||
src\src\Components\PhysicsComponent.cpp:12:35: error: 'b2World' was not declared in this scope; did you mean 'b2WorldId'?
|
||||
12 | void PhysicsComponent::CreateBody(b2World* world, const glm::vec2& position) {
|
||||
| ^~~~~~~
|
||||
| b2WorldId
|
||||
src\src\Components\PhysicsComponent.cpp:12:44: error: 'world' was not declared in this scope
|
||||
12 | void PhysicsComponent::CreateBody(b2World* world, const glm::vec2& position) {
|
||||
| ^~~~~
|
||||
src\src\Components\PhysicsComponent.cpp:12:51: error: expected primary-expression before 'const'
|
||||
12 | void PhysicsComponent::CreateBody(b2World* world, const glm::vec2& position) {
|
||||
| ^~~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::DestroyBody()':
|
||||
src\src\Components\PhysicsComponent.cpp:39:9: error: 'body' was not declared in this scope
|
||||
39 | if (body && world) {
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp:39:17: error: 'world' was not declared in this scope
|
||||
39 | if (body && world) {
|
||||
| ^~~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::SetVelocity(const glm::vec2&)':
|
||||
src\src\Components\PhysicsComponent.cpp:46:9: error: 'body' was not declared in this scope
|
||||
46 | if (body) body->SetLinearVelocity(b2Vec2(vel.x, vel.y));
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'glm::vec2 PhysicsComponent::GetVelocity() const':
|
||||
src\src\Components\PhysicsComponent.cpp:50:9: error: 'body' was not declared in this scope
|
||||
50 | if (body) {
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::SetFriction(float)':
|
||||
src\src\Components\PhysicsComponent.cpp:59:9: error: 'body' was not declared in this scope
|
||||
59 | if (body && body->GetFixtureList())
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::SetFixedRotation(bool)':
|
||||
src\src\Components\PhysicsComponent.cpp:70:9: error: 'body' was not declared in this scope
|
||||
70 | if (body)
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::SyncFromPhysics()':
|
||||
src\src\Components\PhysicsComponent.cpp:75:9: error: 'body' was not declared in this scope
|
||||
75 | if (body) {
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp:77:9: error: 'object' was not declared in this scope; did you mean 'Object'?
|
||||
77 | object->SetLocalPosition({ pos.x, pos.y });
|
||||
| ^~~~~~
|
||||
| Object
|
||||
src\src\Components\PhysicsComponent.cpp: In member function 'void PhysicsComponent::SyncToPhysics()':
|
||||
src\src\Components\PhysicsComponent.cpp:82:9: error: 'body' was not declared in this scope
|
||||
82 | if (body) {
|
||||
| ^~~~
|
||||
src\src\Components\PhysicsComponent.cpp:83:25: error: 'object' was not declared in this scope; did you mean 'Object'?
|
||||
83 | glm::vec2 pos = object->GetLocalPosition();
|
||||
| ^~~~~~
|
||||
| Object
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d/include -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\PhysicsComponent.cpp -o src\build\Components\PhysicsComponent.o
|
||||
[ERROR] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d/include -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\benchmark\main.c -o src\build\box2d\benchmark\main.o
|
||||
cc1.exe: warning: C:\msys64\mingw64\lib\libyaml-cpp.a: not a directory
|
||||
src\vendor\box2d\benchmark\main.c:8:10: fatal error: TaskScheduler_c.h: No such file or directory
|
||||
8 | #include "TaskScheduler_c.h"
|
||||
| ^~~~~~~~~~~~~~~~~~~
|
||||
compilation terminated.
|
||||
|
||||
|
@ -1,100 +0,0 @@
|
||||
#include "PhysicsComponent.h"
|
||||
#include "../Entitys/Object.h"
|
||||
#include "imgui.h"
|
||||
|
||||
PhysicsComponent::PhysicsComponent(Object* owner, BodyType type, float width, float height)
|
||||
: Component(owner), type(type), width(width), height(height) {}
|
||||
|
||||
PhysicsComponent::~PhysicsComponent() {
|
||||
DestroyBody();
|
||||
}
|
||||
|
||||
void PhysicsComponent::CreateBody(b2World* world, const glm::vec2& position) {
|
||||
this->world = world;
|
||||
b2BodyDef def;
|
||||
|
||||
switch (type) {
|
||||
case BodyType::Static: def.type = b2_staticBody; break;
|
||||
case BodyType::Dynamic: def.type = b2_dynamicBody; break;
|
||||
case BodyType::Kinematic: def.type = b2_kinematicBody; break;
|
||||
}
|
||||
|
||||
def.position.Set(position.x, position.y);
|
||||
def.fixedRotation = fixedRotation;
|
||||
|
||||
body = world->CreateBody(&def);
|
||||
|
||||
b2PolygonShape box;
|
||||
box.SetAsBox(width * 0.5f, height * 0.5f);
|
||||
|
||||
b2FixtureDef fixtureDef;
|
||||
fixtureDef.shape = &box;
|
||||
fixtureDef.density = density;
|
||||
fixtureDef.friction = friction;
|
||||
|
||||
body->CreateFixture(&fixtureDef);
|
||||
}
|
||||
|
||||
void PhysicsComponent::DestroyBody() {
|
||||
if (body && world) {
|
||||
world->DestroyBody(body);
|
||||
body = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void PhysicsComponent::SetVelocity(const glm::vec2& vel) {
|
||||
if (body) body->SetLinearVelocity(b2Vec2(vel.x, vel.y));
|
||||
}
|
||||
|
||||
glm::vec2 PhysicsComponent::GetVelocity() const {
|
||||
if (body) {
|
||||
b2Vec2 v = body->GetLinearVelocity();
|
||||
return { v.x, v.y };
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
void PhysicsComponent::SetFriction(float f) {
|
||||
friction = f;
|
||||
if (body && body->GetFixtureList())
|
||||
body->GetFixtureList()->SetFriction(f);
|
||||
}
|
||||
|
||||
void PhysicsComponent::SetDensity(float d) {
|
||||
density = d;
|
||||
// Requires refixture to apply
|
||||
}
|
||||
|
||||
void PhysicsComponent::SetFixedRotation(bool fixed) {
|
||||
fixedRotation = fixed;
|
||||
if (body)
|
||||
body->SetFixedRotation(fixed);
|
||||
}
|
||||
|
||||
void PhysicsComponent::SyncFromPhysics() {
|
||||
if (body) {
|
||||
b2Vec2 pos = body->GetPosition();
|
||||
object->SetLocalPosition({ pos.x, pos.y });
|
||||
}
|
||||
}
|
||||
|
||||
void PhysicsComponent::SyncToPhysics() {
|
||||
if (body) {
|
||||
glm::vec2 pos = object->GetLocalPosition();
|
||||
body->SetTransform({ pos.x, pos.y }, body->GetAngle());
|
||||
}
|
||||
}
|
||||
|
||||
void PhysicsComponent::OnImGuiInspector() {
|
||||
ImGui::Text("Physics Component");
|
||||
|
||||
glm::vec2 vel = GetVelocity();
|
||||
if (ImGui::DragFloat2("Velocity", &vel.x))
|
||||
SetVelocity(vel);
|
||||
|
||||
if (ImGui::DragFloat("Friction", &friction, 0.01f, 0.0f, 1.0f))
|
||||
SetFriction(friction);
|
||||
|
||||
if (ImGui::Checkbox("Fixed Rotation", &fixedRotation))
|
||||
SetFixedRotation(fixedRotation);
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
#pragma once
|
||||
#include "Component.h"
|
||||
#include <box2d.h>
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
class PhysicsComponent : public Component {
|
||||
public:
|
||||
enum class BodyType { Static, Dynamic, Kinematic };
|
||||
|
||||
PhysicsComponent(Object* owner, BodyType type = BodyType::Dynamic, float width = 1.0f, float height = 1.0f);
|
||||
~PhysicsComponent();
|
||||
|
||||
void CreateBody(b2World* world, const glm::vec2& position);
|
||||
void DestroyBody();
|
||||
|
||||
void SetVelocity(const glm::vec2& vel);
|
||||
glm::vec2 GetVelocity() const;
|
||||
|
||||
void SetFriction(float friction);
|
||||
void SetDensity(float density);
|
||||
void SetFixedRotation(bool fixed);
|
||||
|
||||
void SyncFromPhysics();
|
||||
void SyncToPhysics();
|
||||
|
||||
void OnImGuiInspector() override;
|
||||
|
||||
private:
|
||||
b2Body* body = nullptr;
|
||||
b2World* world = nullptr;
|
||||
BodyType type;
|
||||
float width, height;
|
||||
float friction = 0.3f;
|
||||
float density = 1.0f;
|
||||
bool fixedRotation = false;
|
||||
};
|
Loading…
Reference in New Issue
Block a user