Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Draw()

void Microsoft.Xna.Framework.Graphics.Model.Draw ( Matrix world,
Matrix view,
Matrix projection )
inline

Definition at line 103 of file Model.cs.

104 {
105 int count = meshes.Count;
106 int count2 = bones.Count;
108 if (array == null || array.Length < count2)
109 {
110 array = (sharedDrawBoneMatrices = new Matrix[count2]);
111 }
113 for (int i = 0; i < count; i++)
114 {
115 ModelMesh modelMesh = meshes[i];
116 int index = modelMesh.ParentBone.Index;
117 int count3 = modelMesh.Effects.Count;
118 for (int j = 0; j < count3; j++)
119 {
120 Effect effect = modelMesh.Effects[j];
121 if (effect == null)
122 {
123 throw new InvalidOperationException(FrameworkResources.ModelHasNoEffect);
124 }
125 if (!(effect is IEffectMatrices effectMatrices))
126 {
127 throw new InvalidOperationException(FrameworkResources.ModelHasNoIEffectMatrices);
128 }
129 effectMatrices.World = array[index] * world;
130 effectMatrices.View = view;
131 effectMatrices.Projection = projection;
132 }
133 modelMesh.Draw();
134 }
135 }
static Matrix[] sharedDrawBoneMatrices
Definition Model.cs:16
void CopyAbsoluteBoneTransformsTo(Matrix[] destinationBoneTransforms)
Definition Model.cs:58

References System.array, Microsoft.Xna.Framework.Graphics.Model.bones, Microsoft.Xna.Framework.Graphics.Model.CopyAbsoluteBoneTransformsTo(), System.count, System.Collections.ObjectModel.ReadOnlyCollection< T >.Count, Microsoft.Xna.Framework.Graphics.ModelMesh.Draw(), Microsoft.Xna.Framework.Graphics.ModelMesh.Effects, Microsoft.Xna.Framework.Graphics.ModelBone.Index, System.index, Microsoft.Xna.Framework.Graphics.Model.meshes, Microsoft.Xna.Framework.FrameworkResources.ModelHasNoEffect, Microsoft.Xna.Framework.FrameworkResources.ModelHasNoIEffectMatrices, Microsoft.Xna.Framework.Graphics.ModelMesh.ParentBone, and Microsoft.Xna.Framework.Graphics.Model.sharedDrawBoneMatrices.