cesium-native  0.41.0
Material.h
1 // This file was generated by generate-classes.
2 // DO NOT EDIT THIS FILE!
3 #pragma once
4 
5 #include "CesiumGltf/Library.h"
6 #include "CesiumGltf/MaterialNormalTextureInfo.h"
7 #include "CesiumGltf/MaterialOcclusionTextureInfo.h"
8 #include "CesiumGltf/MaterialPBRMetallicRoughness.h"
9 #include "CesiumGltf/NamedObject.h"
10 #include "CesiumGltf/TextureInfo.h"
11 
12 #include <optional>
13 #include <string>
14 #include <vector>
15 
16 namespace CesiumGltf {
20 struct CESIUMGLTF_API Material final : public CesiumGltf::NamedObject {
21  static inline constexpr const char* TypeName = "Material";
22 
26  struct AlphaMode {
27  inline static const std::string OPAQUE = "OPAQUE";
28 
29  inline static const std::string MASK = "MASK";
30 
31  inline static const std::string BLEND = "BLEND";
32  };
33 
40  std::optional<CesiumGltf::MaterialPBRMetallicRoughness> pbrMetallicRoughness;
41 
52  std::optional<CesiumGltf::MaterialNormalTextureInfo> normalTexture;
53 
63  std::optional<CesiumGltf::MaterialOcclusionTextureInfo> occlusionTexture;
64 
74  std::optional<CesiumGltf::TextureInfo> emissiveTexture;
75 
82  std::vector<double> emissiveFactor = {0, 0, 0};
83 
93  std::string alphaMode = AlphaMode::OPAQUE;
94 
105  double alphaCutoff = 0.5;
106 
115  bool doubleSided = false;
116 };
117 } // namespace CesiumGltf
Classes for working with glTF models.
Known values for The alpha rendering mode of the material.
Definition: Material.h:26
The material appearance of a primitive.
Definition: Material.h:20
std::optional< CesiumGltf::MaterialNormalTextureInfo > normalTexture
The tangent space normal texture.
Definition: Material.h:52
std::optional< CesiumGltf::MaterialOcclusionTextureInfo > occlusionTexture
The occlusion texture.
Definition: Material.h:63
std::optional< CesiumGltf::MaterialPBRMetallicRoughness > pbrMetallicRoughness
A set of parameter values that are used to define the metallic-roughness material model from Physical...
Definition: Material.h:40
std::optional< CesiumGltf::TextureInfo > emissiveTexture
The emissive texture.
Definition: Material.h:74
The base class for objects in a glTF that have a name.
Definition: NamedObject.h:15