示例#1
0
def make_mc_values_grid(iobj, RANGE_MIN, RANGE_MAX, STEPSIZE, old=True):
    rng = np.arange(RANGE_MIN, RANGE_MAX, STEPSIZE)
    import mc_utils
    vgrid = mc_utils.make_grid(iobj, rng, old=old)
    if old:
        return np.swapaxes(vgrid, 0, 1)
    else:
        print ("*********************************************")
        vgrid = np.swapaxes(vgrid, 1, 2)
        vgrid = np.swapaxes(vgrid, 0, 1)
        return vgrid
示例#2
0
def make_mc_mesh_scikit(iobj, RANGE_MIN, RANGE_MAX, STEPSIZE):
    """ Uses Scikit's MC algorithm,which has minor bugs. """
    rng = np.arange(RANGE_MIN, RANGE_MAX, STEPSIZE)
    import mc_utils
    vgrid = mc_utils.make_grid(iobj, rng, old=True)
    verts, faces = vtk_mc(vgrid, (RANGE_MIN, RANGE_MAX, STEPSIZE))
    verts = ((verts) * STEPSIZE + rng[0])
    print("OLD: swapping x,y")
    verts = np.concatenate(
        (verts[:, 1, np.newaxis], verts[:, 0, np.newaxis], verts[:, 2,
                                                                 np.newaxis]),
        axis=1)
    return verts, faces
示例#3
0
def make_mc_values_grid(iobj, RANGE_MIN, RANGE_MAX, STEPSIZE, old=None):
    rng = np.arange(RANGE_MIN, RANGE_MAX, STEPSIZE)
    import mc_utils
    vgrid = mc_utils.make_grid(iobj, rng, old=old)
    assert old is not "unspecified"  # if Unspecified, use old=True in the function call (ont change this function)
    if old == "3":
        return vgrid
    if old:
        return np.swapaxes(vgrid, 0, 1)
    else:
        print("*********************************************")
        vgrid = np.swapaxes(vgrid, 1, 2)
        vgrid = np.swapaxes(vgrid, 0, 1)
        return vgrid
示例#4
0
def make_mc_values_grid_mayavi(iobj, RANGE_MIN, RANGE_MAX, STEPSIZE):
    rng = np.arange(RANGE_MIN, RANGE_MAX, STEPSIZE)
    import mc_utils
    vgrid = mc_utils.make_grid(iobj, rng, old=True)
    return np.swapaxes(vgrid, 0, 1)
示例#5
0
""" Choose the object """
#exname = "bowl_15_holes"  # "blend_example2_discs" "french_fries_vectorized" "cube_example"
#exname = "blend_example2_discs" #
#exname ="ell_example1" #
#exname = "first_csg"
#exname = "bowl_15_holes"
iobj = example_objects.make_example_vectorized(exname)
#iobj = example_objects.make_example_nonvec(exname)

#import vectorized
#iobj = cube1(vectorized)

print("Starting evaluation of implicit on the Grid.")
sys.stdout.flush()
t1s = dtimer()
vgrid = mc_utils.make_grid(iobj, rng, old=True)
#vgrid = mc_utils.make_grid_pointwise(iobj, rng)
assert vgrid.shape == (len(rng), len(rng), len(rng))
t1 = dtimer() - t1s
print('done grid')
sys.stdout.flush()
""" Use the marching cubes: Usually very fast """
t2s = dtimer()
verts, faces = measure.marching_cubes(vgrid, 0)
#print(verts)
#verts = (verts) * STEPSIZE + RANGE_MIN
#verts = (verts) * (rng[1]-rng[0]) + rng[0]
verts = ((verts) * STEPSIZE + rng[0])
verts = np.concatenate(
    (verts[:, 1, np.newaxis], verts[:, 0, np.newaxis], verts[:, 2,
                                                             np.newaxis]),
示例#6
0
#"rdice_vec"  #
#"cube_example" # problem: zero facet areas.  otherwise, it works.
#"ell_example1"  #+
#"bowl_15_holes"  # works too. But too many faces => too slow, too much memory. 32K?
#"french_fries_vectorized"

global STEPSIZE
from example_objects import make_example_vectorized

iobj = make_example_vectorized(objname)
(RANGE_MIN, RANGE_MAX, STEPSIZE) = (-3, +5, 0.2 / 2.)
#STEPSIZE = STEPSIZE / 2.

rng = np.arange(RANGE_MIN, RANGE_MAX, STEPSIZE)
#vgrid = mc_utils.make_grid(iobj, rng, old=old)
gridvals, xyz = mc_utils.make_grid(iobj, rng, old=False, return_xyz=True)
v_xyz = gridvals.ravel()
print "grid size", gridvals.shape, np.prod(gridvals.shape)

#from stl_tests import make_mc_values_grid
#gridvals = make_mc_values_grid(iobj, RANGE_MIN, RANGE_MAX, STEPSIZE, old="3")
verts, facets = vtk_mc(gridvals, (RANGE_MIN, RANGE_MAX, STEPSIZE))
print("MC calculated.")
sys.stdout.flush()

if False:
    import visual5
    visual5.display_simple_using_mayavi_2(
        [(verts, facets), (verts, facets)],
        mayavi_wireframe=[False, True],
        opacity=[0.4, 0.3],