载入中...
搜索中...
未找到
WaterStyleConfig.cpp
浏览该文件的文档.
26 if (found == object.end() || (!found->second.isDouble() && !found->second.isInt64())) return false;
27 output = static_cast<float>(found->second.isDouble() ? found->second.asDouble() : found->second.asInt());
52 output[i] = static_cast<float>((*values)[i].isDouble() ? (*values)[i].asDouble() : (*values)[i].asInt());
73 Diagnostic::error(DiagnosticCode::InvalidArgument, "water colors must be finite and in [0, 8]", "$.colors", {}, "graphics.water"));
79 rippleCount < 0 || rippleCount > 8 || !std::isfinite(rippleInterval) || rippleInterval < 0.05F ||
82 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid wave or ripple parameter", "$.waves", {}, "graphics.water"));
86 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid depth parameter", "$.depth", {}, "graphics.water"));
91 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid foam parameter", "$.foam", {}, "graphics.water"));
93 !std::isfinite(reflectionIntensity) || reflectionIntensity < 0.0F || reflectionIntensity > 4.0F ||
98 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid lighting parameter", "$.lighting", {}, "graphics.water"));
99 if (!std::isfinite(refractionStrength) || refractionStrength < 0.0F || refractionStrength > 0.25F)
101 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid refraction strength", "$.refraction.strength", {}, "graphics.water"));
105 Diagnostic::error(DiagnosticCode::InvalidArgument, "invalid caustics parameter", "$.caustics", {}, "graphics.water"));
118 Value::Object foam{{"width", foamWidth}, {"softness", foamSoftness}, {"strength", foamStrength}};
119 Value::Object lighting{{"fresnelPower", fresnelPower}, {"reflectionIntensity", reflectionIntensity},
135 if (!root || !exactFields(*root, {"schema", "schemaVersion", "unknownFields", "colors", "waves", "depth",
147 Diagnostic::error({}, "water v1 requires unknownFields=reject", "$.unknownFields", {}, "graphics.water"));
158 !exactFields(*waves, {"speed", "amplitude", "scale", "sharpness", "rippleAmplitude", "rippleCount", "rippleInterval"}) ||
161 !exactFields(*lighting, {"fresnelPower", "reflectionIntensity", "sunIntensity", "screenSpaceReflection", "screenSpaceReflectionStrength"}) ||
164 DiagnosticCode::InvalidArgument, "invalid or unknown nested water field", "$", {}, "graphics.water"));
167 if (!vec3At(*colors, "deep", output.deepColor) || !vec3At(*colors, "shallow", output.shallowColor) ||
168 !vec3At(*colors, "foam", output.foamColor) || !vec3At(*colors, "reflectionTint", output.reflectionTint) ||
169 !numberAt(*waves, "speed", output.waveSpeed) || !numberAt(*waves, "amplitude", output.waveAmplitude) ||
170 !numberAt(*waves, "scale", output.waveScale) || !numberAt(*waves, "sharpness", output.waveSharpness) ||
171 !numberAt(*waves, "rippleAmplitude", output.rippleAmplitude) || !integerAt(*waves, "rippleCount", output.rippleCount) ||
172 !numberAt(*waves, "rippleInterval", output.rippleInterval) || !numberAt(*depth, "distance", output.depthDistance) ||
Stable, structured diagnostics shared by engine modules.
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
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Result< Value > fromJson(std::string_view json)
Parse one strict JSON value into an owning Value.
Definition Value.cpp:57
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ UnknownVersion
Versioned, backend-neutral configuration for the built-in stylized water surface.
Definition WaterStyleConfig.h:15
static constexpr std::string_view SchemaId
Definition WaterStyleConfig.h:16
static Result< WaterStyleConfig > fromValue(const Value &value)
Decode version one transactionally; unknown fields and future versions are rejected.
Definition WaterStyleConfig.cpp:133
float causticsStrength
Definition WaterStyleConfig.h:47
static constexpr std::uint32_t SchemaVersion
Definition WaterStyleConfig.h:17
Result< std::string > toJson() const
Serialize canonical JSON after validation.
Definition WaterStyleConfig.cpp:196
Result< Value > toValue() const
Encode the canonical version-one representation. Unknown fields are rejected.
Definition WaterStyleConfig.cpp:109
glm::vec3 reflectionTint
Definition WaterStyleConfig.h:22
float screenSpaceReflectionStrength
Definition WaterStyleConfig.h:43
bool screenSpaceReflection
Definition WaterStyleConfig.h:42
float rippleAmplitude
Definition WaterStyleConfig.h:28
Result< void > validate() const
Validate finite values and authored ranges without mutating runtime state.
Definition WaterStyleConfig.cpp:70
static Result< WaterStyleConfig > fromJson(std::string_view json)
Parse JSON and decode version one transactionally.
Definition WaterStyleConfig.cpp:190
float refractionStrength
Definition WaterStyleConfig.h:45
float reflectionIntensity
Definition WaterStyleConfig.h:40