New Addon: Import Autodesk .max #105013
@ -1342,6 +1342,42 @@ def calc_point_float(data):
|
|||||||
return points
|
return points
|
||||||
|
|
||||||
|
|
||||||
|
def calc_point_3d(chunk):
|
||||||
|
data = chunk.data
|
||||||
|
count, offset = get_long(data, 0)
|
||||||
|
pointlist = []
|
||||||
|
try:
|
||||||
|
while (offset < len(data)):
|
||||||
|
pt = Point3d()
|
||||||
|
long, offset = get_long(data, offset)
|
||||||
|
pt.points, offset = get_longs(data, offset, long)
|
||||||
|
pt.flags, offset = get_short(data, offset)
|
||||||
|
if ((pt.flags & 0x01) != 0):
|
||||||
|
pt.f1, offset = get_long(data, offset)
|
||||||
|
if ((pt.flags & 0x08) != 0):
|
||||||
|
pt.fH, offset = get_short(data, offset)
|
||||||
|
if ((pt.flags & 0x10) != 0):
|
||||||
|
pt.f2, offset = get_long(data, offset)
|
||||||
|
if ((pt.flags & 0x20) != 0):
|
||||||
|
pt.fA, offset = get_longs(data, offset, 2 * (long - 3))
|
||||||
|
if (len(pt.points) > 0):
|
||||||
|
pointlist.append(pt)
|
||||||
|
except Exception as exc:
|
||||||
|
print('ArrayError:\n', "%s: offset = %d\n" %(exc, offset))
|
||||||
|
return pointlist
|
||||||
|
|
||||||
|
|
||||||
|
def get_point_array(values):
|
||||||
|
verts = []
|
||||||
|
if len(values) >= 4:
|
||||||
|
count, offset = get_long(values, 0)
|
||||||
|
while (count > 0):
|
||||||
|
floats, offset = get_floats(values, offset, 3)
|
||||||
|
verts.extend(floats)
|
||||||
|
count -= 1
|
||||||
|
return verts
|
||||||
|
|
||||||
|
|
||||||
def get_poly_4p(points):
|
def get_poly_4p(points):
|
||||||
vertex = {}
|
vertex = {}
|
||||||
for point in points:
|
for point in points:
|
||||||
@ -1388,42 +1424,6 @@ def get_poly_data(chunk):
|
|||||||
return polylist
|
return polylist
|
||||||
|
|
||||||
|
|
||||||
def get_point_array(values):
|
|
||||||
verts = []
|
|
||||||
if len(values) >= 4:
|
|
||||||
count, offset = get_long(values, 0)
|
|
||||||
while (count > 0):
|
|
||||||
floats, offset = get_floats(values, offset, 3)
|
|
||||||
verts.extend(floats)
|
|
||||||
count -= 1
|
|
||||||
return verts
|
|
||||||
|
|
||||||
|
|
||||||
def calc_point_3d(chunk):
|
|
||||||
data = chunk.data
|
|
||||||
count, offset = get_long(data, 0)
|
|
||||||
pointlist = []
|
|
||||||
try:
|
|
||||||
while (offset < len(data)):
|
|
||||||
pt = Point3d()
|
|
||||||
long, offset = get_long(data, offset)
|
|
||||||
pt.points, offset = get_longs(data, offset, long)
|
|
||||||
pt.flags, offset = get_short(data, offset)
|
|
||||||
if ((pt.flags & 0x01) != 0):
|
|
||||||
pt.f1, offset = get_long(data, offset)
|
|
||||||
if ((pt.flags & 0x08) != 0):
|
|
||||||
pt.fH, offset = get_short(data, offset)
|
|
||||||
if ((pt.flags & 0x10) != 0):
|
|
||||||
pt.f2, offset = get_long(data, offset)
|
|
||||||
if ((pt.flags & 0x20) != 0):
|
|
||||||
pt.fA, offset = get_longs(data, offset, 2 * (long - 3))
|
|
||||||
if (len(pt.points) > 0):
|
|
||||||
pointlist.append(pt)
|
|
||||||
except Exception as exc:
|
|
||||||
print('ArrayError:\n', "%s: offset = %d\n" %(exc, offset))
|
|
||||||
return pointlist
|
|
||||||
|
|
||||||
|
|
||||||
def create_editable_poly(context, node, msh, mat, mtx):
|
def create_editable_poly(context, node, msh, mat, mtx):
|
||||||
coords = point3i = point4i = point6i = pointNi = None
|
coords = point3i = point4i = point6i = pointNi = None
|
||||||
name = node.get_first(TYP_NAME).data
|
name = node.get_first(TYP_NAME).data
|
||||||
|
Loading…
Reference in New Issue
Block a user