| |
-_Runscript (
Sub MeshMapper()
'© 2005 Jess Maertterer
Dim strMesh, arrVertices, arrFaceVertices, arrNormals
Dim arrTexCoords, arrBox, i, UV(1)
Dim strSurf, arrParam, arrDomU, arrDomV
Rhino.Print "RhinoScript: MeshMapper"
strMesh = Rhino.GetObject ("Select Mesh", 32, true, false)
If isNull(strMesh) Then Exit Sub
strSurf = Rhino.GetObject("Select Surface", 8)
If isNull(strSurf) Then Exit Sub
arrDomU = Rhino.SurfaceDomain(strSurf, 0)
arrDomV = Rhino.SurfaceDomain(strSurf, 1)
arrVertices = Rhino.MeshVertices(strMesh)
arrFaceVertices = Rhino.MeshFaceVertices (strMesh)
arrNormals = Rhino.MeshVertexNormals (strMesh)
Redim arrTexCoords(ubound(arrVertices))
For i = 0 to ubound(arrVertices)
arrParam = Rhino.SurfaceClosestPoint(strSurf, arrVertices(i))
UV(0) = (arrParam(0)-arrDomU(0))/(arrDomU(1)-arrDomU(0))
UV(1) = (arrParam(1)-arrDomV(0))/(arrDomV(1)-arrDomV(0))
arrTexCoords(i) = UV
next
If IsNull(arrNormals) then
Rhino.AddMesh arrVertices, arrFaceVertices , , arrTexCoords
Else
Rhino.AddMesh arrVertices, arrFaceVertices , arrNormals, arrTexCoords
End If
Rhino.SelectObject (strMesh)
End Sub
MeshMapper()
)
|