本文整理汇总了C#中IMesh.ClearSpecifiedNormals方法的典型用法代码示例。如果您正苦于以下问题:C# IMesh.ClearSpecifiedNormals方法的具体用法?C# IMesh.ClearSpecifiedNormals怎么用?C# IMesh.ClearSpecifiedNormals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMesh
的用法示例。
在下文中一共展示了IMesh.ClearSpecifiedNormals方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetTriMeshNormals
protected unsafe VertexChannel GetTriMeshNormals(IMesh mesh)
{
VertexChannel channel = new VertexChannel();
channel.m_type = VertexChannelType.Normals;
/* The MeshNormalSpec class is intended to store user specified normals. We can use it however to have max calculate the
* normals in the typical way and provide easy access to them. */
IMeshNormalSpec normalspec = mesh.SpecifiedNormals;
bool normalsAlreadySpecified = (normalspec.NormalArray != null);
if (!normalsAlreadySpecified)
{
mesh.SpecifyNormals();
}
normalspec.CheckNormals();
channel.m_vertices = new Point3[normalspec.NumNormals];
fixed (Point3* normalData = channel.m_vertices)
{
CopyMemory((IntPtr)normalData, normalspec.NormalArray.Handle, (uint)(sizeof(Point3) * normalspec.NumNormals));
}
int numnormalfaces = normalspec.NumFaces;
channel.m_faces = new Indices3[numnormalfaces];
for (int i = 0; i < numnormalfaces; i++)
{
IMeshNormalFace f = normalspec.Face(i);
channel.m_faces[i] = *(Indices3*)f.NormalIDArray;
}
if (!normalsAlreadySpecified)
{
mesh.ClearSpecifiedNormals();
}
return channel;
}