载入中...
搜索中...
未找到
MeshMerge.cpp
浏览该文件的文档.
50 output.addVertex(input.getPositionX(i), input.getPositionY(i), input.getPositionZ(i), input.getNormalX(i),
104 std::sqrt(normals[i] * normals[i] + normals[i + 1u] * normals[i + 1u] + normals[i + 2u] * normals[i + 2u]);
128Result<void> MeshMergePlan::appendSource(const MeshBuild& mesh, float tx, float ty, float tz, float yawDegrees,
131 return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument, "merge source mesh is empty",
133 if (!std::isfinite(tx) || !std::isfinite(ty) || !std::isfinite(tz) || !std::isfinite(yawDegrees) ||
134 !std::isfinite(sx) || !std::isfinite(sy) || !std::isfinite(sz) || sx == 0.f || sy == 0.f || sz == 0.f)
153 stamped.addVertex(transformed.getPositionX(v), transformed.getPositionY(v), transformed.getPositionZ(v),
224 DiagnosticCode::InvalidArgument, "merge plan has no sources", "plan", {}, "procgen.mesh.merge"));
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
CPU triangle mesh from procedural mesh recipes (e.g. marching cubes). Positions/normals are xyz-packe...
Definition MeshBuild.h:19
void addVertex(float px, float py, float pz, float nx, float ny, float nz, float u, float v)
Adds vertex.
Definition MeshBuild.cpp:33
void setMeta(const std::string &key, const std::string &value)
Sets the meta.
Definition MeshBuild.cpp:244
int setActiveGroup(const std::string &name)
Select/create the named group assigned to subsequently added triangles.
Definition MeshBuild.cpp:53
eve::Result< void > setVertexColors(std::vector< float > colors)
Atomically replace the optional packed RGBA stream; empty removes it.
Definition MeshBuild.cpp:214
bool appendTransformed(const MeshBuild *other, float tx, float ty, float tz, float yawDegrees, float sx, float sy, float sz)
Append another procedural mesh after an affine transform.
Definition MeshBuild.cpp:125
bool hasVertexColors() const noexcept
Return whether this mesh owns one packed RGBA color per vertex.
Definition MeshBuild.cpp:206
Authoring plan for commit-style static mesh merge.
Definition MeshMerge.h:21
int getSourceCount() const noexcept
Definition MeshMerge.cpp:174
@ FirstSource
Result< void > setContactBlendParams(const MeshContactBlendParams ¶ms)
Definition MeshMerge.cpp:181
Result< void > setMergeVertexColors(bool enabled) noexcept
Definition MeshMerge.cpp:216
Result< void > setEnableContactBlend(bool enabled) noexcept
Definition MeshMerge.cpp:176
Result< void > setPivotMode(PivotMode mode) noexcept
Definition MeshMerge.cpp:211
Result< void > appendSource(const MeshBuild &mesh, float tx, float ty, float tz, float yawDegrees, float sx, float sy, float sz, std::string defaultMaterialId="default")
Copy one mesh after yaw/scale/translation into the plan.
Definition MeshMerge.cpp:128
Result< void > setWeldTolerance(float tolerance) noexcept
Positive weld tolerance enables hard weld after contact blend; non-positive disables (default)....
Definition MeshMerge.cpp:193
Result< void > setSimplifyQuality(float quality) noexcept
Optional GTS quality in (0,1); non-positive disables simplify (default). When set,...
Definition MeshMerge.cpp:202
constexpr HexDirection next(HexDirection d) noexcept
The next direction clockwise (NW wraps to NE).
Definition HexMetrics.h:76
Definition EvpackPointGraphLoader.h:12
Result< int > simplifyGtsMesh(MeshBuild &output, const MeshBuild &source, float quality, const GtsMeshSimplificationOptions &o)
Simplify a mesh with deterministic quadric edge collapse.
Definition GtsMeshSimplifier.cpp:34
Result< MeshBuild > meshContactBlendResult(const MeshBuild &mesh, const std::vector< std::int32_t > &vertexSourceIds, const MeshContactBlendParams ¶ms)
Fuse edge normals / optional positions and material blend weights across source slices.
Definition MeshContactBlend.cpp:464
void rebuildSoftSnapContactNormals(MeshBuild &mesh)
Rebuild triangle normals then 1-ring-average them (soft-snap / post-weld lighting).
Definition MeshContactBlend.cpp:350
Result< MeshBuild > mergeStaticMeshes(const MeshMergePlan &plan)
Merge planned static meshes into one owning MeshBuild.
Definition MeshMerge.cpp:221
@ InvalidArgument
Parameters for contact-band edge and material fusion.
Definition MeshContactBlend.h:22
bool softSnapPositions
Definition MeshContactBlend.h:30