grimm wrote:Thanks Thomas, that's good to know. Here is my function if anyone is interested, any ideas to make it better will be greatly appreciated.
- Code: Select all
-- calculate the statistics of a mesh and return a table of those values
function getMeshStats(verts)
local meshStats = {}
local minX = 0
local maxX = 0
local minY = 0
local maxY = 0
local minZ = 0
local maxZ = 0
local lengthX = 0
local lengthY = 0
local lengthZ = 0
local x, y, z
-- find the bounding box
for k,v in pairs(verts) do
x = v[1]
if x > maxX then maxX = x end
if x < minX then minX = x end
y = v[2]
if y > maxY then maxY = y end
if y < minY then minY = y end
z = v[3]
if z > maxZ then maxZ = z end
if z < minZ then minZ = z end
end
meshStats["min_x"] = minX
meshStats["max_x"] = maxX
meshStats["min_y"] = minY
meshStats["max_y"] = maxY
meshStats["min_z"] = minZ
meshStats["max_z"] = maxZ
-- find the mesh's length for each axis
lengthX = maxX - minX
lengthY = maxY - minY
lengthZ = maxZ - minZ
meshStats["x_len"] = lengthX
meshStats["y_len"] = lengthY
meshStats["z_len"] = lengthZ
-- find the mesh's position
local posX = lengthX/2.0 + minX
local posY = lengthY/2.0 + minY
local posZ = lengthZ/2.0 + minZ
meshStats["pos_x"] = posX
meshStats["pos_y"] = posY
meshStats["pos_z"] = posZ
return meshStats
end
selectedMesh = octane.project.getSelection()[1]
verts = selectedMesh:getAttribute(octane.A_VERTICES)
meshStats = getMeshStats(verts)
print "X info"
print(meshStats["pos_x"])
print(meshStats["min_x"])
print(meshStats["max_x"])
print "Y info"
print(meshStats["pos_y"])
print(meshStats["min_y"])
print(meshStats["max_y"])
print "Z info"
print(meshStats["pos_z"])
print(meshStats["min_z"])
print(meshStats["max_z"])
If you do run the script, just make sure to select a mesh node first. Otherwise it will not work.
Jason
jitendra wrote:Hey Jason,
This script is still working well.
But can you help with converting this to a Scripted Nodegraph?
I want to use the output bounding box values in dynamically positioning other object (e.g. ground floor).
Happy to pay for the task as well.
Thanks.
Users browsing this forum: No registered users and 5 guests