Files
gtav-src/tools_ng/dcc/debug/max2011/scripts/startup/gtaProcObj.ms
T
2025-09-29 00:52:08 +02:00

92 lines
2.0 KiB
Plaintext
Executable File

ProcObjNumSegments = 32
plugin SimpleObject GtaProcObj
name:"Gta ProcObj"
classID:#(0x2e205dbb, 0x2d724d25)
category:"Gta"
(
parameters main rollout:params
(
radiusInner type:#float ui:radiusInner default:0
radiusOuter type:#float ui:radiusOuter default:0
)
rollout params "Two Faces Parameters"
(
spinner radiusInner "Inner Radius" type:#float range:[-1000,1000,0]
spinner radiusOuter "Outer Radius" type:#float range:[-1000,1000,0]
)
on buildMesh do
(
numVerts = (ProcObjNumSegments + 1) * 2
Count = (ProcObjNumSegments + 1)
segmentSize = 360.0 / ProcObjNumSegments
segmentAngle = 0
vertList = #()
polyList = #()
actualRadiusInner = radiusInner
actualRadiusOuter = radiusOuter
if actualRadiusInner < 0 then (
actualRadiusInner = -actualRadiusInner
)
if actualRadiusOuter < 0 then (
actualRadiusOuter = -actualRadiusOuter
)
for i = 1 to Count do (
innerVert = [actualRadiusInner * (sin segmentAngle),actualRadiusInner * (cos segmentAngle), 0]
outerVert = [actualRadiusOuter * (sin segmentAngle),actualRadiusOuter * (cos segmentAngle), 0]
append vertList innerVert
append vertList outerVert
if i != Count then (
append polyList [(i * 2) - 1,(i * 2) + 1,(i * 2)]
append polyList [(i * 2),(i * 2) + 1,(i * 2) + 2]
)
segmentAngle = segmentAngle + segmentSize
)
setmesh mesh numverts:vertList.count numfaces:polyList.count
for i = 1 to vertList.count do (
setvert mesh i vertList[i]
)
for i = 1 to polyList.count do (
setface mesh i polyList[i]
setedgevis mesh i 1 true
setedgevis mesh i 2 true
setedgevis mesh i 3 true
)
update mesh
)
tool create
(
on mousePoint click do
case click of
(
1: nodeTM.translation = gridPoint
3: #stop
)
on mouseMove click do
case click of
(
2: radiusOuter = gridDist.y
3: radiusInner = gridDist.y
)
)
)