Render.ru

Проблема создания плагина

Gerebecc

Пользователь сайта
Рейтинг
2
#1
Существует такой скрипт


plugin simpleObject AntiStar

name:"AntiStar"

category:"HowTo"

classID:#(0xe855567c, 0xbcd73b8b)

(

parameters main rollout:params

(

NACH_X type:#integer ui:NACH_X default:0

NACH_Y type:#float ui:NACH_Y default:0

Konec_X type:#float ui:Konec_X default:0

Konec_Y type:#float ui:Konec_Y default:0

)
parameters main rollout:params1

(

Vosota type:#float ui:Vosota default:0

)

rollout params "AntiStar"

(

spinner NACH_X "X Начала" range:[-10000,10000,10]

spinner NACH_Y "Y Начала" range:[-10000,10000,10]

spinner Konec_X "X Конца" range:[-10000,10000,10]

spinner Konec_Y "Y Конца" range:[-10000,10000,10]

)


rollout params1 "ssssssr"

(

spinner Vosota "Высота" range:[0,100,10]
)


on buildMesh do

(

fn poll perv vtor =
(
local array1= #()

v1 = perv
v2 = [vtor.x,perv.y,perv.z]
v3 = vtor
v4 = [perv.x,vtor.y,vtor.z]
v5 = [150,50,0]

mm = mesh numverts:5 numfaces:3

append array1 v1
append array1 v2
append array1 v3
append array1 v4
append array1 v5

for i = 1 to 5 do
meshop.setvert mm i array1

meshop.createPolygon mm #(1,2,3,4,5)

)

v6 = [Konec_X ,Konec_Y ,Vosota]
v7 = [0,0,0]

poll v6 v7

)--end buildMesh

tool create

(

on mousePoint click do

(

case click of

(

1: coordsys grid (nodeTM.translation = gridPoint)

)

)

on mouseMove click do

(

case click of

(

2: (
Konec_X = gridDist.x
Konec_Y = gridDist.y
)
3: (
Vosota = gridDist.x
)

4: (#stop)

)

)

)--end create

)--end plugin

Не работает пишет "-- Type error: Call needs function or class, got: TriMesh", но если скомпелировать отдельно функцию poll() то всё работает правильно. Кто нибудь подскажите с чем это связано и как решить данную проблему.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Событие BuildMesh должно возвращать локальную переменную mesh в которой и нужно определить геометрию. Смотри как делается в оригинальном примере.
 

Gerebecc

Пользователь сайта
Рейтинг
2
#3
Событие BuildMesh должно возвращать локальную переменную mesh в которой и нужно определить геометрию. Смотри как делается в оригинальном примере.
Всё понятно но проблема в том, что необходимо создать не TriMesh c 3 точками полигон, а как минимум 4 или 5 точек. Так чтобы при выделении в EditMesh выделялось сразу несколько фейсов. То есть чтобы структура была Meshop, как это сделать??????
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
Базовый класс у них одинаковый Trimesh. Методы Meshop с ним работают.
просто создай setmesh mesh с нужным массивом точек и можешь точно также с ним работать.
 
Сверху