当前位置: 首页>>代码示例>>C++>>正文


C++ HalfEdge::getNext方法代码示例

本文整理汇总了C++中HalfEdge::getNext方法的典型用法代码示例。如果您正苦于以下问题:C++ HalfEdge::getNext方法的具体用法?C++ HalfEdge::getNext怎么用?C++ HalfEdge::getNext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HalfEdge的用法示例。


在下文中一共展示了HalfEdge::getNext方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: computeNormals

void TriMesh::computeNormals() {
  // skip
  // Calculate triangle normals
  for(int i = 0; i < m_triangles.size(); i++){
    glm::vec3 v1; glm::vec3 v2; glm::vec3 v3;
    HalfEdge* tempLeader = m_triangles[i]->getLeadingHalfEdge();
    v1 = tempLeader->getSourceNode()->m_pos_;
    tempLeader = tempLeader->getNext();
    v2 = tempLeader->getSourceNode()->m_pos_;
    tempLeader = tempLeader->getNext();
    v3 = tempLeader->getSourceNode()->m_pos_;
    m_triangles[i]->m_N_ = calculateNormal(v1,v2,v3);

  }
  // Calculate vertex normals by averaging triange normals
  for(int i = 0; i < m_nodes.size(); i++){
    Node n = m_nodes[i];
    HalfEdge* startEdge = n.getLeadingHalfEdge();
    Triangle* startTriangle = startEdge->getTriangle();
    glm::vec3 accNormal = startTriangle->m_N_;
    int triangleCount = 1;
    for(HalfEdge* tempEdge = startEdge->getVtxRingNext(); tempEdge != startEdge; tempEdge = tempEdge->getVtxRingNext()){
		if (tempEdge == NULL)
			break;
		accNormal += tempEdge->getTriangle()->m_N_;
		triangleCount++;
    }
    glm::vec3 count = glm::vec3(triangleCount);
    m_nodes[i].m_N_ = accNormal/count;

  }

  // unskip
}
开发者ID:kjetilbk,项目名称:INF3320,代码行数:34,代码来源:TriMeshGL.cpp

示例2: getNode

 /** Return node no ix from triangle.
 * \param ix is either 0, 1 or 2.
 */
 Node* getNode(size_t ix) {
     HalfEdge *he = m_he_;
     for(size_t i=0; i<ix; i++) {
         he = he->getNext();
     }
     return he->getSourceNode();
 }
开发者ID:henrik2706,项目名称:henrihlo-INF3320-obliger,代码行数:10,代码来源:TriMesh.hpp

示例3: edge

TEST(HalfEdgeTest, TestGetNext)
{
	using T = float;
	const HalfEdge<T> edge(nullptr, nullptr);
	EXPECT_EQ(nullptr, edge.getNext());
}
开发者ID:SatoshiMabuchi,项目名称:CrystalGraphics,代码行数:6,代码来源:HalfEdgeTest.cpp


注:本文中的HalfEdge::getNext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。