73 FVector Begin = FVector(Arrow.
line.
begin);
74 FVector End = FVector(Arrow.
line.
end);
81 const auto Diff = End - Begin;
82 const FRotator LookAt = FRotationMatrix::MakeFromX(Diff).Rotator();
83 const FTransform Transform = {LookAt, Begin};
86 const auto Dist = Diff.Size();
87 const auto ArrowSize = 1e2f * Arrow.
arrow_size;
88 const auto ArrowTipDist = Dist - ArrowSize;
91 FBatchedLine BatchedLines[] =
101 Transform.TransformPosition(FVector(ArrowTipDist, +ArrowSize, +ArrowSize)),
108 Transform.TransformPosition(FVector(ArrowTipDist, +ArrowSize, -ArrowSize)),
115 Transform.TransformPosition(FVector(ArrowTipDist, -ArrowSize, +ArrowSize)),
122 Transform.TransformPosition(FVector(ArrowTipDist, -ArrowSize, -ArrowSize)),
130 World->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent)->DrawLines(TArrayView<FBatchedLine>(BatchedLines, 5));
135 const FVector Extent = 1e2f * FVector{Box.box.extent.x, Box.box.extent.y, Box.box.extent.z};
136 FTransform Transform = {FRotator(Box.rotation), Box.box.location};
137 const auto Thickness = 1e2f * Box.thickness;
149 for(int32 i = 0; i < 2; ++i)
151 for(int32 j = 0; j < 2; ++j)
159 World->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent)->DrawLine(
160 Transform.TransformPosition(P),
161 Transform.TransformPosition(Q),
173 World->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent)->DrawLine(
174 Transform.TransformPosition(P),
175 Transform.TransformPosition(Q),
187 World->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent)->DrawLine(
188 Transform.TransformPosition(P),
189 Transform.TransformPosition(Q),