Skip to content

Commit d68fe5c

Browse files
committed
improved morph target primitive validation
1 parent c0aa840 commit d68fe5c

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/SharpGLTF.Toolkit/Geometry/PrimitiveBuilder.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ protected PrimitiveBuilder(MeshBuilder<TMaterial, TvG, TvM, TvS> mesh, Primitive
146146

147147
#region API - morph targets
148148

149+
internal IReadOnlyList<PrimitiveMorphTargetBuilder<TvG, TvM>> MorphTargets => _MorphTargets;
150+
149151
internal PrimitiveMorphTargetBuilder<TvG, TvM> _UseMorphTarget(int morphTargetIndex)
150152
{
151153
while (this._MorphTargets.Count <= morphTargetIndex)
@@ -160,6 +162,11 @@ internal PrimitiveMorphTargetBuilder<TvG, TvM> _UseMorphTarget(int morphTargetIn
160162

161163
public void Validate()
162164
{
165+
// check that this primitive has the same amount
166+
// of morph targets than the rest of the rest of primitives.
167+
var sharedMorphCount = this.Mesh.Primitives.Max(item => item.MorphTargets.Count);
168+
Guard.MustBeEqualTo(this.MorphTargets.Count, sharedMorphCount, nameof(MorphTargets));
169+
163170
foreach (var v in _Vertices)
164171
{
165172
v.Validate();

0 commit comments

Comments
 (0)