Camera Collision fix. Still have some minor bugs #345
|
@ -1,4 +1,4 @@
|
||||||
Start in Fullscreen: false
|
Start in Fullscreen: false
|
||||||
Starting Scene ID: 97086054
|
Starting Scene ID: 86098106
|
||||||
Window Size: {x: 1920, y: 1080}
|
Window Size: {x: 1920, y: 1080}
|
||||||
Window Title: SHADE Engine
|
Window Title: SHADE Engine
|
|
@ -1,10 +1,10 @@
|
||||||
0 StaticObject 1100000000000000
|
0 StaticObject 1110000000000000
|
||||||
1 Player 1100000000000000
|
1 Player 1100000000000000
|
||||||
2 Food 1000000000000000
|
2 Food 1000000000000000
|
||||||
3 Breakable 1100000000000000
|
3 Breakable 1100000000000000
|
||||||
4 ScoringWallCollider 0100000000000000
|
4 ScoringWallCollider 0100000000000000
|
||||||
5 Homeowner 1100000000000000
|
5 Homeowner 1100000000000000
|
||||||
6 Camera 1100000000000000
|
6 Camera 0010000000000000
|
||||||
7 8 0000000000000000
|
7 8 0000000000000000
|
||||||
8 9 0000000000000000
|
8 9 0000000000000000
|
||||||
9 10 0000000000000000
|
9 10 0000000000000000
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Start Maximized: true
|
Start Maximized: true
|
||||||
Working Scene ID: 91685359
|
Working Scene ID: 86098106
|
||||||
Window Size: {x: 1920, y: 1013}
|
Window Size: {x: 1920, y: 1013}
|
||||||
Style: 0
|
Style: 0
|
|
@ -0,0 +1,167 @@
|
||||||
|
[Window][MainStatusBar]
|
||||||
|
Pos=0,989
|
||||||
|
Size=2560,20
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][SHEditorMenuBar]
|
||||||
|
Pos=0,48
|
||||||
|
Size=2560,941
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Hierarchy Panel]
|
||||||
|
Pos=0,187
|
||||||
|
Size=300,802
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000004,0
|
||||||
|
|
||||||
|
[Window][Debug##Default]
|
||||||
|
Pos=60,60
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Inspector]
|
||||||
|
Pos=2074,48
|
||||||
|
Size=486,941
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000006,0
|
||||||
|
|
||||||
|
[Window][Profiler]
|
||||||
|
Pos=0,48
|
||||||
|
Size=300,137
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000003,0
|
||||||
|
|
||||||
|
[Window][Viewport]
|
||||||
|
Pos=227,48
|
||||||
|
Size=1457,1012
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000B,0
|
||||||
|
|
||||||
|
[Window][ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌð‡Žoû]
|
||||||
|
Pos=60,60
|
||||||
|
Size=32,64
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ]
|
||||||
|
Pos=60,60
|
||||||
|
Size=999,581
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][ð‡–oû]
|
||||||
|
Pos=60,60
|
||||||
|
Size=32,64
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][ÌÌÌÌ]
|
||||||
|
Pos=60,60
|
||||||
|
Size=553,422
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][]
|
||||||
|
Pos=60,60
|
||||||
|
Size=770,394
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][ Viewport]
|
||||||
|
Pos=227,48
|
||||||
|
Size=1457,1012
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000B,0
|
||||||
|
|
||||||
|
[Window][ Viewport]
|
||||||
|
Pos=227,48
|
||||||
|
Size=1457,1012
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000B,0
|
||||||
|
|
||||||
|
[Window][î<>‹ Viewport]
|
||||||
|
Pos=302,48
|
||||||
|
Size=1770,705
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000B,0
|
||||||
|
|
||||||
|
[Window][V]
|
||||||
|
Pos=310,722
|
||||||
|
Size=1501,338
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000008,0
|
||||||
|
|
||||||
|
[Window][p›£€Ê]
|
||||||
|
Pos=310,750
|
||||||
|
Size=1501,310
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000A,0
|
||||||
|
|
||||||
|
[Window][ Asset Browser]
|
||||||
|
Pos=302,755
|
||||||
|
Size=1770,234
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000C,0
|
||||||
|
|
||||||
|
[Window][Material Inspector]
|
||||||
|
Pos=2074,48
|
||||||
|
Size=486,941
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000006,1
|
||||||
|
|
||||||
|
[Window][Save scene as...]
|
||||||
|
Pos=1197,693
|
||||||
|
Size=165,120
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Create New Asset]
|
||||||
|
Pos=896,472
|
||||||
|
Size=464,144
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Collider Tag Panel]
|
||||||
|
Pos=302,48
|
||||||
|
Size=1770,705
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000B,1
|
||||||
|
|
||||||
|
[Window][Input Bindings Panel]
|
||||||
|
Pos=2074,48
|
||||||
|
Size=486,941
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000006,2
|
||||||
|
|
||||||
|
[Window][Save Scene As]
|
||||||
|
Pos=877,444
|
||||||
|
Size=165,120
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Table][0x9D40AE32,17]
|
||||||
|
Column 0 Weight=1.0696
|
||||||
|
Column 1 Weight=0.9194
|
||||||
|
Column 2 Weight=0.9945
|
||||||
|
Column 3 Weight=1.0320
|
||||||
|
Column 4 Weight=0.9570
|
||||||
|
Column 5 Weight=0.9945
|
||||||
|
Column 6 Weight=0.9945
|
||||||
|
Column 7 Weight=0.9945
|
||||||
|
Column 8 Weight=0.9945
|
||||||
|
Column 9 Weight=1.0320
|
||||||
|
Column 10 Weight=0.9570
|
||||||
|
Column 11 Weight=1.0133
|
||||||
|
Column 12 Weight=0.9945
|
||||||
|
Column 13 Weight=0.8444
|
||||||
|
Column 14 Weight=0.9945
|
||||||
|
Column 15 Weight=0.8632
|
||||||
|
Column 16 Weight=1.3510
|
||||||
|
|
||||||
|
[Docking][Data]
|
||||||
|
DockSpace ID=0xC5C9B8AB Window=0xBE4044E9 Pos=0,71 Size=2560,941 Split=X
|
||||||
|
DockNode ID=0x00000005 Parent=0xC5C9B8AB SizeRef=1432,1036 Split=X
|
||||||
|
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=300,1036 Split=Y Selected=0x1E6EB881
|
||||||
|
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=225,147 Selected=0x1E6EB881
|
||||||
|
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=225,863 Selected=0xE096E5AE
|
||||||
|
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1130,1036 Split=Y Selected=0xB41284E7
|
||||||
|
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=1501,672 Split=Y Selected=0xB41284E7
|
||||||
|
DockNode ID=0x00000009 Parent=0x00000007 SizeRef=1501,700 Split=Y Selected=0xB41284E7
|
||||||
|
DockNode ID=0x0000000B Parent=0x00000009 SizeRef=1501,705 CentralNode=1 Selected=0xB41284E7
|
||||||
|
DockNode ID=0x0000000C Parent=0x00000009 SizeRef=1501,234 Selected=0xB128252A
|
||||||
|
DockNode ID=0x0000000A Parent=0x00000007 SizeRef=1501,310 Selected=0xD446F7B6
|
||||||
|
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=1501,338 Selected=0xD9F31532
|
||||||
|
DockNode ID=0x00000006 Parent=0xC5C9B8AB SizeRef=486,1036 Selected=0xE7039252
|
||||||
|
|
|
@ -8994,7 +8994,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 2
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.25, y: 0.25, z: 0.100000001}
|
Half Extents: {x: 0.25, y: 0.25, z: 0.100000001}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9041,7 +9041,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 2
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003}
|
Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9088,7 +9088,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 2
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003}
|
Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9135,7 +9135,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 2
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003}
|
Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9182,7 +9182,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 2
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003}
|
Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9281,7 +9281,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 3
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9322,7 +9322,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 3
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9363,7 +9363,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 3
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9404,7 +9404,7 @@
|
||||||
Collider Component:
|
Collider Component:
|
||||||
Colliders:
|
Colliders:
|
||||||
- Is Trigger: false
|
- Is Trigger: false
|
||||||
Collision Tag: 0
|
Collision Tag: 3
|
||||||
Type: Box
|
Type: Box
|
||||||
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007}
|
||||||
Friction: 0.400000006
|
Friction: 0.400000006
|
||||||
|
@ -9627,8 +9627,8 @@
|
||||||
NumberOfChildren: 3
|
NumberOfChildren: 3
|
||||||
Components:
|
Components:
|
||||||
Transform Component:
|
Transform Component:
|
||||||
Translate: {x: 2.12735963, y: 0.362327814, z: 6.98932981}
|
Translate: {x: 2.35245037, y: 0.38365531, z: 7.10571432}
|
||||||
Rotate: {x: 0, y: 0, z: 0}
|
Rotate: {x: -0, y: 0, z: -0}
|
||||||
Scale: {x: 0.999999881, y: 1, z: 0.999999881}
|
Scale: {x: 0.999999881, y: 1, z: 0.999999881}
|
||||||
IsActive: true
|
IsActive: true
|
||||||
Renderable Component:
|
Renderable Component:
|
||||||
|
@ -9681,7 +9681,7 @@
|
||||||
throwForce: [8, 10, 8]
|
throwForce: [8, 10, 8]
|
||||||
cameraArmOffSet: [0, 0.25, 0]
|
cameraArmOffSet: [0, 0.25, 0]
|
||||||
delayTimer: 1
|
delayTimer: 1
|
||||||
aimingLength: 0.5
|
aimingLength: 1
|
||||||
throwItem: false
|
throwItem: false
|
||||||
rayDistance: 0.5
|
rayDistance: 0.5
|
||||||
- EID: 3
|
- EID: 3
|
||||||
|
@ -9701,7 +9701,7 @@
|
||||||
NumberOfChildren: 0
|
NumberOfChildren: 0
|
||||||
Components:
|
Components:
|
||||||
Transform Component:
|
Transform Component:
|
||||||
Translate: {x: 0, y: -2.98023224e-08, z: 4.76837158e-07}
|
Translate: {x: 0, y: -5.96046448e-08, z: 0}
|
||||||
Rotate: {x: 0, y: 6.28318548, z: 2.23517329e-08}
|
Rotate: {x: 0, y: 6.28318548, z: 2.23517329e-08}
|
||||||
Scale: {x: 1, y: 1, z: 1}
|
Scale: {x: 1, y: 1, z: 1}
|
||||||
IsActive: true
|
IsActive: true
|
||||||
|
@ -9719,7 +9719,7 @@
|
||||||
Camera Arm Component:
|
Camera Arm Component:
|
||||||
Arm Pitch: 0
|
Arm Pitch: 0
|
||||||
Arm Yaw: 0
|
Arm Yaw: 0
|
||||||
Arm Length: 1
|
Arm Length: 3
|
||||||
Look At Camera Origin: true
|
Look At Camera Origin: true
|
||||||
Target Offset: {x: 0, y: 0, z: 0}
|
Target Offset: {x: 0, y: 0, z: 0}
|
||||||
Camera Collision: true
|
Camera Collision: true
|
||||||
|
@ -9727,12 +9727,12 @@
|
||||||
Scripts:
|
Scripts:
|
||||||
- Type: SHADE_Scripting.ThirdPersonCamera
|
- Type: SHADE_Scripting.ThirdPersonCamera
|
||||||
Enabled: true
|
Enabled: true
|
||||||
armLength: 1
|
armLength: 3
|
||||||
turnSpeedPitch: 0.300000012
|
turnSpeedPitch: 0.300000012
|
||||||
turnSpeedYaw: 0.5
|
turnSpeedYaw: 0.5
|
||||||
pitchClamp: 45
|
pitchClamp: 45
|
||||||
inverseXControls: true
|
inverseXControls: false
|
||||||
inverseYControls: true
|
inverseYControls: false
|
||||||
- EID: 9
|
- EID: 9
|
||||||
Name: PlayerBag
|
Name: PlayerBag
|
||||||
IsActive: true
|
IsActive: true
|
||||||
|
|
|
@ -142,10 +142,10 @@ namespace SHADE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SHVec3 offset{ 0.0f,0.0f, pivot.GetArmLength() };
|
SHVec3 offset{ 0.0f,0.0f, 1.0f };
|
||||||
offset = SHVec3::RotateX(offset, -(SHMath::DegreesToRadians(pivot.GetPitch())));
|
offset = SHVec3::RotateX(offset, -(SHMath::DegreesToRadians(pivot.GetPitch())));
|
||||||
offset = SHVec3::RotateY(offset, (SHMath::DegreesToRadians(pivot.GetYaw())));
|
offset = SHVec3::RotateY(offset, (SHMath::DegreesToRadians(pivot.GetYaw())));
|
||||||
|
offset = SHVec3::Normalise(offset) * pivot.armLength;
|
||||||
|
|
||||||
//pivot.rtMatrix = SHMatrix::RotateX(SHMath::DegreesToRadians(pivot.GetPitch()))
|
//pivot.rtMatrix = SHMatrix::RotateX(SHMath::DegreesToRadians(pivot.GetPitch()))
|
||||||
// * SHMatrix::RotateY(SHMath::DegreesToRadians(pivot.GetYaw()))
|
// * SHMatrix::RotateY(SHMath::DegreesToRadians(pivot.GetYaw()))
|
||||||
|
@ -165,7 +165,7 @@ namespace SHADE
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
/*if (SHComponentManager::HasComponent<SHTransformComponent>(camera->GetEID()) == true && camera != &editorCamera)
|
if (SHComponentManager::HasComponent<SHTransformComponent>(camera->GetEID()) == true && camera != &editorCamera)
|
||||||
{
|
{
|
||||||
auto transform = SHComponentManager::GetComponent<SHTransformComponent>(camera->GetEID());
|
auto transform = SHComponentManager::GetComponent<SHTransformComponent>(camera->GetEID());
|
||||||
SHVec3 rotation = transform->GetWorldRotation();
|
SHVec3 rotation = transform->GetWorldRotation();
|
||||||
|
@ -174,14 +174,47 @@ namespace SHADE
|
||||||
camera->roll = SHMath::RadiansToDegrees(rotation.z);
|
camera->roll = SHMath::RadiansToDegrees(rotation.z);
|
||||||
camera->position = transform->GetWorldPosition();
|
camera->position = transform->GetWorldPosition();
|
||||||
camera->dirtyView = true;
|
camera->dirtyView = true;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
pivot.ray.position = camera->GetPosition() + pivot.targetOffset;
|
|
||||||
pivot.ray.direction = SHVec3::Normalise((camera->position + offset)- pivot.ray.position);
|
|
||||||
|
|
||||||
//SHLOG_INFO("Ray position: {},{},{} direction:{},{},{}",pivot.ray.position.x, pivot.ray.position.y, pivot.ray.position.z,pivot.ray.direction.x, pivot.ray.direction.y, pivot.ray.direction.z)
|
|
||||||
|
|
||||||
//auto result = physicsSystem->Raycast(pivot.ray);
|
SHVec3 cameraPos = camera->position + pivot.offset;
|
||||||
|
SHVec3 cameraTarget = camera->position;
|
||||||
|
|
||||||
|
//SHLOG_INFO("Ray position: {},{},{} direction:{},{},{}",pivot.ray.position.x, pivot.ray.position.y, pivot.ray.position.z,pivot.ray.direction.x, pivot.ray.direction.y, pivot.ray.direction.z)
|
||||||
|
SHRaycaster::RaycastInfo info;
|
||||||
|
//info.layers = (SHCollisionTagMatrix::GetTag("7")->GetMask());
|
||||||
|
info.layers = (uint16_t)(SHCollisionTagMatrix::GetTag("Camera")->GetMask());
|
||||||
|
info.distance = pivot.armLength;
|
||||||
|
info.continuous = false;
|
||||||
|
info.ray.position = cameraTarget;
|
||||||
|
info.SetColliderID(2);
|
||||||
|
info.ray.direction = SHVec3::Normalise(cameraPos - cameraTarget);
|
||||||
|
auto result = physicsSystem->Raycast(info);
|
||||||
|
for (auto hitResult : result)
|
||||||
|
{
|
||||||
|
if (hitResult.distance < pivot.armLength)
|
||||||
|
{
|
||||||
|
|
||||||
|
SHVec3 newOffset{ 0.0f,0.0f, 1.0f };
|
||||||
|
newOffset = SHVec3::RotateX(newOffset, -(SHMath::DegreesToRadians(pivot.GetPitch())));
|
||||||
|
newOffset = SHVec3::RotateY(newOffset, (SHMath::DegreesToRadians(pivot.GetYaw())));
|
||||||
|
newOffset = SHVec3::Normalise(newOffset) * (hitResult.distance * 0.95f);
|
||||||
|
pivot.offset = newOffset;
|
||||||
|
//cameraPos = camera->position + pivot.offset;
|
||||||
|
//SHLOG_INFO("CAMERA COLLISION HIT, {} armlength: {}, true armlength: {}", hitResult.distance, hitResult.distance, (cameraPos - camera->position).Length());
|
||||||
|
//SHLOG_INFO("Racoon Position {}, {}, {}, Camera Position: {}, {}, {}, Distance {}", cameraTarget.x, cameraTarget.y, cameraTarget.z, cameraPos.x, cameraPos.y, cameraPos.z, SHVec3::Distance(cameraTarget, cameraPos));
|
||||||
|
//SHLOG_INFO("Camera Position: {}, {}, {}", cameraPos.x, cameraPos.y, cameraPos.z);
|
||||||
|
auto otherTransform = SHComponentManager::GetComponent_s<SHTransformComponent>(hitResult.entityHit);
|
||||||
|
SHVec3 otherPos = hitResult.position;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//SHLOG_INFO("hit distance{} other pos: {},{},{}, distance between: {}", hitResult.distance, otherPos.x, otherPos.y, otherPos.z, SHVec3::Distance(cameraTarget,otherPos));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////auto result = physicsSystem->Raycast(pivot.ray);
|
||||||
//if (result && result.distance < pivot.GetArmLength())
|
//if (result && result.distance < pivot.GetArmLength())
|
||||||
//{
|
//{
|
||||||
//
|
//
|
||||||
|
@ -196,8 +229,6 @@ namespace SHADE
|
||||||
// //SHLOG_INFO("CAMERA COLLISION CANT HIT CAMERA");
|
// //SHLOG_INFO("CAMERA COLLISION CANT HIT CAMERA");
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
// pivot.rtMatrix = SHMatrix::Inverse(pivot.rtMatrix);
|
// pivot.rtMatrix = SHMatrix::Inverse(pivot.rtMatrix);
|
||||||
|
|
||||||
|
@ -234,7 +265,8 @@ namespace SHADE
|
||||||
{
|
{
|
||||||
camera.offset = arm->GetOffset();
|
camera.offset = arm->GetOffset();
|
||||||
if (arm->lookAtCameraOrigin)
|
if (arm->lookAtCameraOrigin)
|
||||||
CameraLookAt(camera, camera.position + arm->GetTargetOffset());
|
CameraLookAt(camera, camera.position);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -418,7 +450,7 @@ namespace SHADE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SHCameraSystem::DecomposeViewMatrix(SHMatrix const& viewMatrix, float& pitch, float& yaw, float& roll, SHVec3& pos) noexcept
|
void SHCameraSystem::DecomposeViewMatrix(SHMatrix const& viewMatrix, float& pitch, float& yaw, float& roll, SHVec3& pos, bool takePos) noexcept
|
||||||
{
|
{
|
||||||
|
|
||||||
float initPitch = pitch;
|
float initPitch = pitch;
|
||||||
|
@ -441,15 +473,18 @@ namespace SHADE
|
||||||
mtx = SHMatrix::Inverse(mtx);
|
mtx = SHMatrix::Inverse(mtx);
|
||||||
SHVec4 translate = mtx* dotPos;
|
SHVec4 translate = mtx* dotPos;
|
||||||
|
|
||||||
pos.x = translate.x;
|
if (takePos)
|
||||||
pos.y = translate.y;
|
{
|
||||||
pos.z = translate.z;
|
pos.x = translate.x;
|
||||||
|
pos.y = translate.y;
|
||||||
|
pos.z = translate.z;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
void SHCameraSystem::SetCameraViewMatrix(SHCameraComponent& camera, SHMatrix const& viewMatrix) noexcept
|
void SHCameraSystem::SetCameraViewMatrix(SHCameraComponent& camera, SHMatrix const& viewMatrix, bool takePos) noexcept
|
||||||
{
|
{
|
||||||
SHVec3 pos;
|
SHVec3 pos;
|
||||||
DecomposeViewMatrix(viewMatrix, camera.pitch, camera.yaw, camera.roll, camera.position);
|
DecomposeViewMatrix(viewMatrix, camera.pitch, camera.yaw, camera.roll, camera.position, takePos);
|
||||||
|
|
||||||
camera.dirtyView = true;
|
camera.dirtyView = true;
|
||||||
}
|
}
|
||||||
|
@ -457,7 +492,7 @@ namespace SHADE
|
||||||
void SHCameraSystem::CameraLookAt(SHCameraComponent& camera, SHVec3 target) noexcept
|
void SHCameraSystem::CameraLookAt(SHCameraComponent& camera, SHVec3 target) noexcept
|
||||||
{
|
{
|
||||||
|
|
||||||
if (camera.position == target)
|
if (camera.position + camera.offset == target)
|
||||||
{
|
{
|
||||||
//lets off set it abit so the view is nt fked
|
//lets off set it abit so the view is nt fked
|
||||||
target.z -= 0.0001f;
|
target.z -= 0.0001f;
|
||||||
|
@ -499,7 +534,7 @@ namespace SHADE
|
||||||
viewMtx(2, 3) = -forward.Dot(camera.position + camera.offset);
|
viewMtx(2, 3) = -forward.Dot(camera.position + camera.offset);
|
||||||
|
|
||||||
|
|
||||||
SetCameraViewMatrix(camera, viewMtx);
|
SetCameraViewMatrix(camera, viewMtx,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
SHVec2 SHCameraSystem::GetCameraWidthHeight(size_t index) noexcept
|
SHVec2 SHCameraSystem::GetCameraWidthHeight(size_t index) noexcept
|
||||||
|
|
|
@ -54,8 +54,8 @@ namespace SHADE
|
||||||
void ClampCameraRotation(SHCameraComponent& camera) noexcept;
|
void ClampCameraRotation(SHCameraComponent& camera) noexcept;
|
||||||
void UpdateEditorCamera(double dt) noexcept;
|
void UpdateEditorCamera(double dt) noexcept;
|
||||||
void SetMainCamera(EntityID eid, size_t directorIndex) noexcept;
|
void SetMainCamera(EntityID eid, size_t directorIndex) noexcept;
|
||||||
void DecomposeViewMatrix(SHMatrix const& matrix, float& pitch, float& yaw, float& roll, SHVec3& pos) noexcept;
|
void DecomposeViewMatrix(SHMatrix const& matrix, float& pitch, float& yaw, float& roll, SHVec3& pos, bool takePos) noexcept;
|
||||||
void SetCameraViewMatrix(SHCameraComponent& camera, SHMatrix const& viewMatrix) noexcept;
|
void SetCameraViewMatrix(SHCameraComponent& camera, SHMatrix const& viewMatrix, bool takePos) noexcept;
|
||||||
void CameraLookAt(SHCameraComponent& camera, SHVec3 target) noexcept;
|
void CameraLookAt(SHCameraComponent& camera, SHVec3 target) noexcept;
|
||||||
void UpdateEditorArm(double dt,bool active ,SHVec3 const& targetPos) noexcept;
|
void UpdateEditorArm(double dt,bool active ,SHVec3 const& targetPos) noexcept;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue