34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
|
import bpy,bmesh
|
||
|
from . import utils
|
||
|
|
||
|
def create_rail_uv():
|
||
|
meshList = []
|
||
|
for obj in bpy.context.selected_objects:
|
||
|
if obj.type != 'MESH':
|
||
|
continue
|
||
|
|
||
|
if obj.data.uv_layers.active.data == None:
|
||
|
utils.ShowMessageBox("You should create a UV layer for this object firstly. Then execute this operator.", "No UV layer", 'ERROR')
|
||
|
return
|
||
|
|
||
|
meshList.append(obj.data)
|
||
|
|
||
|
for mesh in meshList:
|
||
|
# vecList = mesh.vertices[:]
|
||
|
uv_layer = mesh.uv_layers.active.data
|
||
|
for poly in mesh.polygons:
|
||
|
for loop_index in range(poly.loop_start, poly.loop_start + poly.loop_total):
|
||
|
# index = mesh.loops[loop_index].vertex_index
|
||
|
uv_layer[loop_index].uv[0] = 0 # vecList[index].co[0]
|
||
|
uv_layer[loop_index].uv[1] = 1 # vecList[index].co[1]
|
||
|
|
||
|
|
||
|
def virtoolize_floor_uv():
|
||
|
pass
|
||
|
|
||
|
def mesh_triangulate(me):
|
||
|
bm = bmesh.new()
|
||
|
bm.from_mesh(me)
|
||
|
bmesh.ops.triangulate(bm, faces=bm.faces)
|
||
|
bm.to_mesh(me)
|
||
|
bm.free()
|