MCPcopy Create free account
hub / github.com/PCGEx/PCGExtendedToolkit / Process

Method Process

Source/PCGExtendedToolkit/Private/Paths/PCGExOrient.cpp:86–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

84 }
85
86 bool FProcessor::Process(const TSharedPtr<PCGExMT::FTaskManager>& InAsyncManager)
87 {
88 TRACE_CPUPROFILER_EVENT_SCOPE(PCGExOrient::Process);
89
90 DefaultPointFilterValue = Settings->bFlipDirection;
91
92 // Must be set before process for filters
93 PointDataFacade->bSupportsScopedGet = Context->bScopedAttributeGet;
94
95 if (!FPointsProcessor::Process(InAsyncManager)) { return false; }
96
97 PCGEX_INIT_IO(PointDataFacade->Source, PCGExData::EIOInit::Duplicate)
98
99 Path = PCGExPaths::MakePath(PointDataFacade->GetIn()->GetPoints(), 0, Context->ClosedLoop.IsClosedLoop(PointDataFacade->Source));
100 //PathBinormal = Path->AddExtra<PCGExPaths::FPathEdgeBinormal>(false);
101
102 LastIndex = PointDataFacade->GetNum() - 1;
103 Orient = Cast<UPCGExOrientOperation>(PrimaryOperation);
104 if (!Orient->PrepareForData(PointDataFacade, Path.ToSharedRef())) { return false; }
105
106 if (Settings->Output == EPCGExOrientUsage::OutputToAttribute)
107 {
108 TransformWriter = PointDataFacade->GetWritable<FTransform>(Settings->OutputAttribute, PCGExData::EBufferInit::Inherit);
109 }
110
111 if (Settings->bOutputDot)
112 {
113 DotWriter = PointDataFacade->GetWritable<double>(Settings->DotAttribute, PCGExData::EBufferInit::Inherit);
114 }
115
116 StartParallelLoopForPoints();
117
118 return true;
119 }
120
121 void FProcessor::PrepareSingleLoopScopeForPoints(const PCGExMT::FScope& Scope)
122 {

Callers

nothing calls this directly

Calls 5

MakePathFunction · 0.85
GetNumMethod · 0.80
ProcessFunction · 0.50
IsClosedLoopMethod · 0.45
PrepareForDataMethod · 0.45

Tested by

no test coverage detected