vcg.edge.VertexRef

vcg.edge.VertexRef是VCG库中用来表示图形图像中的边缘(edge)和端点(vertex)的引用对象。

方法

__init__(self, vid: int, eid: int) -> None

创建一个新的vcg.edge.VertexRef对象实例。

参数:

  • vid:int类型,表示端点(vertex)的Id。
  • eid:int类型,表示边缘(edge)的Id。

__str__(self) -> str

返回vcg.edge.VertexRef对象的字符串表示形式。

__repr__(self) -> str

返回vcg.edge.VertexRef对象的文本表示形式。

vertex(self, mesh: vcg.Mesh) -> Optional[vcg.Vertex]

返回vcg.edge.VertexRef对象实例所表示的端点(vertex)对象。

参数:

  • mesh:vcg.Mesh类型,表示图像中的网格对象。

返回值:

  • vcg.Vertex,表示vcg.edge.VertexRef对象实例所表示的端点(vertex)对象。
  • None,如果vcg.edge.VertexRef对象实例所表示的端点(vertex)对象不存在。

next(self, mesh: vcg.Mesh) -> Optional[vcg.edge.VertexRef]

返回连接到给定端点对象的下一个(相邻)链接的边缘(edge)和端点(vertex)。

参数:

  • mesh:vcg.Mesh类型,表示图像中的网格对象。

返回值:

  • vcg.edge.VertexRef,表示连接到给定端点对象的下一个(相邻)链接的边缘(edge)和端点(vertex)。
  • None,如果给定端点对象没有下一个相邻的链接的边缘(edge)和端点(vertex)。

prev(self, mesh: vcg.Mesh) -> Optional[vcg.edge.VertexRef]

返回连接到给定端点对象的前一个(相邻)链接的边缘(edge)和端点(vertex)。

参数:

  • mesh:vcg.Mesh类型,表示图像中的网格对象。

返回值:

  • vcg.edge.VertexRef,表示连接到给定端点对象的前一个(相邻)链接的边缘(edge)和端点(vertex)。
  • None,如果给定端点对象没有前一个相邻的链接的边缘(edge)和端点(vertex)。

属性

vid

int类型,表示vcg.edge.VertexRef对象实例所表示的端点(vertex)的Id。

eid

int类型,表示vcg.edge.VertexRef对象实例所表示的边缘(edge)的Id。

示例代码

创建一个vcg.edge.VertexRef对象:

import vcg

vertex_ref = vcg.edge.VertexRef(0, 1)
print(vertex_ref)  # Vertex 0 Edge 1

获取vcg.edge.VertexRef对象实例所表示的端点(vertex)对象:

import vcg

mesh = vcg.Mesh()
v0 = mesh.vert.add([0, 0, 0])
v1 = mesh.vert.add([0, 1, 0])
edge = mesh.edge.add([v0, v1])

vertex_ref = vcg.edge.VertexRef(v0.id, edge.id)
vertex = vertex_ref.vertex(mesh)
print(vertex)  # <vcg.Vertex object at 0x7f95fa3c7b30>

获取vcg.edge.VertexRef对象实例所表示的下一个相邻的链接的边缘(edge)和端点(vertex):

import vcg

mesh = vcg.Mesh()
v0 = mesh.vert.add([0, 0, 0])
v1 = mesh.vert.add([0, 1, 0])
v2 = mesh.vert.add([1, 1, 0])
edge0 = mesh.edge.add([v0, v1])
edge1 = mesh.edge.add([v1, v2])

vertex_ref = vcg.edge.VertexRef(v1.id, edge0.id)
next_vertex_ref = vertex_ref.next(mesh)
print(next_vertex_ref)  # Vertex 2 Edge 1

获取vcg.edge.VertexRef对象实例所表示的前一个相邻的链接的边缘(edge)和端点(vertex):

import vcg

mesh = vcg.Mesh()
v0 = mesh.vert.add([0, 0, 0])
v1 = mesh.vert.add([0, 1, 0])
v2 = mesh.vert.add([1, 1, 0])
edge0 = mesh.edge.add([v0, v1])
edge1 = mesh.edge.add([v1, v2])

vertex_ref = vcg.edge.VertexRef(v1.id, edge1.id)
prev_vertex_ref = vertex_ref.prev(mesh)
print(prev_vertex_ref)  # Vertex 0 Edge 1