Example #1
0
    def f(dm, data, itt, final=False):

        if final:
            fn = '{:s}_final.2obj'.format(data['prefix'])
        else:
            fn = '{:s}_{:010d}.2obj'.format(data['prefix'], itt)

        vnum = dm.np_get_vertices(verts)
        tnum = dm.np_get_triangles_vertices(tris)

        meta = '\n# procs {:d}\n'+\
          '# vnum {:d}\n'+\
          '# tnum {:d}\n'+\
          '# time {:f}\n'+\
          '# nearl {:f}\n'+\
          '# farl {:f}\n'+\
          '# attract stp {:f}\n'+\
          '# reject stp {:f}\n'+\
          '# triangle stp {:f}\n'+\
          '# size {:d}\n'

        meta = meta.format(data['procs'], vnum, tnum,
                           time() - t0, data['nearl'], data['farl'],
                           data['attract_stp'], data['reject_stp'],
                           data['triangle_stp'], data['size'])
        export_obj('mesh',
                   fn,
                   verts=verts[:vnum, :],
                   faces=tris[:tnum, :],
                   meta=meta)
  def f(df, data, itt, final=False):

    if final:
      fn = '{:s}_final.2obj'.format(data['prefix'])
    else:
      fn = '{:s}_{:010d}.2obj'.format(data['prefix'],itt)

    num = df.np_get_sorted_vert_coordinates(verts)
    meta = '\n# procs {:d}\n# vnum {:d}\n# time {:f}\n# nearl {:f}\n# farl {:f}\n# stp {:f}\n size {:d}'.format(
      data['procs'],
      num,
      time()-t_start,
      data['nearl'],
      data['farl'],
      data['stp'],
      data['size']
    )
    export_obj('line',fn, verts[:num,:], meta=meta)
Example #3
0
  def f(dm, data, itt, final=False):

    if final:
      fn = '{:s}_final.2obj'.format(data['prefix'])
    else:
      fn = '{:s}_{:010d}.2obj'.format(data['prefix'],itt)

    vnum = dm.np_get_vertices(verts)
    tnum = dm.np_get_triangles_vertices(tris)

    meta = '\n# procs {:d}\n'+\
      '# vnum {:d}\n'+\
      '# tnum {:d}\n'+\
      '# time {:f}\n'+\
      '# nearl {:f}\n'+\
      '# farl {:f}\n'+\
      '# attract stp {:f}\n'+\
      '# reject stp {:f}\n'+\
      '# triangle stp {:f}\n'+\
      '# size {:d}\n'
      
    meta = meta.format(
      data['procs'],
      vnum,
      tnum,
      time()-t0,
      data['nearl'],
      data['farl'],
      data['attract_stp'],
      data['reject_stp'],
      data['triangle_stp'],
      data['size']
   )
    export_obj(
      'mesh',
      fn, 
      verts = verts[:vnum,:], 
      faces = tris[:tnum,:], 
      meta = meta
    )
Example #4
0
  def f(dm, data, itt, final=False):

    if final:
      fn = '{:s}_final.2obj'.format(data['prefix'])
    else:
      fn = '{:s}_{:010d}.2obj'.format(data['prefix'],itt)

    vnum = dm.np_get_vert_coordinates(verts)
    enum = dm.np_get_edges(edges)
    linenum = dm.np_get_sorted_verts(line)

    meta = '\n# procs {:d}\n'+\
      '# vnum {:d}\n'+\
      '# enum {:d}\n'+\
      '# time {:f}\n'+\
      '# nearl {:f}\n'+\
      '# farl {:f}\n'+\
      '# stp {:f}\n'+\
      '# size {:d}\n'

    meta = meta.format(
      data['procs'],
      vnum,
      enum,
      time()-t0,
      data['nearl'],
      data['farl'],
      data['stp'],
      data['size']
   )
    export_obj(
      'mesh',
      fn,
      verts = verts[:vnum,:],
      edges = edges[:enum,:],
      lines = [line[:linenum]],
      meta = meta
    )
