std::vector<FVector3> PointCloud::GetTransformedPositions(const Transformation& transformation) const { std::vector<FVector3> transformedPositions; if (positions.size() > 0) { transformedPositions.reserve(positions.size()); for (const FVector3& position : positions) { transformedPositions.push_back(transformation.MultVertex(position)); } } return transformedPositions; }
void PointCloud::UpdateMaxDistanceToCenter() { maxDistanceToCenter = 0; Transformation modelTransformation = CurrentModelTransformation(); for (const FVector3& vertexPosition : positions) { FVector3 worldVertex = modelTransformation.MultVertex(vertexPosition); float distance = Norm(worldVertex - centroid); if (FGreater<float>(distance, maxDistanceToCenter)) { maxDistanceToCenter = distance; } } }