本文整理汇总了C#中IMesh.GetTVertPtr方法的典型用法代码示例。如果您正苦于以下问题:C# IMesh.GetTVertPtr方法的具体用法?C# IMesh.GetTVertPtr怎么用?C# IMesh.GetTVertPtr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMesh
的用法示例。
在下文中一共展示了IMesh.GetTVertPtr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetTextureVertices
public unsafe bool SetTextureVertices(IMesh maxMesh, MyMesh myMesh)
{
bool countChanged = false;
if (maxMesh.NumTVerts != myMesh.NumTextureCoordinates)
{
maxMesh.SetNumTVerts(myMesh.NumTextureCoordinates, false);
countChanged = true;
}
IntPtr p3h = maxMesh.GetTVertPtr(0).NativePointer;
float* p3 = (float*)p3h.ToPointer();
int elementsPerVertex = myMesh.TextureCoordinates.Count / myMesh.NumTextureCoordinates;
switch (elementsPerVertex)
{
case 2:
for (int i = 0; i < myMesh.NumTextureCoordinates; i++)
{
p3[(i * 3) + 0] = myMesh.TextureCoordinates[(i * 2) + 0];
p3[(i * 3) + 1] = myMesh.TextureCoordinates[(i * 2) + 1];
p3[(i * 3) + 2] = 0.0f;
};
break;
case 3:
Marshal.Copy(myMesh.TextureCoordinates.ToArray(), 0, p3h, myMesh.NumTextureCoordinates * 3);
break;
default:
throw new NotImplementedException(("Unable to handle texture coordinates with " + elementsPerVertex + " elements."));
}
return countChanged;
}