diff --git a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset index e3897ef849f7c431089d8933275c5bd6b937105d..ade5e7f48de1ff08a9260496ddfc2b79198f8bae 100644 Binary files a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset and b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset differ diff --git a/Content/Blueprints/TabletBP.uasset b/Content/Blueprints/TabletBP.uasset index 70471f0bd4bdba18cde69f90430fa282113748f7..279e6d81f4934b0826f6229755ea4b16b9e47154 100644 Binary files a/Content/Blueprints/TabletBP.uasset and b/Content/Blueprints/TabletBP.uasset differ diff --git a/Content/Blueprints/TeleportControllerBP.uasset b/Content/Blueprints/TeleportControllerBP.uasset index bc71155c16d56df0b15c2423eadfe49869e41c91..605c4f66458361b8572f8e3d58720e1e1ba41265 100644 Binary files a/Content/Blueprints/TeleportControllerBP.uasset and b/Content/Blueprints/TeleportControllerBP.uasset differ diff --git a/Content/PPMaterials/TextureMaterialVR.uasset b/Content/PPMaterials/TextureMaterialVR.uasset index 74696d413546d18799610e37995dc463e06402b8..199d0d4ec2a9c4705155993d8388de5ae63b5086 100644 Binary files a/Content/PPMaterials/TextureMaterialVR.uasset and b/Content/PPMaterials/TextureMaterialVR.uasset differ diff --git a/OptiX.uplugin b/OptiX.uplugin index b8de04aca3b114444aac104dc86144918d5b9eb8..cc939ae0df7e247c8c7f65bb20fc4c21a939839c 100644 --- a/OptiX.uplugin +++ b/OptiX.uplugin @@ -27,12 +27,6 @@ "LoadingPhase": "PostEngineInit" } ], - "Plugins": [ - { - "Name": "MultiLine", - "Enabled": true - } - ], "PostBuildSteps": { "Win64": [ diff --git a/Source/OptiX/OptiX.Build.cs b/Source/OptiX/OptiX.Build.cs index 13d849b31020e5456992a3733c1950d430b86cfe..a42b7c140debd5302d45731e35b32bdf236ff371 100644 --- a/Source/OptiX/OptiX.Build.cs +++ b/Source/OptiX/OptiX.Build.cs @@ -45,9 +45,6 @@ public class OptiX : ModuleRules "UMG", "Slate", "SlateCore", - "MultiLine" - - } ); PrivateDependencyModuleNames.AddRange( @@ -60,7 +57,6 @@ public class OptiX : ModuleRules "OptiXLibrary", "Engine", "HeadMountedDisplay", - "MultiLine", "Json", "JsonUtilities", "RenderCore", diff --git a/Source/OptiX/Private/LineInstancedStaticMeshComponent.cpp b/Source/OptiX/Private/LineInstancedStaticMeshComponent.cpp index f3a921b1d8e69346291ca093dfd8c7fe6f2adbf4..76182e18793a9c6f793af47421cb076b5d7c798d 100644 --- a/Source/OptiX/Private/LineInstancedStaticMeshComponent.cpp +++ b/Source/OptiX/Private/LineInstancedStaticMeshComponent.cpp @@ -21,9 +21,6 @@ ULineInstancedStaticMeshComponent::ULineInstancedStaticMeshComponent(const FObje UE_LOG(LogTemp, Display, TEXT("ULineInstancedStaticMeshComponent Constructor")); - - SetGenerateOverlapEvents(false); - static ConstructorHelpers::FObjectFinder<UStaticMesh>LineMeshAsset(TEXT("StaticMesh'/OptiX/Laser/cylinder.cylinder'")); UStaticMesh* LineAsset = LineMeshAsset.Object; SetStaticMesh(LineAsset); @@ -31,6 +28,8 @@ ULineInstancedStaticMeshComponent::ULineInstancedStaticMeshComponent(const FObje SetRenderCustomDepth(true); SetCastShadow(false); SetCollisionEnabled(ECollisionEnabled::NoCollision); + SetGenerateOverlapEvents(false); + //SetCullDistance(10000); //SetBoundsScale(1000); // Prevent culling due to usage of worldpositionoffset diff --git a/Source/OptiX/Private/OptiXLaserActor.cpp b/Source/OptiX/Private/OptiXLaserActor.cpp index 4780c719f8df313ecfdeddf77edf910289cef5e6..e692d6cdb06b5d91149eb6d8ebef9b22030646ce 100644 --- a/Source/OptiX/Private/OptiXLaserActor.cpp +++ b/Source/OptiX/Private/OptiXLaserActor.cpp @@ -41,14 +41,7 @@ AOptiXLaserActor::AOptiXLaserActor(const FObjectInitializer& ObjectInitializer) LineInstancedStaticMeshComponent = CreateDefaultSubobject<ULineInstancedStaticMeshComponent>(TEXT("LineInstancedStaticMeshComponent")); LineInstancedStaticMeshComponent->SetupAttachment(GetStaticMeshComponent()); - //InstancedStaticMeshComponent->SetGenerateOverlapEvents(false); - - //InstancedStaticMeshComponent->SetStaticMesh(LineAsset); - //InstancedStaticMeshComponent->SetRenderCustomDepth(true); - //InstancedStaticMeshComponent->SetCastShadow(false); - //InstancedStaticMeshComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision); - - + OptiXLaserComponent = CreateDefaultSubobject<UOptiXLaserComponent>(TEXT("LaserComponent")); OptiXLaserComponent->SetupAttachment(LineInstancedStaticMeshComponent); @@ -61,25 +54,7 @@ void AOptiXLaserActor::BeginPlay() Super::BeginPlay(); FOptiXModule::Get().GetOptiXContextManager()->SetActiveLaserActor(this); - - - //FActorSpawnParameters SpawnInfo; - //SpawnInfo.Owner = this; - //MultiLineActorRef = GetWorld()->SpawnActor<AMultiLineActor>(GetActorLocation(), GetActorRotation(), SpawnInfo); - - //FAttachmentTransformRules Rules = FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true); - //MultiLineActorRef->AttachToActor(this, Rules); - //MultiLineActorRef->SetFlatShading(true); - //MultiLineActorRef->GetMeshComponent()->SetCastShadow(false); - //MultiLineActorRef->GetMeshComponent()->SetGenerateOverlapEvents(false); - //MultiLineActorRef->GetMeshComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision); - - //MultiLineActorRef->SetActorHiddenInGame(true); - - //DynamicLaserMaterial = UMaterialInstanceDynamic::Create(InstancedStaticMeshComponent->GetMaterial(0), this); - //InstancedStaticMeshComponent->GetStaticMesh()->SetMaterial(0, DynamicLaserMaterial); - //InstancedStaticMeshComponent->SetMaterial(0, DynamicLaserMaterial); - //InitInstancedMeshData(); + LineInstancedStaticMeshComponent->InitLineSegments(OptiXLaserComponent->LaserIndices, 20); LineInstancedStaticMeshComponent->UpdateLUT(OptiXLaserComponent->LaserIndexColorMap); @@ -89,97 +64,13 @@ void AOptiXLaserActor::BeginPlay() void AOptiXLaserActor::EndPlay(const EEndPlayReason::Type EndPlayReason) { Super::EndPlay(EndPlayReason); - //MultiLineActorRef->Destroy(); - //MultiLineActorRef = nullptr; UE_LOG(LogTemp, Warning, TEXT("OptiX Laser Actor EndPlay")); } -//void AOptiXLaserActor::Tick(float DeltaTime) -//{ -// // We don't need to trace each tick, but only if either the optix scene changed, or the laser position moved. -// Super::Tick(DeltaTime); -// -// //LineInstancedStaticMeshComponent->UpdateLines(); -// -// //if (bLaserTraceEnabled) -// //{ -// // // Check if there's anything in the queue -// -// // if (!FOptiXModule::Get().GetOptiXContextManager()->LaserIntersectionQueue.IsEmpty()) -// // { -// // DisplayLines(); -// // } -// //} -// -// -//} - -//void AOptiXLaserActor::InitInstancedMeshData() -//{ -// // We have a max number of LaserIndices * 20 instances -// uint32 Count = 0; -// -// TArray<LineProps> Lines; -// -// for (int32 Index : OptiXLaserComponent->LaserIndices) -// { -// TArray<FVector> Line; -// Line.Add(FVector(0, 0, 0)); -// -// for (int32 Intersection = Index * 20 * 2; Intersection < Index * 20 * 2 + 20 * 2; Intersection += 2) -// { -// FTransform LineTransform; -// -// -// LineTransform.SetScale3D({ 0, 0, 0 }); -// LineTransform.SetLocation({0, 0, 0}); -// -// // Rotation - align z to point towards End: -// -// LineTransform.SetRotation(FQuat::Identity); -// -// if (LineTransform.ContainsNaN()) -// { -// UE_LOG(LogTemp, Fatal, TEXT("Line Transform contains NaNs!")); -// } -// -// InstancedStaticMeshComponent->AddInstanceWorldSpace(LineTransform); -// Count++; -// -// Line.Add(FVector(0, 0, 0)); -// } -// //UE_LOG(LogTemp, Display, TEXT("Line Length: %i"), Line.Num()); -// -// Lines.Add(LineProps(Line, OptiXLaserComponent->LaserIndexColorMap[Index].ReinterpretAsLinear(), OptiXLaserComponent->GetLaserWidth())); -// -// } -// //UE_LOG(LogTemp, Display, TEXT("Lines : %i"), Lines.Num()); -// MultiLineActorRef->CreateMesh(Lines); -// -// UE_LOG(LogTemp, Display, TEXT("Created Proc Mesh")); -//} void AOptiXLaserActor::UpdateLaserPattern(EPatternTypes Pattern) { - // Clear the data - // This doesn't seem to work atm, maybe related to this here: - // https://unreal-engine-issues.herokuapp.com/issue/UE-60607 - // Need to try it in a newer version! TODO - // For now, quick and dirty hack - //MultiLineActorRef->ClearMeshSections(); - //MultiLineActorRef->Destroy(); - //FActorSpawnParameters SpawnInfo; - //SpawnInfo.Owner = this; - //MultiLineActorRef = GetWorld()->SpawnActor<AMultiLineActor>(GetActorLocation(), GetActorRotation(), SpawnInfo); - - /*FAttachmentTransformRules Rules = FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true); - MultiLineActorRef->AttachToActor(this, Rules); - MultiLineActorRef->SetFlatShading(true); - MultiLineActorRef->GetMeshComponent()->SetCastShadow(false); - MultiLineActorRef->GetMeshComponent()->SetGenerateOverlapEvents(false); - MultiLineActorRef->GetMeshComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision);*/ - OptiXLaserComponent->PreparePatternChange(Pattern); LineInstancedStaticMeshComponent->InitLineSegments(OptiXLaserComponent->LaserIndices, 20); @@ -196,127 +87,3 @@ void AOptiXLaserActor::UpdateLaserWidth(float NewWidth) OptiXLaserComponent->SetLaserWidth(NewWidth); LineInstancedStaticMeshComponent->DynamicLaserMaterial->SetScalarParameterValue("Width", NewWidth); } - - -//void AOptiXLaserActor::DisplayLines() -//{ - /* - This works and is decently efficient but the actual optix setup is incredibly wasteful and weird. - There's no need for 3 huge buffers which contain almost no data, as only a few of the 50 * 50 possible rays get traced. - Really really *really* needs to be refactored to something sensible! - */ - - - //LineInstancedStaticMeshComponent->UpdateLines(OptiXLaserComponent->GetLaserWidth()); - - - // Update the material here for now TODO - // It's definitely not easily possible to have a per-instance color data sadly - //if (DynamicLaserMaterial != nullptr) - //{ - // DynamicLaserMaterial->SetVectorParameterValue("Color", Cie1931WavelengthToRGB(OptiXLaserComponent->GetWavelength())); - //} - - // Update the transforms of the mesh instances - - - // Try to empty the queue in one go or until it is empty: - //bool bIsDirty = true; - //uint32 TransformIndex = 0; - - //TArray<LineProps> Lines; - - - //for (int32 i = 0; i < 50 * 50; ++i) - //{ - // if (FOptiXModule::Get().GetOptiXContextManager()->LaserIntersectionQueue.IsEmpty()) break; - - // TPair<uint32, TArray<FVector>> QueueItem; - // FOptiXModule::Get().GetOptiXContextManager()->LaserIntersectionQueue.Dequeue(QueueItem); - // int32 Index = QueueItem.Key; - - // TArray<FVector> Line; - // FVector PrevIntersection(0, 0, 0); - - // for (int32 Intersection = 0; Intersection < 20 * 2; Intersection += 2) - // { - // //if (Intersection == 0) - // //{ - // // if (QueueItem.Value[Intersection] != FVector(0, -1, 0)) - // // { - // // PrevIntersection = GetActorRotation().UnrotateVector(QueueItem.Value[Intersection] - GetActorLocation()); - // // Line.Add(PrevIntersection); - // // } - // // else - // // { - // // Line.Add(FVector(0, 0, 0)); - // // } - // //} - - // //if (QueueItem.Value[Intersection + 1] != FVector(0, -1, 0)) - // //{ - // // PrevIntersection = GetActorRotation().UnrotateVector(QueueItem.Value[Intersection + 1] - GetActorLocation()); - // // Line.Add(PrevIntersection); - // //} - // //else - // //{ - // // Line.Add(PrevIntersection); - // //} - // - - // bIsDirty = true; - // FTransform LineTransform; - // FVector Start = QueueItem.Value[Intersection]; - // FVector End = QueueItem.Value[Intersection + 1]; - - // //UE_LOG(LogTemp, Display, TEXT("# Dist: %s"), *(Start-End).ToString()); - - - // float D = FVector::Distance(Start, End); - // float DScaled = D / 100.0; - // float Width = OptiXLaserComponent->GetLaserWidth(); - // if (D == 0) - // { - // Width = 0; // Set scale to 0 if it shouldn't be drawn - // } - - // LineTransform.SetScale3D({ Width, Width, DScaled }); - // LineTransform.SetLocation(Start); - - // // Rotation - align z to point towards End: - // FQuat Rot = FRotationMatrix::MakeFromZ(End - Start).ToQuat(); - - // if (D == 0) - // { - // Rot = FRotationMatrix::Identity.ToQuat(); - // } - - // LineTransform.SetRotation(Rot); - - // FTransform OldTransform; - // InstancedStaticMeshComponent->GetInstanceTransform(TransformIndex, OldTransform, true); - - // if (OldTransform.Equals(LineTransform)) - // { - // bIsDirty = false; - // } - - // if (LineTransform.ContainsNaN()) - // { - // UE_LOG(LogTemp, Fatal, TEXT("Line Transform contains NaNs!")); - // } - - // //UE_LOG(LogTemp, Display, TEXT("# Instances: %i"), InstancedStaticMeshComponent->GetInstanceCount()); - - // InstancedStaticMeshComponent->UpdateInstanceTransform(TransformIndex, LineTransform, true, bIsDirty, true); - // TransformIndex++; - // } - // //UE_LOG(LogTemp, Display, TEXT(" Line Color : %s"), *OptiXLaserComponent->LaserIndexColorMap[Index].ReinterpretAsLinear().ToString()); - - // // Linear Color set doesn't work here! Not a big deal tho - // //Lines.Add(LineProps(Line, FLinearColor(0.0, 0.0, 0.0), OptiXLaserComponent->GetLaserWidth())); - //} - //UE_LOG(LogTemp, Display, TEXT("Lines : %i"), Lines.Num()); - - //MultiLineActorRef->UpdateMesh(Lines); -//} diff --git a/Source/OptiX/Private/OptiXLaserTargetComponent.cpp b/Source/OptiX/Private/OptiXLaserTargetComponent.cpp index df4ec60b959e6295881a1470834d23c9cb106e7b..3c565dbde114aa32382365d02ba2cd3714bae370 100644 --- a/Source/OptiX/Private/OptiXLaserTargetComponent.cpp +++ b/Source/OptiX/Private/OptiXLaserTargetComponent.cpp @@ -143,7 +143,8 @@ void UOptiXLaserTargetComponent::InitOptiXGroups() void UOptiXLaserTargetComponent::CleanOptiXComponent() { - OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); + if(OptiXContext->GetGroup("top_object") != NULL) + OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform); OptiXTransform = nullptr; Super::CleanOptiXComponent(); diff --git a/Source/OptiX/Private/OptiXObjectComponent.cpp b/Source/OptiX/Private/OptiXObjectComponent.cpp index 49c1c0c0c87c776be9f2480bc9bab6e38d311cd8..adcfd9435e7d65ebb87292d9dbbbb3b7ca269c77 100644 --- a/Source/OptiX/Private/OptiXObjectComponent.cpp +++ b/Source/OptiX/Private/OptiXObjectComponent.cpp @@ -187,7 +187,6 @@ void UOptiXCubemapComponent::BeginPlay() for (AActor* Actor : FoundLaserActors) { HideComponent(Cast<AOptiXLaserActor>(Actor)->LineInstancedStaticMeshComponent); - //HideActorComponents(Cast<AOptiXLaserActor>(Actor)->MultiLineActorRef); } diff --git a/Source/OptiX/Private/SelectableActorBase.cpp b/Source/OptiX/Private/SelectableActorBase.cpp index f45146f68d39b9c8313b87b0e176073b1da592b4..dc5be06efe81d3a3d6484d06a3cdbf53b0c6ba44 100644 --- a/Source/OptiX/Private/SelectableActorBase.cpp +++ b/Source/OptiX/Private/SelectableActorBase.cpp @@ -13,10 +13,11 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti UE_LOG(LogTemp, Display, TEXT("OptiX ASelectableActorBase Constructor")); - SetMobility(EComponentMobility::Movable); GetStaticMeshComponent()->SetGenerateOverlapEvents(true); + GetStaticMeshComponent()->CastShadow = 0; + Gizmo = CreateDefaultSubobject<USceneComponent>(TEXT("Gizmo")); Gizmo->SetupAttachment(GetStaticMeshComponent()); @@ -43,6 +44,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateX->SetGenerateOverlapEvents(false); TranslateX->SetHiddenInGame(true); + TranslateX->CastShadow = 0; + TranslateX->bVisibleInReflectionCaptures = false; + ArrowX = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowX")); ArrowX->SetupAttachment(TranslateX); static ConstructorHelpers::FObjectFinder<UStaticMesh> TranslateArrow(TEXT("StaticMesh'/OptiX/UI/Translator/Arrowhead.Arrowhead'")); @@ -54,6 +58,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowX->SetHiddenInGame(true); ArrowX->SetAbsolute(false, false, true); + ArrowX->CastShadow = 0; + ArrowX->bVisibleInReflectionCaptures = false; + TranslateWidgetX = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetX")); TranslateWidgetX->SetAbsolute(false, true, true); @@ -78,6 +85,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateY->SetHiddenInGame(true); TranslateY->SetWorldRotation(FRotator(0.f, 90.0f, 0.0f)); + TranslateY->CastShadow = 0; + TranslateY->bVisibleInReflectionCaptures = false; + ArrowY = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowY")); ArrowY->SetupAttachment(TranslateY); ArrowY->SetStaticMesh(TranslateArrow.Object); @@ -88,6 +98,8 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowY->SetHiddenInGame(true); ArrowY->SetAbsolute(false, false, true); + ArrowY->CastShadow = 0; + ArrowY->bVisibleInReflectionCaptures = false; TranslateWidgetY = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetY")); TranslateWidgetY->SetAbsolute(false, true, true); @@ -109,6 +121,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti TranslateZ->SetHiddenInGame(true); TranslateZ->SetWorldRotation(FRotator(90.f, 0.0f, 0.0f)); + TranslateZ->CastShadow = 0; + TranslateZ->bVisibleInReflectionCaptures = false; + ArrowZ = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowZ")); ArrowZ->SetupAttachment(TranslateZ); ArrowZ->SetStaticMesh(TranslateArrow.Object); @@ -119,6 +134,8 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ArrowZ->SetHiddenInGame(true); ArrowZ->SetAbsolute(false, false, true); + ArrowZ->CastShadow = 0; + ArrowZ->bVisibleInReflectionCaptures = false; TranslateWidgetZ = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetZ")); TranslateWidgetZ->SetAbsolute(false, true, true); @@ -146,6 +163,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ScaleH->SetCollisionEnabled(ECollisionEnabled::NoCollision); ScaleH->SetHiddenInGame(true); + ScaleH->CastShadow = 0; + ScaleH->bVisibleInReflectionCaptures = false; + ScaleV = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ScaleV")); ScaleV->SetupAttachment(RotationSupport); ScaleV->SetStaticMesh(ScaleMesh.Object); @@ -155,6 +175,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ScaleV->SetCollisionEnabled(ECollisionEnabled::NoCollision); ScaleV->SetHiddenInGame(true); + ScaleV->CastShadow = 0; + ScaleV->bVisibleInReflectionCaptures = false; + SupportH = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("SupportH")); SupportH->SetupAttachment(RotationSupport); static ConstructorHelpers::FObjectFinder<UStaticMesh> SupportMesh(TEXT("StaticMesh'/OptiX/UI/Rotator/Cylinder_2.Cylinder_2'")); @@ -165,6 +188,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportH->SetHiddenInGame(true); //SupportH->SetWorldLocation(FVector(25, 0, 0)); + SupportH->CastShadow = 0; + SupportH->bVisibleInReflectionCaptures = false; + SupportSphereH = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("SupportSphereH")); SupportSphereH->SetupAttachment(SupportH); static ConstructorHelpers::FObjectFinder<UStaticMesh> SupportSphereMesh(TEXT("StaticMesh'/OptiX/UI/Rotator/SelectorSphere.SelectorSphere'")); @@ -175,6 +201,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportSphereH->SetHiddenInGame(true); SupportSphereH->SetRelativeLocation(FVector(0, 0, 100)); + SupportSphereH->CastShadow = 0; + SupportSphereH->bVisibleInReflectionCaptures = false; + DegreeWidgetH = CreateDefaultSubobject<UWidgetComponent>(TEXT("DegreeWidgetH")); DegreeWidgetH->SetupAttachment(SupportSphereH); static ConstructorHelpers::FClassFinder<UUserWidget> DegreeWidgetClass(TEXT("/OptiX/UI/Rotator/DegreeCounter")); @@ -194,6 +223,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportV->SetHiddenInGame(true); //SupportV->SetWorldLocation(FVector(0, 25, 0)); + SupportV->CastShadow = 0; + SupportV->bVisibleInReflectionCaptures = false; + SupportSphereV = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("SupportSphereV")); SupportSphereV->SetupAttachment(SupportV); //static ConstructorHelpers::FObjectFinder<UStaticMesh> SupportSphereMesh(TEXT("StaticMesh'/OptiX/UI/Rotator/Sphere_2.Sphere_2'")); @@ -204,6 +236,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti SupportSphereV->SetHiddenInGame(true); SupportSphereV->SetRelativeLocation(FVector(0, 0, 100)); + SupportSphereV->CastShadow = 0; + SupportSphereV->bVisibleInReflectionCaptures = false; + DegreeWidgetV = CreateDefaultSubobject<UWidgetComponent>(TEXT("DegreeWidgetV")); DegreeWidgetV->SetupAttachment(SupportSphereV); DegreeWidgetV->SetWidgetClass(DegreeWidgetClass.Class); @@ -229,6 +264,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ConnectorV->SetMaterial(0, MetalMaterial.Object); ConnectorV->SetMaterial(1, MetalMaterial.Object); + ConnectorV->CastShadow = 0; + ConnectorV->bVisibleInReflectionCaptures = false; + Sphere = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("SphereNew")); Sphere->SetAbsolute(false, false, true); @@ -241,6 +279,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti Sphere->SetWorldScale3D(FVector(0.05, 0.05, 0.05)); Sphere->SetRelativeLocation(FVector(0, 0, 100)); + Sphere->CastShadow = 0; + Sphere->bVisibleInReflectionCaptures = false; + ConnectorH = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ConnectorHNew")); ConnectorH->SetAbsolute(false, true, true); ConnectorH->SetupAttachment(ConnectorV); @@ -252,6 +293,9 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti ConnectorH->SetGenerateOverlapEvents(false); ConnectorH->SetCollisionEnabled(ECollisionEnabled::NoCollision); + ConnectorH->CastShadow = 0; + ConnectorH->bVisibleInReflectionCaptures = false; + UE_LOG(LogTemp, Display, TEXT("OptiX ASelectableActorBase Constructor End")); diff --git a/Source/OptiX/Public/OptiXLaserActor.h b/Source/OptiX/Public/OptiXLaserActor.h index 06902cd0c0c17154ac3029cff910f948501d7312..42b624bca3e1d1f5018aa1842adda4af90f48780 100644 --- a/Source/OptiX/Public/OptiXLaserActor.h +++ b/Source/OptiX/Public/OptiXLaserActor.h @@ -11,9 +11,6 @@ #include "SelectableActorBase.h" #include "LineInstancedStaticMeshComponent.h" -#include "MultiLineActor.h" - - #include "OptiXLaserActor.generated.h" @@ -62,12 +59,6 @@ public: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = OptiX) UOptiXLaserComponent* OptiXLaserComponent; - //UPROPERTY(BlueprintReadOnly, Category = OptiX) - //UMaterialInstanceDynamic* DynamicLaserMaterial; - - //UPROPERTY() - //AMultiLineActor* MultiLineActorRef; - };