File indexing completed on 2026-04-10 07:50:28
0001
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
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)
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