TriangleTriangleVertex v0Vertex v1Vertex v2 assertv0!=v1 && v1!=v2 && v2!=v0; vertex0=v0; vertex1=v1; vertex2=v2; ComputeNormal; trianglespush_backthis; forint i=0;i3;i++ vertexi-facepush_backthis;
这段代码是一个Triangle类的构造函数。该类表示一个三角形,构造函数的作用是初始化三角形的顶点,并计算出三角形的法线。
代码中使用了一个assert语句,用于断言三个顶点不相等,即保证三角形的三个顶点不重合。
接下来,通过将三个顶点分别赋值给Triangle类的成员变量vertex[0]、vertex[1]和vertex[2],初始化了三角形的顶点。
然后,调用ComputeNormal()函数计算三角形的法线。
接着,将当前的三角形对象添加到一个全局的triangles容器中,该容器用于存储所有的三角形对象。
接下来,遍历三角形的三个顶点,将当前三角形对象添加到每个顶点的face容器中,用于存储与该顶点相邻的三角形。
然后,再次遍历三角形的三个顶点,对于每个顶点,将与其不相等的其他两个顶点添加到该顶点的neighbor容器中,用于存储与该顶点相邻的顶点。
最后,构造函数执行完毕,一个Triangle对象被创建并初始化完成。
原文地址: https://www.cveoy.top/t/topic/hPVx 著作权归作者所有。请勿转载和采集!