@@ -222,11 +222,7 @@ void ALocalSimulationVolume::UpdateMeshVisuals()
222
222
// dereference pointers to pointers, and set references
223
223
UStaticMeshComponent& Mesh = *MeshData->InVisualMesh ;
224
224
LocalPhysics::FActorHandle& Handle = *MeshData->InHandle ;
225
- // FTransform HandleTransform = Handle.GetWorldTransform();
226
- // HandleTransform.SetScale3D(Mesh.GetComponentTransform().GetScale3D());
227
- // const FTransform& BodyTransform = LocalSpace->GetComponentTransform().GetRelativeTransformReverse(Handle.GetWorldTransform());;
228
225
const FTransform& BodyTransform = Handle .GetWorldTransform () * LocalSpace->GetComponentTransform ();
229
- // UE_LOG(LocalSimulationLog, Warning, L"New transform: %s is %s", *Mesh.GetStaticMesh()->GetName(), *BodyTransform.ToHumanReadableString());
230
226
231
227
switch (MeshData->InBodyType )
232
228
{
@@ -235,8 +231,6 @@ void ALocalSimulationVolume::UpdateMeshVisuals()
235
231
{
236
232
// update meshes back in 'world' space
237
233
Mesh.SetWorldTransform (BodyTransform, false , nullptr , ETeleportType::TeleportPhysics);
238
- // Mesh.SetWorldLocation(BodyTransform.GetLocation(), false, nullptr, ETeleportType::TeleportPhysics);
239
- // Mesh.SetWorldRotation(BodyTransform.GetRotation().Rotator(), false, nullptr, ETeleportType::TeleportPhysics);
240
234
}
241
235
break ;
242
236
case ELocalPhysicsBodyType::Kinematic:
@@ -249,9 +243,10 @@ void ALocalSimulationVolume::UpdateMeshVisuals()
249
243
250
244
// let's show everything in simulation.
251
245
if (bShowDebugPhyics)
252
- { // temporary fix to show local transforms correctly.
253
- const FTransform& DebugTransform = (bDebugInWorldSpace ? FTransform (BodyTransform.Rotator (), Mesh.Bounds .Origin , BodyTransform.GetScale3D ()) : FTransform (Handle .GetWorldTransform ().Rotator (), FTransform (BodyTransform.Rotator (), Mesh.Bounds .Origin , BodyTransform.GetScale3D ()).GetRelativeTransform (LocalSpace->ComponentToWorld ).GetLocation (), Handle .GetWorldTransform ().GetScale3D ()));
254
- UKismetSystemLibrary::DrawDebugBox (GetWorld (), DebugTransform.GetLocation (), Mesh.GetStaticMesh ()->GetBounds ().BoxExtent * Handle .ActorScale3D , DebugSimulatedColor, DebugTransform.Rotator (), DebugTick, DebugThickness);
246
+ {
247
+ const FTransform& DebugTransform = (bDebugInWorldSpace ? FTransform (BodyTransform.Rotator (), Mesh.Bounds .Origin , BodyTransform.GetScale3D ()) : Handle .GetWorldTransform ());
248
+ const FVector& DebugExtent = Mesh.GetStaticMesh ()->GetBounds ().BoxExtent * Handle .ActorScale3D ;
249
+ UKismetSystemLibrary::DrawDebugBox (GetWorld (), DebugTransform.GetLocation (), DebugExtent, DebugSimulatedColor, DebugTransform.Rotator (), DebugTick, DebugThickness);
255
250
}
256
251
}
257
252
}
@@ -308,7 +303,7 @@ void ALocalSimulationVolume::TransformUpdated(USceneComponent* InRootComponent,
308
303
// let's show everything in simulation.
309
304
if (bShowDebugPhyics)
310
305
{
311
- const FTransform& BodyTransform = bDebugInWorldSpace ? WorldBodyTransform : Handle .GetWorldTransform ();
306
+ const FTransform& BodyTransform = bDebugInWorldSpace ? WorldBodyTransform : Handle .GetBodyTransform ();
312
307
313
308
UKismetSystemLibrary::DrawDebugBox (GetWorld (), BodyTransform.GetLocation (), Mesh.GetStaticMesh ()->GetBounds ().BoxExtent * Handle .ActorScale3D , DebugKinematicColor, BodyTransform.Rotator (), DebugTick, DebugKinematicThickness);
314
309
}
@@ -381,7 +376,7 @@ bool ALocalSimulationVolume::AddStaticMeshToSimulation(UStaticMeshComponent* Mes
381
376
// if we don't find this mesh in Simulated or Kinematic arrays
382
377
if (IsInSimulation (Mesh) == false )
383
378
{
384
- // UE_LOG(LocalSimulationLog, Warning, L"Current transform: %s is %s", *Mesh->GetStaticMesh()->GetName(), *Mesh->GetComponentTransform ().ToHumanReadableString ());
379
+ // UE_LOG(LocalSimulationLog, Warning, L"Current transform: %s is %s", *Mesh->GetStaticMesh()->GetName(), *Mesh->K2_GetComponentScale ().ToString ());
385
380
/*
386
381
* messy check for static, kinematic, dynamic
387
382
*/
@@ -412,15 +407,10 @@ bool ALocalSimulationVolume::AddStaticMeshToSimulation(UStaticMeshComponent* Mes
412
407
FBodyInstance& BodyInstance = Mesh->BodyInstance ;
413
408
414
409
// create copy of new relative transform
415
- FTransform BodyTransform = BodyInstance.GetUnrealWorldTransform_AssumesLocked (false ).GetRelativeTransform (LocalSpace->GetComponentTransform ());
416
- // BodyTransform.SetScale3D(Mesh->GetComponentTransform().GetScale3D());
417
- // FTransform BodyTransform = FTransform(Mesh->GetComponentTransform().Rotator(), Mesh->Bounds.Origin, Mesh->GetComponentTransform().GetScale3D()).GetRelativeTransform(LocalSpace->GetComponentTransform());
418
- // FTransform BodyTransform = Mesh->GetComponentTransform();
419
- // BodyTransform.SetScale3D(FVector(1.f));
420
- // BodyTransform = BodyTransform.GetRelativeTransform(LocalSpace->GetComponentTransform());
421
-
410
+ const FTransform& BodyTransform = Mesh->GetComponentTransform ().GetRelativeTransform (LocalSpace->GetComponentTransform ());
422
411
423
412
UStaticMeshComponent* DynamicMesh = NewMeshData->InPhysicsMesh ;
413
+
424
414
if (ShouldExistInBothScenes)
425
415
{
426
416
// by default, we create clones for kinematic components.
@@ -504,7 +494,7 @@ bool ALocalSimulationVolume::AddStaticMeshToSimulation(UStaticMeshComponent* Mes
504
494
}
505
495
506
496
// store scale so that Unreal component gets returned the correct scale / debug looks percise.
507
- NewMeshData->InHandle ->ActorScale3D = Mesh->GetComponentTransform (). GetScale3D ();
497
+ NewMeshData->InHandle ->ActorScale3D = Mesh->K2_GetComponentScale ();
508
498
509
499
// create new pair in kinematic meshses array (we don't update on tick)
510
500
haveWeAddedMesh = (SimulatedActors.Add (NewMeshData) > -1 );
0 commit comments