Ejemplo n.º 1
0
 def draw(self):
     Vector.draw(self)
     ColorMixin.draw(self)
     vb = context.application.vis_backend
     if self.length > self.rest_length:
         l_cyl = self.rest_length
         l_cone = 0.5 * (self.length - l_cyl)
         if l_cone > 0:
             vb.draw_cone(self.radius, 0.0, l_cone, self.quality)
             vb.translate(0.0, 0.0, l_cone)
         if l_cyl > 0:
             vb.draw_cone(0.5 * self.radius, 0.5 * self.radius, l_cyl,
                          self.quality)
             vb.translate(0.0, 0.0, l_cyl)
         if l_cone > 0:
             vb.draw_cone(0.0, self.radius, l_cone, self.quality)
     else:
         l_cyl = self.length
         l_cone = 0.5 * (self.rest_length - self.length)
         if l_cone > 0:
             vb.translate(0.0, 0.0, -l_cone)
             vb.draw_cone(0.0, self.radius, l_cone, self.quality)
             vb.translate(0.0, 0.0, l_cone)
         if l_cyl > 0:
             vb.draw_cylinder(0.5 * self.radius, l_cyl, self.quality)
             vb.translate(0.0, 0.0, l_cyl)
         if l_cone > 0:
             vb.draw_cone(self.radius, 0.0, l_cone, self.quality)
Ejemplo n.º 2
0
 def draw(self):
     Vector.draw(self)
     ColorMixin.draw(self)
     vb = context.application.vis_backend
     if self.length > self.rest_length:
         l_cyl = self.rest_length
         l_cone = 0.5*(self.length - l_cyl)
         if l_cone > 0:
             vb.draw_cone(self.radius, 0.0, l_cone, self.quality)
             vb.translate(0.0, 0.0, l_cone)
         if l_cyl > 0:
             vb.draw_cone(0.5*self.radius, 0.5*self.radius, l_cyl, self.quality)
             vb.translate(0.0, 0.0, l_cyl)
         if l_cone > 0:
             vb.draw_cone(0.0, self.radius, l_cone, self.quality)
     else:
         l_cyl = self.length
         l_cone = 0.5*(self.rest_length - self.length)
         if l_cone > 0:
             vb.translate(0.0, 0.0, -l_cone)
             vb.draw_cone(0.0, self.radius, l_cone, self.quality)
             vb.translate(0.0, 0.0, l_cone)
         if l_cyl > 0:
             vb.draw_cylinder(0.5*self.radius, l_cyl, self.quality)
             vb.translate(0.0, 0.0, l_cyl)
         if l_cone > 0:
             vb.draw_cone(self.radius, 0.0, l_cone, self.quality)
Ejemplo n.º 3
0
    def draw(self):
        Vector.draw(self)
        if self.length <= 0: return
        half_length = 0.5 * (self.end_position - self.begin_position)
        if half_length <= 0: return
        half_radius = 0.5 * (self.begin_radius + self.end_radius)

        begin = self.children[0].target
        end = self.children[1].target

        vb = context.application.vis_backend
        vb.set_color(*begin.get_color())
        vb.translate(0.0, 0.0, self.begin_position)
        vb.draw_cone(self.begin_radius, half_radius, half_length, self.quality)
        vb.translate(0.0, 0.0, half_length)
        vb.set_color(*end.get_color())
        vb.draw_cone(half_radius, self.end_radius, half_length, self.quality)
Ejemplo n.º 4
0
    def draw(self):
        Vector.draw(self)
        if self.length <= 0: return
        half_length = 0.5 * (self.end_position - self.begin_position)
        if half_length <= 0: return
        half_radius = 0.5 * (self.begin_radius + self.end_radius)

        begin = self.children[0].target
        end = self.children[1].target

        vb = context.application.vis_backend
        vb.set_color(*begin.get_color())
        vb.translate(0.0, 0.0, self.begin_position)
        vb.draw_cone(self.begin_radius, half_radius, half_length, self.quality)
        vb.translate(0.0, 0.0, half_length)
        vb.set_color(*end.get_color())
        vb.draw_cone(half_radius, self.end_radius, half_length, self.quality)
Ejemplo n.º 5
0
 def draw(self):
     Vector.draw(self)
     ColorMixin.draw(self)
     vb = context.application.vis_backend
     if self.length == 0.0: return
     # usefull variable
     if self.arrow_radius <= 0:
         arrowtop_length = self.arrow_length
     else:
         arrowtop_length = self.arrow_length / self.arrow_radius * self.radius
     # stick and bottom
     if (self.length - arrowtop_length > 0) and (self.radius > 0):
         vb.draw_cylinder(self.radius, self.length - arrowtop_length,
                          self.quality)
         vb.set_quadric_inside()
         vb.draw_disk(self.radius, self.quality)
     # arrowtop
     if (self.radius > 0):
         if (arrowtop_length > 0):
             vb.push_matrix()
             vb.translate(0.0, 0.0, self.length - arrowtop_length)
             vb.set_quadric_outside()
             vb.draw_cone(self.radius, 0, arrowtop_length, self.quality)
             vb.pop_matrix()
         else:
             vb.push_matrix()
             vb.translate(0.0, 0.0, self.length)
             vb.set_quadric_outside()
             vb.draw_disk(self.radius, self.quality)
             vb.pop_matrix()
     # arrow
     if (self.arrow_radius - self.radius >
             0) and (self.arrow_length - arrowtop_length) > 0:
         vb.push_matrix()
         vb.translate(0.0, 0.0, (self.length - self.arrow_length) *
                      (self.arrow_position))
         vb.set_quadric_outside()
         vb.draw_cone(self.arrow_radius, self.radius,
                      self.arrow_length - arrowtop_length, self.quality)
         vb.set_quadric_inside()
         vb.draw_disk(self.arrow_radius, self.quality)
         vb.pop_matrix()
     vb.set_quadric_outside()
Ejemplo n.º 6
0
 def draw(self):
     Vector.draw(self)
     ColorMixin.draw(self)
     vb = context.application.vis_backend
     if self.length == 0.0:
         return
     # usefull variable
     if self.arrow_radius <= 0:
         arrowtop_length = self.arrow_length
     else:
         arrowtop_length = self.arrow_length / self.arrow_radius * self.radius
     # stick and bottom
     if (self.length - arrowtop_length > 0) and (self.radius > 0):
         vb.draw_cylinder(self.radius, self.length - arrowtop_length, self.quality)
         vb.set_quadric_inside()
         vb.draw_disk(self.radius, self.quality)
     # arrowtop
     if self.radius > 0:
         if arrowtop_length > 0:
             vb.push_matrix()
             vb.translate(0.0, 0.0, self.length - arrowtop_length)
             vb.set_quadric_outside()
             vb.draw_cone(self.radius, 0, arrowtop_length, self.quality)
             vb.pop_matrix()
         else:
             vb.push_matrix()
             vb.translate(0.0, 0.0, self.length)
             vb.set_quadric_outside()
             vb.draw_disk(self.radius, self.quality)
             vb.pop_matrix()
     # arrow
     if (self.arrow_radius - self.radius > 0) and (self.arrow_length - arrowtop_length) > 0:
         vb.push_matrix()
         vb.translate(0.0, 0.0, (self.length - self.arrow_length) * (self.arrow_position))
         vb.set_quadric_outside()
         vb.draw_cone(self.arrow_radius, self.radius, self.arrow_length - arrowtop_length, self.quality)
         vb.set_quadric_inside()
         vb.draw_disk(self.arrow_radius, self.quality)
         vb.pop_matrix()
     vb.set_quadric_outside()