Cesium for Unreal 2.13.2
Loading...
Searching...
No Matches
CesiumMetadataPrimitive.h
Go to the documentation of this file.
1// Copyright 2020-2024 CesiumGS, Inc. and Contributors
2
3#pragma once
4
8#include "Kismet/BlueprintFunctionLibrary.h"
9#include "UObject/ObjectMacros.h"
10
11#include "CesiumMetadataPrimitive.generated.h"
12
13struct UE_DEPRECATED(
14 5.0,
15 "FCesiumMetadataPrimitive is deprecated. Instead, use FCesiumPrimitiveFeatures and FCesiumPrimitiveMetadata to retrieve feature IDs and metadata from a glTF primitive.")
17
18/**
19 * A Blueprint-accessible wrapper for a glTF Primitive's EXT_feature_metadata
20 * extension. This class is deprecated and only exists for backwards
21 * compatibility.
22 */
23USTRUCT(BlueprintType)
24struct CESIUMRUNTIME_API FCesiumMetadataPrimitive {
25 GENERATED_USTRUCT_BODY()
26
27public:
28 /**
29 * Construct an empty primitive metadata instance.
30 */
32 : _pPrimitiveFeatures(nullptr),
33 _pPrimitiveMetadata(nullptr),
34 _pModelMetadata(nullptr) {}
35
36 /**
37 * Constructs a primitive metadata instance from the new features / metadata
38 * implementations for backwards compatibility.
39 *
40 * This class exists for backwards compatibility, so it requires a
41 * FCesiumPrimitiveFeatures to have been constructed beforehand. It assumes
42 * the given FCesiumPrimitiveFeatures will have the same lifetime as this
43 * instance.
44 *
45 * @param PrimitiveFeatures The FCesiumPrimitiveFeatures denoting the feature
46 * IDs in the glTF mesh primitive.
47 * @param PrimitiveMetadata The FCesiumPrimitiveMetadata containing references
48 * to the metadata for the glTF mesh primitive.
49 * @param ModelMetadata The FCesiumModelMetadata containing the property
50 * tables and textures contained in a glTF model.
51 */
53 const FCesiumPrimitiveFeatures& PrimitiveFeatures,
54 const FCesiumPrimitiveMetadata& PrimitiveMetadata,
55 const FCesiumModelMetadata& ModelMetadata);
56
57private:
58 const FCesiumPrimitiveFeatures* _pPrimitiveFeatures;
59 const FCesiumPrimitiveMetadata* _pPrimitiveMetadata;
60 const FCesiumModelMetadata* _pModelMetadata;
61
63};
64
65UCLASS()
67 : public UBlueprintFunctionLibrary {
68 GENERATED_BODY()
69
70public:
71 PRAGMA_DISABLE_DEPRECATION_WARNINGS
72
73 /**
74 * Get all the feature ID attributes that are associated with the
75 * primitive.
76 *
77 * @param MetadataPrimitive The {@link FCesiumMetadataPrimitive} to obtain the
78 * feature ID attributes from.
79 */
80 UFUNCTION(
81 BlueprintCallable,
82 BlueprintPure,
83 Category = "Cesium|Metadata|Primitive",
84 Meta =
85 (DeprecatedFunction,
86 DeprecationMessage =
87 "CesiumMetadataPrimitive is deprecated. Get feature IDs from CesiumPrimitiveFeatures instead."))
88 static const TArray<FCesiumFeatureIdAttribute>
90 const FCesiumMetadataPrimitive& MetadataPrimitive);
91
92 /**
93 * Get all the feature ID textures that are associated with the
94 * primitive.
95 *
96 * @param MetadataPrimitive The {@link FCesiumMetadataPrimitive} to obtain the
97 * feature ID textures from.
98 */
99 UFUNCTION(
100 BlueprintCallable,
101 BlueprintPure,
102 Category = "Cesium|Metadata|Primitive",
103 Meta =
104 (DeprecatedFunction,
105 DeprecationMessage =
106 "CesiumMetadataPrimitive is deprecated. Get feature IDs from CesiumPrimitiveFeatures instead."))
107 static const TArray<FCesiumFeatureIdTexture>
109 const FCesiumMetadataPrimitive& MetadataPrimitive);
110
111 /**
112 * @brief Get all the feature textures that are associated with the
113 * primitive.
114 *
115 * @param MetadataPrimitive The {@link FCesiumMetadataPrimitive} to obtain the
116 * feature texture names from.
117 */
118 UFUNCTION(
119 BlueprintCallable,
120 BlueprintPure,
121 Category = "Cesium|Metadata|Primitive",
122 Meta =
123 (DeprecatedFunction,
124 DeprecationMessage =
125 "CesiumMetadataPrimitive is deprecated. Get the associated property texture indices from CesiumPrimitiveMetadata instead."))
126 static const TArray<FString>
128 const FCesiumMetadataPrimitive& MetadataPrimitive);
129
130 /**
131 * Gets the ID of the first vertex that makes up a given face of this
132 * primitive.
133 *
134 * @param MetadataPrimitive The {@link FCesiumMetadataPrimitive} to obtain the
135 * vertex ID from.
136 * @param FaceID The ID of the face.
137 */
138 UFUNCTION(
139 BlueprintCallable,
140 BlueprintPure,
141 Category = "Cesium|Metadata|Primitive",
142 Meta =
143 (DeprecatedFunction,
144 DeprecationMessage =
145 "CesiumMetadataPrimitive is deprecated. Use GetFirstVertexFromFace with CesiumPrimitiveFeatures instead."))
147 UPARAM(ref) const FCesiumMetadataPrimitive& MetadataPrimitive,
148 int64 FaceID);
149
150 PRAGMA_ENABLE_DEPRECATION_WARNINGS
151};
static const TArray< FString > GetFeatureTextureNames(UPARAM(ref) const FCesiumMetadataPrimitive &MetadataPrimitive)
Get all the feature textures that are associated with the primitive.
static PRAGMA_DISABLE_DEPRECATION_WARNINGS const TArray< FCesiumFeatureIdAttribute > GetFeatureIdAttributes(UPARAM(ref) const FCesiumMetadataPrimitive &MetadataPrimitive)
Get all the feature ID attributes that are associated with the primitive.
static int64 GetFirstVertexIDFromFaceID(UPARAM(ref) const FCesiumMetadataPrimitive &MetadataPrimitive, int64 FaceID)
Gets the ID of the first vertex that makes up a given face of this primitive.
static const TArray< FCesiumFeatureIdTexture > GetFeatureIdTextures(UPARAM(ref) const FCesiumMetadataPrimitive &MetadataPrimitive)
Get all the feature ID textures that are associated with the primitive.
A blueprint-accessible wrapper for a feature ID texture from a glTF primitive.
A Blueprint-accessible wrapper for a glTF Primitive's EXT_feature_metadata extension.
FCesiumMetadataPrimitive()
Construct an empty primitive metadata instance.
FCesiumMetadataPrimitive(const FCesiumPrimitiveFeatures &PrimitiveFeatures, const FCesiumPrimitiveMetadata &PrimitiveMetadata, const FCesiumModelMetadata &ModelMetadata)
Constructs a primitive metadata instance from the new features / metadata implementations for backwar...
A blueprint-accessible wrapper for metadata contained in a glTF model.
A Blueprint-accessible wrapper for a glTF Primitive's mesh features.
A Blueprint-accessible wrapper for a glTF Primitive's EXT_structural_metadata extension.