Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:28

0001 #!/usr/bin/env python
0002 
0003 import os, numpy as np, textwrap
0004 from opticks.ana.fold import Fold
0005 SIZE = np.array([1280, 720])
0006 
0007 try:
0008     import pyvista as pv
0009 except ImportError:
0010     pv = None
0011 pass
0012 
0013 
0014 def csg():
0015     f = Fold.Load(symbol="f")
0016     print(repr(f))
0017 
0018     #snd = f.csg.node
0019     sn = f._csg.sn
0020 
0021     EXPR = list(filter(None, textwrap.dedent(r"""
0022     #snd[:,:11]
0023     sn
0024     #np.all( snd[:,:11] == sn )
0025     """).split("\n")))
0026 
0027     for expr in EXPR:
0028         print(expr)
0029         if expr[0] == "#": continue
0030         print(eval(expr))
0031     pass
0032 
0033 
0034 
0035 if __name__ == '__main__':
0036 
0037     a = Fold.Load("$FOLD", symbol="f")
0038     print(repr(a))
0039     title = os.environ.get("TITLE", "U4Mesh_test.sh")
0040 
0041     pl = pv.Plotter(window_size=SIZE*2)
0042     pl.add_text(title, position="upper_left")
0043 
0044     colors = ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black', 'pink']
0045 
0046     legend_labels = []
0047 
0048     for i, name in enumerate(sorted(a.names)):
0049         f = getattr(a, name)
0050         color = colors[i % len(colors)]
0051         offset = np.array([i*200,0,0], dtype=np.float32)
0052         pd = pv.PolyData(f.vtx + offset, f.tpd)   # tri and/or quad
0053         pl.add_mesh(pd, opacity=1.0, color=color, show_edges=True, lighting=True, name=name )
0054         legend_labels.append([name, color])
0055     pass
0056     pl.add_legend(legend_labels)
0057     pl.show()
0058     pass
0059 pass
0060 
0061 
0062 
0063 
0064 
0065 
0066 
0067 pass