Example #5
0
def main(args):

    from differentialCloud import DifferentialCloud
    from modules.helpers import print_stats
    from modules.helpers import make_info_str
    from modules.utils import get_initial_cloud
    from dddUtils.ioOBJ import export as export_obj
    from numpy.random import random
    from numpy import array, zeros

    reject = args.reject * args.stp
    attract = args.attract * args.stp
    stat = args.stat
    export = args.export
    out = args.out
    vnum_max = args.vnum
    start_num = args.startNum
    start_rad = args.startRad
    nearl = args.nearl
    midl = args.midl
    farl = args.farl

    np_verts = zeros((args.nmax, 3), 'float')

    DC = DifferentialCloud(nmax=args.nmax,
                           zonewidth=args.farl,
                           nearl=nearl,
                           midl=midl,
                           farl=farl,
                           procs=args.procs)

    xyz, mode = get_initial_cloud(start_num, start_rad)

    DC.init_cloud(xyz, mode)
    DC.init_rules(array([[1.0, 1.0], [1.0, -1.0]], 'double'),
                  array([[nearl, farl], [nearl, farl]], 'double'))

    for i in xrange(args.itt):

        try:

            rnd = (random(size=DC.get_vnum()) < 0.001).nonzero()[0]
            if len(rnd) > 0:
                DC.spawn(rnd)

            DC.optimize_position(reject, attract, nearl * 0.1)

            if i % stat == 0:
                print_stats(i, DC, meta=None)

            if i % export == 0:

                vnum = DC.np_get_vertices(np_verts)
                export_obj(obj_name='cloud',
                           fn='{:s}_{:012d}.obj'.format(out, i),
                           verts=np_verts[:vnum, :],
                           tris=None,
                           meta=make_info_str(args))

            if DC.get_vnum() > vnum_max:
                return

        except KeyboardInterrupt:

            break
Example #6
0
def main(args):

  from differentialCloud import DifferentialCloud
  from modules.helpers import print_stats
  from modules.helpers import make_info_str
  from modules.utils import get_initial_cloud
  from dddUtils.ioOBJ import export as export_obj
  from numpy.random import random
  from numpy import array, zeros

  reject = args.reject*args.stp
  attract = args.attract*args.stp
  stat = args.stat
  export = args.export
  out = args.out
  vnum_max = args.vnum
  start_num = args.startNum
  start_rad = args.startRad
  nearl = args.nearl
  midl = args.midl
  farl = args.farl

  np_verts = zeros((args.nmax, 3), 'float')

  DC = DifferentialCloud(
    nmax = args.nmax,
    zonewidth = args.farl,
    nearl = nearl,
    midl = midl,
    farl = farl,
    procs = args.procs
  )

  xyz, mode = get_initial_cloud(start_num, start_rad)

  DC.init_cloud(xyz, mode)
  DC.init_rules(
    array(
      [
        [1.0,1.0],
        [1.0,-1.0]
      ],
      'double'
    ),
    array(
      [
        [nearl,farl],
        [nearl,farl]
      ],
      'double'
    )
  )

  for i in xrange(args.itt):

    try:

      rnd = (random(size=DC.get_vnum())<0.001).nonzero()[0]
      if len(rnd)>0:
        DC.spawn(rnd)

      DC.optimize_position(
        reject,
        attract,
        nearl*0.1
      )

      if i%stat==0:
        print_stats(i, DC, meta=None)

      if i%export==0:

        vnum = DC.np_get_vertices(np_verts)
        export_obj(
          obj_name = 'cloud',
          fn = '{:s}_{:012d}.obj'.format(out, i),
          verts = np_verts[:vnum,:],
          tris = None,
          meta = make_info_str(args)
        )

      if DC.get_vnum()>vnum_max:
        return

    except KeyboardInterrupt:

      break