mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-25 21:40:33 +05:00
75 lines
1.6 KiB
Python
75 lines
1.6 KiB
Python
from netgen.csg import *
|
|
import netgen.meshing as meshing
|
|
import libvisual
|
|
|
|
from OpenGL.GLUT import *
|
|
|
|
# import Window class from other file
|
|
from opengl_window import Window
|
|
|
|
sp1 = Sphere (Pnt(0,0,0), 0.2)
|
|
sp2 = Sphere (Pnt(0.5,0,0), 0.2)
|
|
all = sp1+sp2
|
|
|
|
geom = CSGeometry()
|
|
geom.Add (all)
|
|
|
|
param = meshing.MeshingParameters()
|
|
param.maxh = 0.1
|
|
m1 = GenerateMesh (geom, param)
|
|
|
|
vis = VS(geom)
|
|
|
|
|
|
# window callback functions
|
|
def mydraw():
|
|
vis.Draw()
|
|
glutSwapBuffers()
|
|
|
|
def mymouse(xold, yold, x, y, mode):
|
|
MouseMove(vis,xold,yold, x,y, mode)
|
|
|
|
# init glut and create window
|
|
glutInit("mainwin")
|
|
win_geom = Window( name=b"ngs", drawfunc=mydraw, mousefunc=mymouse)
|
|
|
|
###########################################
|
|
# press ctrl+c to break loop
|
|
while(True):
|
|
for i in range(10000):
|
|
glutMainLoopEvent()
|
|
print('press ctrl+c to create second window!')
|
|
|
|
###########################################
|
|
# create second window (transformation matrices are shared)
|
|
vismesh = libvisual.meshvis.VS(m1)
|
|
def mydraw2():
|
|
vismesh.Draw()
|
|
glutSwapBuffers()
|
|
|
|
win_mesh = Window( name=b"ngs2", drawfunc=mydraw2, mousefunc=mymouse)
|
|
|
|
###########################################
|
|
# press ctrl+c to break loop
|
|
try:
|
|
while(True):
|
|
for i in range(10000):
|
|
glutMainLoopEvent()
|
|
print('press ctrl+c to hide/destroy first window!')
|
|
except:
|
|
pass
|
|
|
|
###########################################
|
|
|
|
## BREAKS (on numericus) as soon as mouse touches remaining window ("Error of failed request: GLXBadContextTag")
|
|
# glutDestroyWindow(win_geom.handle)
|
|
|
|
## WORKS
|
|
glutHideWindow(win_geom.handle)
|
|
|
|
try:
|
|
while(True):
|
|
glutMainLoopEvent()
|
|
except:
|
|
pass
|