载入中...
搜索中...
未找到
PointSetAttributeOps.cpp
浏览该文件的文档.
39void rotationBasis(float pitchDeg, float yawDeg, float rollDeg, float* forward, float* right, float* up) {
57 output.appendPointFrom(input, index).expect("PointSet attribute op requires compatible schemas");
82Result<float> readPointFloatChannel(const PointSet& points, int index, std::string_view name, float defaultValue) {
148Result<void> writePointFloatChannel(PointSet& points, int index, std::string_view name, float value) {
152 Diagnostic::error(DiagnosticCode::InvalidArgument, "attribute channel must not be empty", "name"));
157 Diagnostic::error(DiagnosticCode::InvalidArgument, "attribute channel must not be empty", "name"));
166 Diagnostic::error(DiagnosticCode::InvalidArgument, "unknown float selector '" + std::string(name) + "'", "name"));
270 Diagnostic::error(DiagnosticCode::InvalidArgument, "unknown float selector '" + std::string(name) + "'", "name"));
279 readPointFloatChannel(result, index, attribute, defaultValue).expect("mathPointFloatAttribute input");
293 writePointFloatChannel(result, index, outputAttribute, output).expect("mathPointFloatAttribute output");
339Result<PointSet> copyPointAttribute(const PointSet& input, const std::string& source, const std::string& target) {
342 Diagnostic::error(DiagnosticCode::InvalidArgument, "attribute copy requires source and target", "name"));
349 Diagnostic::error(DiagnosticCode::InvalidArgument, "unknown float selector '" + source + "'", "source"));
352 Diagnostic::error(DiagnosticCode::InvalidArgument, "unknown float selector '" + target + "'", "target"));
363 DiagnosticCode::InvalidArgument, "attribute copy with selectors requires float channels", "name"));
376Result<PointSet> renamePointAttribute(const PointSet& input, const std::string& from, const std::string& to) {
390Result<PointSet> transferPointAttribute(const PointSet& target, const PointSet& source, const std::string& attribute,
398 DiagnosticCode::InvalidArgument, "attribute transfer mode must be index, id, or nearest", "mode"));
407 DiagnosticCode::InvalidArgument, "unknown float selector '" + output + "'", "outputAttribute"));
463 (metadataType && *metadataType == ProcgenAttributeType::Float && isPointFloatChannel(output))) {
464 if (isMetadataName(attribute) && !source.attributes().has(std::size_t(sourceIndex), attribute)) continue;
527PointSet setPointVectorAttribute(const PointSet& input, const std::string& attribute, float x, float y, float z) {
539 Diagnostic::error(DiagnosticCode::InvalidArgument, "compare requires a float channel", "attribute"));
542 DiagnosticCode::InvalidArgument, "compare output must be a metadata bool attribute", "outputAttribute"));
543 if (comparison != "eq" && comparison != "ne" && comparison != "lt" && comparison != "le" && comparison != "gt" &&
546 DiagnosticCode::InvalidArgument, "compare comparison must be eq/ne/lt/le/gt/ge", "comparison"));
551 readPointFloatChannel(result, index, attribute, defaultValue).expect("comparePointFloatAttribute");
571Result<PointSet> selectPointFloatAttribute(const PointSet& input, const std::string& conditionAttribute,
582 Diagnostic::error(DiagnosticCode::InvalidArgument, "select float channels are invalid", "attribute"));
587 const float value = readPointFloatChannel(result, index, takeTrue ? trueAttribute : falseAttribute,
604Result<void> setPointDataFloatAttribute(PointSet& points, const std::string& attribute, float value) {
612Result<void> setPointDataIntAttribute(PointSet& points, const std::string& attribute, std::int64_t value) {
620Result<void> setPointDataStringAttribute(PointSet& points, const std::string& attribute, const std::string& value) {
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
void expect(std::string_view message) const
Require success for a void operation.
Definition Result.h:548
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Schema-bearing column store aligned with a PointSet's point rows.
Definition AttributeTable.h:33
std::optional< std::int64_t > getInt(std::size_t row, std::string_view name) const
Read an integer value, or no value for an absent row, name, or type.
Definition AttributeTable.cpp:229
bool has(std::size_t row, std::string_view name) const
Return whether a row contains a value in the named column.
Definition AttributeTable.cpp:72
std::optional< bool > getBool(std::size_t row, std::string_view name) const
Read a Boolean value, or no value for an absent row, name, or type.
Definition AttributeTable.cpp:232
std::optional< float > getFloat(std::size_t row, std::string_view name) const
Read a float value, or no value for an absent row, name, or type.
Definition AttributeTable.cpp:226
bool hasStringAttribute(int index, const std::string &name) const
True when string attribute.
Definition PointSet.cpp:437
bool hasIntAttribute(int index, const std::string &name) const
Test whether signed integer metadata exists.
Definition PointSet.cpp:367
float getFloatAttribute(int index, const std::string &name, float fallback) const
Returns the float attribute.
Definition PointSet.cpp:342
Result< void > tryCopyAttribute(const std::string &from, const std::string &to)
Copy one metadata column onto another name on this set.
Definition PointSet.cpp:449
Result< void > trySetStringAttribute(int index, const std::string &name, const std::string &value)
Canonical checked string metadata write.
Definition PointSet.cpp:421
Result< void > tryRenameAttribute(const std::string &from, const std::string &to)
Rename one metadata column on this set.
Definition PointSet.cpp:441
std::string getStringAttribute(int index, const std::string &name, const std::string &fallback) const
Returns the string attribute.
Definition PointSet.cpp:432
float getVectorAttributeY(int index, const std::string &name, float fallback) const
Read the Y component of vector metadata or the caller-provided default.
Definition PointSet.cpp:407
Result< void > trySetBoolAttribute(int index, const std::string &name, bool value)
Canonical checked Boolean metadata write.
Definition PointSet.cpp:371
Result< void > trySetVectorAttribute(int index, const std::string &name, float x, float y, float z)
Canonical checked vector metadata write.
Definition PointSet.cpp:391
bool hasFloatAttribute(int index, const std::string &name) const
True when float attribute.
Definition PointSet.cpp:347
std::uint64_t getPointId(int index) const
Return the stable point identity, or zero when it has not been assigned.
Definition PointSet.cpp:289
float getVectorAttributeZ(int index, const std::string &name, float fallback) const
Read the Z component of vector metadata or the caller-provided default.
Definition PointSet.cpp:412
bool getBoolAttribute(int index, const std::string &name, bool fallback) const
Read boolean metadata or return the caller-provided default when absent.
Definition PointSet.cpp:382
const std::vector< ProcgenPoint > & points() const
Borrow immutable point rows; structural ownership remains with this set.
Definition PointSet.h:212
float getVectorAttributeX(int index, const std::string &name, float fallback) const
Read the X component of vector metadata or the caller-provided default.
Definition PointSet.cpp:402
Result< void > trySetIntAttribute(int index, const std::string &name, std::int64_t value)
Canonical checked signed integer metadata write.
Definition PointSet.cpp:351
std::int64_t getIntAttribute(int index, const std::string &name, std::int64_t fallback) const
Read signed integer metadata or return the caller-provided default when absent.
Definition PointSet.cpp:362
const AttributeTable & attributes() const noexcept
Borrow the authoritative schema-bearing attribute table.
Definition PointSet.h:216
Result< void > trySetFloatAttribute(int index, const std::string &name, float value)
Canonical checked float metadata write.
Definition PointSet.cpp:331
Result< void > tryDeleteAttribute(const std::string &name)
Delete one metadata column on this set.
Definition PointSet.cpp:445
std::vector< double > forward(const Policy &p, const Observation &o)
Forward.
Definition Learning.h:65
Definition EvpackPointGraphLoader.h:12
Result< PointSet > deletePointAttribute(const PointSet &input, const std::string &name)
Delete one metadata column.
Definition PointSetAttributeOps.cpp:383
PointSet mathPointIntAttribute(const PointSet &input, const std::string &attribute, const std::string &outputAttribute, const std::string &operation, std::int64_t operand, std::int64_t defaultValue)
Apply integer math to an int metadata column.
Definition PointSetAttributeOps.cpp:686
bool isPointFloatChannel(std::string_view name) noexcept
Return whether name is a valid float channel (builtin selector or metadata name).
Definition PointSetAttributeOps.cpp:78
EVENGINE_API_DOMAINS Result< float > readPointFloatChannel(const PointSet &points, int index, std::string_view name, float defaultValue)
Read a float metadata column or closed $ point-field selector.
Definition PointSetAttributeOps.cpp:82
PointSet filterPointIntAttribute(const PointSet &input, const std::string &name, std::int64_t minValue, std::int64_t maxValue, bool invert)
Select points whose named int attribute lies in an inclusive range.
Definition PointSetAttributeOps.cpp:317
Result< PointSet > copyPointAttribute(const PointSet &input, const std::string &source, const std::string &target)
Copy one float channel or typed metadata column onto another name.
Definition PointSetAttributeOps.cpp:339
EVENGINE_API_DOMAINS Result< void > setPointDataFloatAttribute(PointSet &points, const std::string &attribute, float value)
Write a float into the PointSet @Data domain.
Definition PointSetAttributeOps.cpp:604
Result< PointSet > selectPointFloatAttribute(const PointSet &input, const std::string &conditionAttribute, const std::string &trueAttribute, const std::string &falseAttribute, const std::string &outputAttribute, float trueDefault, float falseDefault)
Select between two float channels using a bool metadata condition.
Definition PointSetAttributeOps.cpp:571
EVENGINE_API_DOMAINS PointSet noisePointFloatAttribute(const PointSet &input, const std::string &attribute, uint32_t seed, float frequency, float amplitude, float offset)
Write deterministic float noise into a metadata attribute.
Definition PointSetAttributeOps.cpp:674
PointSet mathPointFloatAttribute(const PointSet &input, const std::string &attribute, const std::string &outputAttribute, const std::string &operation, float operand, float defaultValue)
Apply one scalar operation to a float metadata attribute or $ selector.
Definition PointSetAttributeOps.cpp:273
EVENGINE_API_DOMAINS PointSet filterPointFloatAttribute(const PointSet &input, const std::string &name, float minValue, float maxValue, bool invert)
Select points whose named float attribute or $ selector lies in an inclusive range.
Definition PointSetAttributeOps.cpp:298
PointSet mathPointVectorAttribute(const PointSet &input, const std::string &attribute, const std::string &outputAttribute, const std::string &operation, float operandX, float operandY, float operandZ, float defaultX, float defaultY, float defaultZ)
Apply vector math to a vector metadata column.
Definition PointSetAttributeOps.cpp:706
PointSet setPointIntAttribute(const PointSet &input, const std::string &attribute, std::int64_t value)
Write a constant int metadata column on every point.
Definition PointSetAttributeOps.cpp:513
EVENGINE_API_DOMAINS PointSet partitionPointAttribute(const PointSet &input, const std::string &attribute, const std::string &outputAttribute, const std::string &mode)
Assign partition indices from a string/int attribute (mode: value|hash).
Definition PointSetAttributeOps.cpp:628
void ensurePointSetDataRow(PointSet &points)
Return whether name is a known $-prefixed float point-field selector.
Definition PointSetAttributeOps.cpp:596
Result< void > setPointDataStringAttribute(PointSet &points, const std::string &attribute, const std::string &value)
Write a string into the PointSet @Data domain.
Definition PointSetAttributeOps.cpp:620
Result< void > setPointDataIntAttribute(PointSet &points, const std::string &attribute, std::int64_t value)
Write an int into the PointSet @Data domain.
Definition PointSetAttributeOps.cpp:612
Result< void > writePointFloatChannel(PointSet &points, int index, std::string_view name, float value)
Write a float metadata column or closed $ point-field selector.
Definition PointSetAttributeOps.cpp:148
Result< PointSet > transferPointAttribute(const PointSet &target, const PointSet &source, const std::string &attribute, const std::string &outputAttribute, const std::string &mode)
Transfer one attribute from source onto target points.
Definition PointSetAttributeOps.cpp:390
PointSet setPointVectorAttribute(const PointSet &input, const std::string &attribute, float x, float y, float z)
Write a constant vector metadata column on every point.
Definition PointSetAttributeOps.cpp:527
PointSet setPointBoolAttribute(const PointSet &input, const std::string &attribute, bool value)
Write a constant bool metadata column on every point.
Definition PointSetAttributeOps.cpp:520
Result< PointSet > renamePointAttribute(const PointSet &input, const std::string &from, const std::string &to)
Rename one metadata column.
Definition PointSetAttributeOps.cpp:376
Result< PointSet > comparePointFloatAttribute(const PointSet &input, const std::string &attribute, const std::string &comparison, float operand, const std::string &outputAttribute, float defaultValue)
Compare a float channel against an operand and write a bool metadata column.
Definition PointSetAttributeOps.cpp:534
PointSet filterPointBoolAttribute(const PointSet &input, const std::string &name, bool value, bool invert)
Select points whose named bool attribute equals a value.
Definition PointSetAttributeOps.cpp:329
bool isPointFloatSelector(std::string_view name) noexcept
True when point float selector.
Definition PointSetAttributeOps.cpp:62
@ InvalidArgument
@ TypeMismatch
A stable reference resolved to a different canonical domain type.
@ NotFound
One deterministic sample used by script-first procedural pipelines.
Definition PointSet.h:17