示例#1
0
def inflorescence(g, vid, turtle):
    """ HT: inflorescence
    Box (may change)
    
    parameters:
    -----------
    g: is a current MTG
    vid: vertex id in the mtg
    turtle: openalea.pltgl.turtle
    
    return:
    ----------
    for each HT in mtg return an object compose of cylender and a blue box. 
    Shape of the box is dependent of the number of total flower and number of open flowers.
    """

    t = colors_turtle(turtle)
    nid = g.node(vid)
    order = nid.order
    nb_flower = nid.FLWRNUMBER
    nb_flower_open = nid.FLWRNUMBER_OPEN

    t.setColor(2 + order)
    turtle.F(0.2)
    if nb_flower is None:
        nb_flower = 0.5
    if nb_flower_open is None or nb_flower_open == 0:
        nb_flower_open = 0.5

    cube = pgl.Box(0.05 * pgl.Vector3(1, 1, nb_flower_open / 4.))
    tap = pgl.Tapered(3. / 20 * nb_flower, 3. / 20 * nb_flower_open, cube)
    turtle.customGeometry(tap)
示例#2
0
def inflorescence(g, vid, turtle):
    """Generates the inflorescences

    HT: inflorescence
    Box (may change)
    for each HT in mtg return an object compose of cylender and a blue box. 
    Shape of the box is dependent of the number of total flower and number of open flowers.

    :param g: MTG
    :type g: MTG
    :param vid: vid selected
    :type vid: int
    :param turtle: Turtle
    :type turtle: Turtle
    :return: for each HT in mtg return an object compose of cylender and a blue box. 
    :rtype: [type]
    """    
    t = colors_turtle(turtle)
    nid = g.node(vid)
    order = nid.order
    nb_flower = nid.FLWRNUMBER
    nb_flower_open = nid.FLWRNUMBER_OPEN

    t.setColor(2+order)
    turtle.F(0.2)
    if nb_flower is None:
        nb_flower = 0.5
    if nb_flower_open is None or nb_flower_open == 0:
        nb_flower_open = 0.5

    cube = pgl.Box(0.05*pgl.Vector3(1,1,nb_flower_open/4.))
    tap = pgl.Tapered(3./20*nb_flower, 3./20*nb_flower_open, cube)
    turtle.customGeometry(tap)
示例#3
0
def test_scene():
    ds = pgl.Sphere()
    t = pgl.Tapered(1., 1., ds)
    t2 = pgl.Translated(0., 0., 1., ds)
    sc = pgl.Scene([
        pgl.Shape(t, pgl.Material((255, 0, 0))),
        pgl.Shape(t2, pgl.Material((0, 255, 0)))
    ])
    jsonconversion(sc)
示例#4
0
文件: symbol.py 项目: rbarillot/adel
    def _mesh(self, length, diameter_base, diameter_top):
        if self.seed is not None or classic:
            solid = True
            slices = 3
            diameter = diameter_base
            stem = pgl.Tapered(diameter_base / 2., diameter_top / 2.,
                               pgl.Cylinder(1., length, solid, slices))
            stem.apply(self.tessel)
            mesh = self.tessel.triangulation
        else:
            mesh = slim_cylinder(length, diameter_base / 2., diameter_top / 2.)

        return mesh
示例#5
0
def StemElement_mesh(length, diameter_base, diameter_top, classic=False):
    """ Compute mesh for a stem element
        - classic indicates
    """
    if classic:
        solid = True
        diameter = diameter_base
        slices = 6  # 6 is the minimal number of slices for a correct computation of star (percentage error lower than 5)
        stem = pgl.Tapered(diameter_base / 2., diameter_top / 2.,
                           pgl.Cylinder(1., length, solid, slices))
        tessel = pgl.Tesselator()
        stem.apply(tessel)
        mesh = tessel.triangulation
    else:
        mesh = slim_cylinder(length, diameter_base / 2., diameter_top / 2.)

    return mesh
def Inflorescence(g, vid, turtle):
    """ HT: Inflorescence
    Box (may change)
    """
    t = turtle
    nid = g.node(vid)
    order = nid.order
    #turtle.setColor(3)
    nb_flower = nid.Fleurs_total
    nb_flower_open = nid.Fleurs_ouverte

    t.setColor(2 + order)
    turtle.F(0.2)
    if nb_flower is None:
        nb_flower = 0.5
    if nb_flower_open is None or nb_flower_open == 0:
        nb_flower_open = 0.5

    cube = pgl.Box(0.05 * pgl.Vector3(1, 1, nb_flower_open / 4.))
    tap = pgl.Tapered(3. / 20 * nb_flower, 3. / 20 * nb_flower_open, cube)
    turtle.customGeometry(tap)
示例#7
0
def leafB( x, y, z, color=color( 30, 210, 40 ) ):
  v = pgl.Vector3( x, y, z )
  s = pgl.Sphere( 0.4, 5, 5 )
  ts = pgl.Tapered( 1.0, 0.3, s )
  tr = pgl.Translated( v, ts )
  return pgl.Shape( tr, color )
示例#8
0
def tapCyl(x,y,z,radius,height, color=color(46,27,21)):
  v = pgl.Vector3( x, y, z )
  c = pgl.Cylinder(radius, height, 10)
  tc = pgl.Tapered(1.0,0.7,c)
  tr = pgl.Translated(v,tc)
  return pgl.Shape(tr,color)
示例#9
0
def test_tapered():
    ds = pgl.Sphere()
    t = pgl.Tapered(1., 1., ds)
    jsonconversion(t)