73 lines
2.0 KiB
C++
73 lines
2.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "dna/DataLayer.h"
|
|
#include "dna/utils/ScopedEnumEx.h"
|
|
|
|
namespace dna {
|
|
|
|
enum class DataLayerBitmask {
|
|
Descriptor = 1,
|
|
Definition = 2,
|
|
Behavior = 4,
|
|
GeometryBlendShapesOnly = 8,
|
|
GeometryRest = 16,
|
|
MachineLearnedBehavior = 32,
|
|
RBFBehavior = 64,
|
|
JointBehaviorMetadata = 128,
|
|
TwistSwingBehavior = 256
|
|
};
|
|
|
|
inline DataLayerBitmask computeDataLayerBitmask(DataLayer layer) {
|
|
DataLayerBitmask result = DataLayerBitmask::Descriptor;
|
|
if (layer == DataLayer::All) {
|
|
result |= DataLayerBitmask::Definition;
|
|
result |= DataLayerBitmask::Behavior;
|
|
result |= DataLayerBitmask::GeometryBlendShapesOnly;
|
|
result |= DataLayerBitmask::GeometryRest;
|
|
result |= DataLayerBitmask::MachineLearnedBehavior;
|
|
result |= DataLayerBitmask::RBFBehavior;
|
|
result |= DataLayerBitmask::JointBehaviorMetadata;
|
|
result |= DataLayerBitmask::TwistSwingBehavior;
|
|
return result;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::Definition)) {
|
|
result |= DataLayerBitmask::Definition;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::Behavior)) {
|
|
result |= DataLayerBitmask::Behavior;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::Geometry)) {
|
|
result |= DataLayerBitmask::GeometryBlendShapesOnly;
|
|
result |= DataLayerBitmask::GeometryRest;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::GeometryWithoutBlendShapes)) {
|
|
result |= DataLayerBitmask::GeometryRest;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::MachineLearnedBehavior)) {
|
|
result |= DataLayerBitmask::MachineLearnedBehavior;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::RBFBehavior)) {
|
|
result |= DataLayerBitmask::RBFBehavior;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::JointBehaviorMetadata)) {
|
|
result |= DataLayerBitmask::JointBehaviorMetadata;
|
|
}
|
|
|
|
if (contains(layer, DataLayer::TwistSwingBehavior)) {
|
|
result |= DataLayerBitmask::TwistSwingBehavior;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
} // namespace dna
|