def draw_photon(x,y,z,up): gl_save_add("photon",x,-1.0,z,[int(up)]) glLineWidth(3) length=0.9 if up==True: set_color(0.0, 0.0, 1.0,"photon",alpha=0.5) else: set_color(0.0, 1.0, 0.0,"photon",alpha=0.5) wx=np.arange(0, length , 0.025) wy=np.sin(wx*3.14159*8)*0.2 start_y=y+length stop_y=y glBegin(GL_LINES) for i in range(1,len(wx)): glVertex3f(x, start_y-wx[i-1], z+wy[i-1]) glVertex3f(x, start_y-wx[i], z+wy[i]) glEnd() if up==False: glBegin(GL_TRIANGLES) glVertex3f(x-0.1, stop_y,z) glVertex3f(x+0.1, stop_y ,z) glVertex3f(x,stop_y-0.1 ,z) glEnd() else: glBegin(GL_TRIANGLES) glVertex3f(x-0.1, start_y,z) glVertex3f(x+0.1, start_y ,z) glVertex3f(x,start_y+0.1 ,z) glEnd()
def box(x, y, z, w, h, d, r, g, b, alpha): gl_save_add("box", x, y, z, [w, h, d, r, g, b, alpha]) red = r green = g blue = b #btm set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x + 0.0, y + 0.0, z + 0.0) glVertex3f(x + w, y + 0.0, z + 0.0) glVertex3f(x + w, y + 0.0, z + d) glVertex3f(x + 0.0, y + 0.0, z + d) glEnd() #back red = red * 0.95 green = green * 0.95 blue = blue * 0.95 set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x + 0.0, y + h, z + 0.0) glVertex3f(x + w, y + h, z + 0.0) glVertex3f(x + w, y + h, z + d) glVertex3f(x + 0.0, y + h, z + d) glEnd() #right red = red * 0.95 green = green * 0.95 blue = blue * 0.95 set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x + w, y, z) glVertex3f(x + w, y + h, z) glVertex3f(x + w, y + h, z + d) glVertex3f(x + w, y, z + d) glEnd() #left red = red * 0.95 green = green * 0.95 blue = blue * 0.95 set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x, y, z) glVertex3f(x, y + h, z) glVertex3f(x, y + h, z + d) glVertex3f(x, y, z + d) glEnd() #front red = r green = g blue = b set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x, y, z + d) glVertex3f(x + w, y, z + d) glVertex3f(x + w, y + h, z + d) glVertex3f(x, y + h, z + d) glEnd() red = red * 0.8 green = green * 0.8 blue = blue * 0.8 #top set_color(red, green, blue, "box_lines", alpha=alpha) glBegin(GL_QUADS) glVertex3f(x, y + h, z) glVertex3f(x + w, y + h, z) glVertex3f(x + w, y + h, z + d) glVertex3f(x, y + h, z + d) glEnd()