mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #13087 from jj-umn/neper_datatypes
Add Neper and Gmsh datatypes
This commit is contained in:
@@ -886,6 +886,19 @@
|
||||
<datatype extension="npz" type="galaxy.datatypes.binary:Npz" display_in_upload="true"/>
|
||||
<datatype extension="hexrd.images.npz" type="galaxy.datatypes.binary:HexrdImagesNpz" display_in_upload="true"/>
|
||||
<datatype extension="hexrd.eta_ome.npz" type="galaxy.datatypes.binary:HexrdEtaOmeNpz" display_in_upload="true"/>
|
||||
<datatype extension="hexrd.scored_orientations.npz" type="galaxy.datatypes.binary:Npz" subclass="true" display_in_upload="true"/>
|
||||
<datatype extension="hexrd.accepted_orientations" type="galaxy.datatypes.tabular:Tabular" mimetype="application/text" subclass="true" display_in_upload="true" />
|
||||
<datatype extension="hexrd.yml" type="galaxy.datatypes.text:Yaml" subclass="true" display_in_upload="true"/>
|
||||
<datatype extension="neper.tess" type="galaxy.datatypes.constructive_solid_geometry:NeperTess" display_in_upload="true"/>
|
||||
<datatype extension="neper.tesr" type="galaxy.datatypes.constructive_solid_geometry:NeperTesr" display_in_upload="true"/>
|
||||
<datatype extension="neper.points" type="galaxy.datatypes.constructive_solid_geometry:NeperPoints" display_in_upload="true"/>
|
||||
<datatype extension="neper.points.tsv" type="galaxy.datatypes.constructive_solid_geometry:NeperPointsTabular" display_in_upload="true"/>
|
||||
<datatype extension="neper.mscell" type="galaxy.datatypes.constructive_solid_geometry:NeperMultiScaleCell" display_in_upload="true"/>
|
||||
<datatype extension="gmsh.msh" type="galaxy.datatypes.constructive_solid_geometry:GmshMsh" display_in_upload="true"/>
|
||||
<datatype extension="gmsh.geo" type="galaxy.datatypes.constructive_solid_geometry:GmshGeo" display_in_upload="true"/>
|
||||
<datatype extension="zset.geof" type="galaxy.datatypes.constructive_solid_geometry:ZsetGeof" display_in_upload="true"/>
|
||||
<!-- Povray script -->
|
||||
<datatype extension="pov" type="galaxy.datatypes.text:Text" subclass="true" display_in_upload="true"/>
|
||||
<!-- End Structural Materials datatypes -->
|
||||
</registration>
|
||||
<sniffers>
|
||||
@@ -915,6 +928,9 @@
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:PlyBinary"/>
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:VtkAscii"/>
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:VtkBinary"/>
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:NeperTess"/>
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:NeperTesr"/>
|
||||
<sniffer type="galaxy.datatypes.constructive_solid_geometry:GmshMsh"/>
|
||||
<sniffer type="galaxy.datatypes.goldenpath:GoldenPath"/>
|
||||
<sniffer type="galaxy.datatypes.interval:ScIdx"/>
|
||||
<sniffer type="galaxy.datatypes.tabular:Vcf"/>
|
||||
|
||||
@@ -17,6 +17,7 @@ from galaxy.datatypes.sniff import (
|
||||
build_sniff_from_prefix,
|
||||
FilePrefix,
|
||||
)
|
||||
from galaxy.datatypes.tabular import Tabular
|
||||
|
||||
MAX_HEADER_LINES = 500
|
||||
MAX_LINE_LEN = 2000
|
||||
@@ -492,6 +493,277 @@ class STL(data.Data):
|
||||
file_ext = "stl"
|
||||
|
||||
|
||||
@build_sniff_from_prefix
|
||||
class NeperTess(data.Text):
|
||||
"""
|
||||
Neper Tessellation File
|
||||
***tess
|
||||
**format
|
||||
format
|
||||
**general
|
||||
dim type
|
||||
**cell
|
||||
number_of_cells
|
||||
"""
|
||||
file_ext = "neper.tess"
|
||||
MetadataElement(name="format", default=None, desc="format", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="dimension", default=None, desc="dimension", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="cells", default=None, desc="cells", readonly=True, visible=True, no_value=None)
|
||||
|
||||
def __init__(self, **kwd):
|
||||
data.Text.__init__(self, **kwd)
|
||||
|
||||
def sniff_prefix(self, file_prefix: FilePrefix):
|
||||
"""
|
||||
Neper tess format startswith:***tess
|
||||
>>> from galaxy.datatypes.sniff import get_test_fname
|
||||
>>> fname = get_test_fname('test.neper.tess')
|
||||
>>> NeperTess().sniff(fname)
|
||||
True
|
||||
>>> fname = get_test_fname('test.neper.tesr')
|
||||
>>> NeperTess().sniff(fname)
|
||||
False
|
||||
"""
|
||||
return file_prefix.text_io(errors='ignore').readline(10).startswith('***tess')
|
||||
|
||||
def set_meta(self, dataset, **kwd):
|
||||
if dataset.has_data():
|
||||
with open(dataset.file_name, errors='ignore') as fh:
|
||||
for i, line in enumerate(fh):
|
||||
line = line.strip()
|
||||
if not line or i > 6:
|
||||
break
|
||||
if i == 0 and not line.startswith('***tess'):
|
||||
break
|
||||
if i == 2:
|
||||
dataset.metadata.format = line
|
||||
if i == 4:
|
||||
dataset.metadata.dimension = int(line.split()[0])
|
||||
if i == 6:
|
||||
dataset.metadata.cells = int(line)
|
||||
|
||||
def set_peek(self, dataset):
|
||||
if not dataset.dataset.purged:
|
||||
dataset.peek = get_file_peek(dataset.file_name, LINE_COUNT=7)
|
||||
dataset.blurb = f'format: {str(dataset.metadata.format)} dim: {str(dataset.metadata.dimension)} cells: {str(dataset.metadata.cells)}'
|
||||
else:
|
||||
dataset.peek = 'File does not exist'
|
||||
dataset.blurb = 'File purged from disc'
|
||||
|
||||
|
||||
@build_sniff_from_prefix
|
||||
class NeperTesr(Binary):
|
||||
"""
|
||||
Neper Raster Tessellation File
|
||||
***tesr
|
||||
**format
|
||||
format
|
||||
**general
|
||||
dimension
|
||||
size_x size_y [size_z]
|
||||
voxsize_x voxsize_y [voxsize_z]
|
||||
[*origin
|
||||
origin_x origin_y [origin_z]]
|
||||
[*hasvoid has_void]
|
||||
[**cell
|
||||
number_of_cells
|
||||
"""
|
||||
file_ext = "neper.tesr"
|
||||
MetadataElement(name="format", default=None, desc="format", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="dimension", default=None, desc="dimension", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="size", default=[], desc="size", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="voxsize", default=[], desc="voxsize", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="origin", default=[], desc="origin", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="cells", default=None, desc="cells", readonly=True, visible=True, no_value=None)
|
||||
|
||||
def __init__(self, **kwd):
|
||||
Binary.__init__(self, **kwd)
|
||||
|
||||
def sniff_prefix(self, file_prefix: FilePrefix):
|
||||
"""
|
||||
Neper tesr format startswith:***tesr
|
||||
>>> from galaxy.datatypes.sniff import get_test_fname
|
||||
>>> fname = get_test_fname('test.neper.tesr')
|
||||
>>> NeperTesr().sniff(fname)
|
||||
True
|
||||
>>> fname = get_test_fname('test.neper.tess')
|
||||
>>> NeperTesr().sniff(fname)
|
||||
False
|
||||
"""
|
||||
return file_prefix.text_io(errors='ignore').readline(10).startswith('***tesr')
|
||||
|
||||
def set_meta(self, dataset, **kwd):
|
||||
if dataset.has_data():
|
||||
with open(dataset.file_name, errors='ignore') as fh:
|
||||
field = ''
|
||||
for i, line in enumerate(fh):
|
||||
line = line.strip()
|
||||
if not line or i > 12:
|
||||
break
|
||||
if i == 0 and not line.startswith('***tesr'):
|
||||
break
|
||||
if line.startswith('*'):
|
||||
field = line
|
||||
continue
|
||||
if i == 2:
|
||||
dataset.metadata.format = line.split()[0]
|
||||
continue
|
||||
if i == 4:
|
||||
dataset.metadata.dimension = line.split()[0]
|
||||
continue
|
||||
if i == 5:
|
||||
dataset.metadata.size = line.split()
|
||||
continue
|
||||
if i == 6:
|
||||
dataset.metadata.voxsize = line.split()
|
||||
continue
|
||||
if field.startswith('*origin'):
|
||||
dataset.metadata.origin = line.split()
|
||||
continue
|
||||
if field.startswith('**cell'):
|
||||
dataset.metadata.cells = int(line)
|
||||
break
|
||||
|
||||
def set_peek(self, dataset):
|
||||
if not dataset.dataset.purged:
|
||||
dataset.peek = get_file_peek(dataset.file_name, LINE_COUNT=9)
|
||||
dataset.blurb = f'format: {str(dataset.metadata.format)} dim: {str(dataset.metadata.dimension)} cells: {str(dataset.metadata.cells)}'
|
||||
else:
|
||||
dataset.peek = 'File does not exist'
|
||||
dataset.blurb = 'File purged from disc'
|
||||
|
||||
|
||||
class NeperPoints(data.Text):
|
||||
"""
|
||||
Neper Position File
|
||||
Neper position format has 1 - 3 floats per line separated by white space.
|
||||
"""
|
||||
file_ext = "neper.points"
|
||||
MetadataElement(name="dimension", default=None, desc="dimension", readonly=True, visible=True, no_value=None)
|
||||
|
||||
def __init__(self, **kwd):
|
||||
data.Text.__init__(self, **kwd)
|
||||
|
||||
def set_meta(self, dataset, **kwd):
|
||||
data.Text.set_meta(self, dataset, **kwd)
|
||||
if dataset.has_data():
|
||||
with open(dataset.file_name, errors='ignore') as fh:
|
||||
dataset.metadata.dimension = self._get_dimension(fh)
|
||||
|
||||
def _get_dimension(self, fh, maxlines=100, sep=None):
|
||||
dim = None
|
||||
try:
|
||||
for i, line in enumerate(fh):
|
||||
if not line:
|
||||
break
|
||||
pts = len([float(x) for x in line.strip().split(sep=sep)])
|
||||
if dim is not None and pts != dim:
|
||||
return None
|
||||
elif 1 <= pts <= 3:
|
||||
dim = pts
|
||||
else:
|
||||
return None
|
||||
if i > maxlines:
|
||||
break
|
||||
except Exception:
|
||||
return None
|
||||
return dim
|
||||
|
||||
def set_peek(self, dataset):
|
||||
data.Text.set_peek(self, dataset)
|
||||
if not dataset.dataset.purged:
|
||||
dataset.blurb += f' dim: {str(dataset.metadata.dimension)}'
|
||||
|
||||
|
||||
class NeperPointsTabular(NeperPoints, Tabular):
|
||||
"""
|
||||
Neper Position File
|
||||
Neper position format has 1 - 3 floats per line separated by TABs.
|
||||
"""
|
||||
file_ext = "neper.points.tsv"
|
||||
|
||||
def __init__(self, **kwd):
|
||||
Tabular.__init__(self, **kwd)
|
||||
|
||||
def set_meta(self, dataset, **kwd):
|
||||
Tabular.set_meta(self, dataset, **kwd)
|
||||
if dataset.has_data():
|
||||
with open(dataset.file_name, errors='ignore') as fh:
|
||||
dataset.metadata.dimension = self._get_dimension(fh)
|
||||
|
||||
def set_peek(self, dataset):
|
||||
Tabular.set_peek(self, dataset)
|
||||
if not dataset.dataset.purged:
|
||||
dataset.blurb += f' dim: {str(dataset.metadata.dimension)}'
|
||||
|
||||
|
||||
class NeperMultiScaleCell(data.Text):
|
||||
"""
|
||||
Neper Multiscale Cell File
|
||||
"""
|
||||
file_ext = "neper.mscell"
|
||||
|
||||
|
||||
@build_sniff_from_prefix
|
||||
class GmshMsh(Binary):
|
||||
"""Gmsh Mesh File"""
|
||||
file_ext = "gmsh.msh"
|
||||
MetadataElement(name="version", default=None, desc="version", readonly=True, visible=True, no_value=None)
|
||||
MetadataElement(name="format", default=None, desc="format", readonly=True, visible=True, no_value=None)
|
||||
|
||||
def __init__(self, **kwd):
|
||||
Binary.__init__(self, **kwd)
|
||||
|
||||
def sniff_prefix(self, file_prefix: FilePrefix):
|
||||
"""
|
||||
Gmsh msh format startswith:$MeshFormat
|
||||
>>> from galaxy.datatypes.sniff import get_test_fname
|
||||
>>> fname = get_test_fname('test.gmsh.msh')
|
||||
>>> GmshMsh().sniff(fname)
|
||||
True
|
||||
>>> fname = get_test_fname('test.neper.tesr')
|
||||
>>> GmshMsh().sniff(fname)
|
||||
False
|
||||
"""
|
||||
return file_prefix.text_io(errors='ignore').readline().startswith('$MeshFormat')
|
||||
|
||||
def set_meta(self, dataset, **kwd):
|
||||
if dataset.has_data():
|
||||
with open(dataset.file_name, errors='ignore') as fh:
|
||||
for i, line in enumerate(fh):
|
||||
line = line.strip()
|
||||
if not line or i > 1:
|
||||
break
|
||||
if i == 0 and not line.startswith('$MeshFormat'):
|
||||
break
|
||||
if i == 1:
|
||||
fields = line.split()
|
||||
if len(fields) > 0:
|
||||
dataset.metadata.version = fields[0]
|
||||
if len(fields) > 1:
|
||||
dataset.metadata.format = 'ASCII' if fields[1] == '0' else 'binary'
|
||||
|
||||
def set_peek(self, dataset):
|
||||
if not dataset.dataset.purged:
|
||||
dataset.peek = get_file_peek(dataset.file_name, LINE_COUNT=3)
|
||||
dataset.blurb = f'Gmsh verion: {str(dataset.metadata.version)} {str(dataset.metadata.format)}'
|
||||
else:
|
||||
dataset.peek = 'File does not exist'
|
||||
dataset.blurb = 'File purged from disc'
|
||||
|
||||
|
||||
class GmshGeo(data.Text):
|
||||
"""Gmsh geometry File"""
|
||||
file_ext = "gmsh.geo"
|
||||
|
||||
|
||||
class ZsetGeof(data.Text):
|
||||
"""
|
||||
Z-set geof File
|
||||
"""
|
||||
file_ext = "zset.geof"
|
||||
|
||||
|
||||
# Utility functions
|
||||
def get_next_line(fh):
|
||||
line = fh.readline(MAX_LINE_LEN)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,554 @@
|
||||
***tess
|
||||
**format
|
||||
3.4
|
||||
**general
|
||||
3 standard
|
||||
**cell
|
||||
10
|
||||
*id
|
||||
1 2 3 4 5 6 7 8 9 10
|
||||
*mode
|
||||
1 1 1 1 1 1 1 1 1 1
|
||||
*crysym
|
||||
triclinic
|
||||
*seed
|
||||
1 0.327544505352 0.059994859404 0.520245461924 0.000000000000
|
||||
2 0.463746603421 0.352810469826 0.017266972293 0.000000000000
|
||||
3 0.140016493288 0.914894611083 0.371457357317 0.000000000000
|
||||
4 0.348110723967 0.898568807683 0.620980766206 0.000000000000
|
||||
5 0.228136020208 0.772531206470 0.776879102353 0.000000000000
|
||||
6 0.747908502360 0.481969104081 0.987303741555 0.000000000000
|
||||
7 0.064469931529 0.184636624118 0.753216233629 0.000000000000
|
||||
8 0.799042535648 0.691676427394 0.041937630353 0.000000000000
|
||||
9 0.979422516210 0.597123611043 0.274389313947 0.000000000000
|
||||
10 0.621418434654 0.502629860059 0.490413780382 0.000000000000
|
||||
*ori
|
||||
rodrigues:active
|
||||
0.919953402851 1.412193625247 -0.358468593221
|
||||
-1.381019825878 0.030115972514 -3.318384436434
|
||||
0.540501980937 -0.787561454202 -0.735523888182
|
||||
-2.005448934444 0.199749071961 -1.999283218069
|
||||
5.163148738562 14.893183177083 5.316486583072
|
||||
1.919036671923 -0.744035465279 0.303477757891
|
||||
-0.581246451853 -2.835847764762 0.780360761158
|
||||
-2.211174665124 0.445317073444 0.934247527182
|
||||
-2.194677973955 -0.312638828364 -0.439479476190
|
||||
1.153229166270 -1.695620636026 0.825414393959
|
||||
**vertex
|
||||
54
|
||||
1 0.000000000000 0.000000000000 0.480836332398 0
|
||||
2 0.459755416589 0.000000000000 1.000000000000 0
|
||||
3 0.000000000000 0.000000000000 0.041458869036 0
|
||||
4 0.000000000000 0.393293813046 0.270420087688 0
|
||||
5 0.875164741475 0.000000000000 0.278445691339 0
|
||||
6 0.913900420561 0.000000000000 0.660033507666 0
|
||||
7 0.434151598161 0.327663532237 0.795784363147 0
|
||||
8 0.484257319426 0.051714829787 1.000000000000 0
|
||||
9 0.536170248205 0.000000000000 1.000000000000 0
|
||||
10 0.178728872392 0.472579545895 0.429825098041 0
|
||||
11 0.186998765476 0.462472809438 0.361331160813 0
|
||||
12 0.029093767212 0.415649197792 0.291312905140 0
|
||||
13 0.000000000000 0.000000000000 0.000000000000 0
|
||||
14 1.000000000000 0.000000000000 0.000000000000 0
|
||||
15 1.000000000000 0.040784654316 0.000000000000 0
|
||||
16 1.000000000000 0.000000000000 0.038752863502 0
|
||||
17 0.881546611618 0.000000000000 0.276318991687 0
|
||||
18 0.722421690362 0.420035938944 0.196343791871 0
|
||||
19 0.893965115199 0.264594293597 0.000000000000 0
|
||||
20 0.000000000000 0.582459991209 0.000000000000 0
|
||||
21 0.434001108634 0.704989536248 0.202228280672 0
|
||||
22 0.362001661576 0.790953398456 0.000000000000 0
|
||||
23 0.000000000000 0.409696248986 0.274168254683 0
|
||||
24 0.000000000000 1.000000000000 0.000000000000 0
|
||||
25 0.000000000000 1.000000000000 0.669057750529 0
|
||||
26 0.059688233947 1.000000000000 0.656084349367 0
|
||||
27 0.257144028346 0.573870922957 0.463532029818 0
|
||||
28 0.554516962647 1.000000000000 0.243413634122 0
|
||||
29 0.432807668780 1.000000000000 0.000000000000 0
|
||||
30 0.503947601476 0.807076535216 0.272964215305 0
|
||||
31 0.000000000000 0.529822736073 0.503955515921 0
|
||||
32 0.181969901270 0.481439284558 0.447414063030 0
|
||||
33 0.506581420832 1.000000000000 1.000000000000 0
|
||||
34 0.691298725730 1.000000000000 1.000000000000 0
|
||||
35 0.557938786910 0.677531596182 0.778820222491 0
|
||||
36 0.599315620615 0.911726674895 1.000000000000 0
|
||||
37 0.938983996879 1.000000000000 0.729681107085 0
|
||||
38 0.759779567980 1.000000000000 0.403262586233 0
|
||||
39 0.716230778682 0.911385466158 0.401010832367 0
|
||||
40 0.893253728733 0.933628833647 0.704109823681 0
|
||||
41 0.000000000000 1.000000000000 1.000000000000 0
|
||||
42 0.000000000000 0.509856851268 1.000000000000 0
|
||||
43 0.324207734950 0.419599493076 1.000000000000 0
|
||||
44 0.394789918890 0.407632437561 0.809129530152 0
|
||||
45 1.000000000000 1.000000000000 1.000000000000 0
|
||||
46 1.000000000000 0.000000000000 1.000000000000 0
|
||||
47 1.000000000000 0.000000000000 0.638115693897 0
|
||||
48 1.000000000000 1.000000000000 0.749495630742 0
|
||||
49 1.000000000000 0.418074474013 0.655499290595 0
|
||||
50 0.000000000000 0.000000000000 1.000000000000 0
|
||||
51 1.000000000000 1.000000000000 0.000000000000 0
|
||||
52 1.000000000000 0.466878807137 0.000000000000 0
|
||||
53 1.000000000000 1.000000000000 0.216854141310 0
|
||||
54 1.000000000000 0.000000000000 0.472624517697 0
|
||||
**edge
|
||||
104
|
||||
1 1 4 0
|
||||
2 4 3 0
|
||||
3 3 1 0
|
||||
4 2 1 0
|
||||
5 3 5 0
|
||||
6 5 6 0
|
||||
7 6 9 0
|
||||
8 9 2 0
|
||||
9 9 8 0
|
||||
10 8 2 0
|
||||
11 8 7 0
|
||||
12 7 10 0
|
||||
13 10 12 0
|
||||
14 12 4 0
|
||||
15 6 7 0
|
||||
16 10 11 0
|
||||
17 11 5 0
|
||||
18 12 11 0
|
||||
19 20 13 0
|
||||
20 13 3 0
|
||||
21 4 23 0
|
||||
22 23 20 0
|
||||
23 14 15 0
|
||||
24 15 16 0
|
||||
25 16 14 0
|
||||
26 13 14 0
|
||||
27 16 17 0
|
||||
28 17 5 0
|
||||
29 19 15 0
|
||||
30 20 22 0
|
||||
31 22 19 0
|
||||
32 19 18 0
|
||||
33 18 21 0
|
||||
34 21 22 0
|
||||
35 18 17 0
|
||||
36 11 21 0
|
||||
37 23 12 0
|
||||
38 25 24 0
|
||||
39 24 20 0
|
||||
40 23 31 0
|
||||
41 31 25 0
|
||||
42 25 26 0
|
||||
43 26 28 0
|
||||
44 28 29 0
|
||||
45 29 24 0
|
||||
46 29 22 0
|
||||
47 27 26 0
|
||||
48 28 30 0
|
||||
49 30 27 0
|
||||
50 27 32 0
|
||||
51 32 31 0
|
||||
52 30 21 0
|
||||
53 10 32 0
|
||||
54 26 33 0
|
||||
55 33 34 0
|
||||
56 34 37 0
|
||||
57 37 38 0
|
||||
58 38 28 0
|
||||
59 33 36 0
|
||||
60 36 34 0
|
||||
61 36 35 0
|
||||
62 35 27 0
|
||||
63 30 39 0
|
||||
64 39 40 0
|
||||
65 40 35 0
|
||||
66 37 40 0
|
||||
67 38 39 0
|
||||
68 41 25 0
|
||||
69 31 42 0
|
||||
70 42 41 0
|
||||
71 41 33 0
|
||||
72 42 43 0
|
||||
73 43 36 0
|
||||
74 35 44 0
|
||||
75 44 32 0
|
||||
76 44 43 0
|
||||
77 45 46 0
|
||||
78 46 47 0
|
||||
79 47 49 0
|
||||
80 49 48 0
|
||||
81 48 45 0
|
||||
82 46 9 0
|
||||
83 6 47 0
|
||||
84 34 45 0
|
||||
85 48 37 0
|
||||
86 43 8 0
|
||||
87 40 49 0
|
||||
88 7 44 0
|
||||
89 1 50 0
|
||||
90 50 42 0
|
||||
91 2 50 0
|
||||
92 51 53 0
|
||||
93 53 52 0
|
||||
94 52 51 0
|
||||
95 38 53 0
|
||||
96 51 29 0
|
||||
97 52 19 0
|
||||
98 39 18 0
|
||||
99 54 16 0
|
||||
100 15 52 0
|
||||
101 53 48 0
|
||||
102 49 54 0
|
||||
103 54 17 0
|
||||
104 47 54 0
|
||||
**face
|
||||
61
|
||||
1 3 1 4 3
|
||||
3 1 2 3
|
||||
-0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
2 6 2 1 3 5 6 9
|
||||
6 4 -3 5 6 7 8
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
3 3 2 9 8
|
||||
3 -8 9 10
|
||||
1.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
4 7 4 1 2 8 7 10 12
|
||||
7 -1 -4 -10 11 12 13 14
|
||||
0.300442488685 -0.705572283092 0.334292186508 0.624833167631
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
5 5 5 6 7 10 11
|
||||
5 6 15 12 16 17
|
||||
-0.467695692146 -0.552244809489 -0.831795056441 0.056059383454
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
6 5 5 3 4 12 11
|
||||
5 -5 -2 -14 18 17
|
||||
-0.034886941962 0.227866161825 0.489880627504 -0.841483204283
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
7 4 6 7 8 9
|
||||
4 15 -11 -9 -7
|
||||
0.914832210268 0.555369095370 0.557496494002 0.617059824558
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
8 3 10 11 12
|
||||
3 16 -18 -13
|
||||
0.345285599308 -0.211231867867 0.962960516662 -0.167595171018
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
9 5 20 13 3 4 23
|
||||
5 19 20 -2 21 22
|
||||
-0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
10 3 14 15 16
|
||||
3 23 24 25
|
||||
1.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
11 6 5 3 13 14 16 17
|
||||
6 -5 -20 26 -25 27 28
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
12 6 19 15 14 13 20 22
|
||||
6 29 -23 -26 -19 30 31
|
||||
-0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
13 4 19 18 21 22
|
||||
4 32 33 34 31
|
||||
-0.815765410684 -0.702412445749 -0.709891302455 -0.051682634953
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
14 5 18 17 5 11 21
|
||||
5 35 28 -17 36 -33
|
||||
-0.517979265874 -0.302781935910 -0.287702658471 -0.908597974681
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
15 5 15 16 17 18 19
|
||||
5 24 27 -35 -32 29
|
||||
-0.839845283175 -0.823924868388 -0.390353064261 -0.410819055637
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
16 6 11 21 22 20 23 12
|
||||
6 36 34 -30 -22 37 18
|
||||
0.442991428156 -0.438037191933 0.760552544110 0.479252799815
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
17 3 4 23 12
|
||||
3 21 37 14
|
||||
-0.155588822692 0.467534003571 0.196923579349 -0.861761602418
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
18 5 25 24 20 23 31
|
||||
5 38 39 -22 40 41
|
||||
-0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
19 5 24 25 26 28 29
|
||||
5 -38 42 43 44 45
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
20 4 20 24 29 22
|
||||
4 -39 -45 46 -30
|
||||
-0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
21 4 27 26 28 30
|
||||
4 47 43 48 49
|
||||
-0.491222355882 -0.639664443247 0.050184168529 -0.767014308390
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
22 5 25 26 27 32 31
|
||||
5 42 -47 50 51 41
|
||||
-0.293838048690 -0.200895656461 0.324561316039 -0.924283986308
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
23 6 32 27 30 21 11 10
|
||||
6 -50 -49 52 -36 -16 53
|
||||
0.089408366042 -0.746507035661 0.639296418956 -0.184464995100
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
24 5 28 29 22 21 30
|
||||
5 44 46 -34 -52 -48
|
||||
-0.080548699790 -0.856004364012 0.289936553464 0.428010892102
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
25 5 23 31 32 10 12
|
||||
5 40 -51 -53 13 -37
|
||||
0.235072380998 0.091297098608 0.882507871872 -0.461350946537
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
26 6 28 26 33 34 37 38
|
||||
6 -43 54 55 56 57 58
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
27 3 33 36 34
|
||||
3 59 60 -55
|
||||
1.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
28 5 27 26 33 36 35
|
||||
5 47 54 59 61 62
|
||||
0.132328968179 0.513521001698 0.539471681932 -0.667282912421
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
29 5 35 27 30 39 40
|
||||
5 62 -49 63 64 65
|
||||
-0.436220465541 0.548248903249 -0.794244308886 -0.261914333110
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
30 5 35 36 34 37 40
|
||||
5 -61 60 56 66 65
|
||||
-0.330655282038 -0.584668344774 0.609239651399 -0.535714451720
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
31 4 30 28 38 39
|
||||
4 -48 -58 67 -63
|
||||
-0.128246066435 0.591371407615 -0.271327582102 -0.759382118203
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
32 4 37 38 39 40
|
||||
4 57 67 64 -66
|
||||
-0.049242274036 -0.808610618789 0.386103649545 0.443928867038
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
33 4 41 25 31 42
|
||||
4 68 -41 69 70
|
||||
-0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
34 4 41 33 26 25
|
||||
4 71 -54 -42 -68
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
35 5 33 41 42 43 36
|
||||
5 -71 -70 72 73 -59
|
||||
1.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
36 4 32 27 35 44
|
||||
4 -50 -62 74 75
|
||||
-0.335270307546 0.706834854544 -0.485085709209 -0.514855652705
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
37 5 42 31 32 44 43
|
||||
5 -69 -51 -75 76 -72
|
||||
-0.529555782417 -0.267993188777 -0.962641345323 -0.038746497190
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
38 4 35 36 43 44
|
||||
4 -61 -73 -76 -74
|
||||
0.406959121050 0.822997514593 -0.460070312131 0.333182230724
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
39 5 45 46 47 49 48
|
||||
5 77 78 79 80 81
|
||||
1.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
40 4 47 46 9 6
|
||||
4 -78 82 -7 83
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
41 4 34 45 48 37
|
||||
4 84 -81 85 -56
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
42 7 9 46 45 34 36 43 8
|
||||
7 -82 -77 -84 -60 -73 86 -9
|
||||
1.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
43 7 35 40 49 47 6 7 44
|
||||
7 -65 87 -79 -83 15 88 -74
|
||||
-0.864387718982 -0.246495705924 0.040262351994 -0.968307187814
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
44 4 48 49 40 37
|
||||
4 -80 -87 -66 -85
|
||||
-0.247452814827 0.305283427860 0.151847233927 -0.940076829957
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
45 4 7 44 43 8
|
||||
4 88 76 86 11
|
||||
0.742979242927 0.874844169514 0.380604194151 0.299646669366
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
46 6 1 50 42 31 23 4
|
||||
6 89 90 -69 -40 -21 -1
|
||||
-0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
47 3 50 1 2
|
||||
3 -89 -4 91
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
48 5 42 50 2 8 43
|
||||
5 -90 -91 -10 -86 -72
|
||||
1.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
49 4 7 44 32 10
|
||||
4 88 75 -53 -12
|
||||
-0.197464110080 -0.803570863072 -0.458803816910 0.379174004397
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
50 3 51 53 52
|
||||
3 92 93 94
|
||||
1.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
51 5 38 53 51 29 28
|
||||
5 95 -92 96 -44 -58
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
52 5 51 52 19 22 29
|
||||
5 -94 97 -31 -46 -96
|
||||
-0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
53 6 18 19 52 53 38 39
|
||||
6 -32 -97 -93 -95 67 98
|
||||
0.440821706178 0.583662425984 -0.305948176749 0.752152833963
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
54 4 39 18 21 30
|
||||
4 98 33 -52 63
|
||||
0.230982614539 0.342842483473 0.364889642084 -0.865629586270
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
55 7 54 16 15 52 53 48 49
|
||||
7 99 -24 100 -93 101 -80 102
|
||||
1.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
56 3 54 17 16
|
||||
3 103 -27 -99
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
57 4 48 53 38 37
|
||||
4 -101 -95 -57 -85
|
||||
1.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
58 3 52 15 19
|
||||
3 -100 -29 -97
|
||||
-0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
59 6 18 17 54 49 40 39
|
||||
6 35 -103 -102 -87 -64 98
|
||||
-0.596968354412 -0.835140336199 -0.220431964412 0.503934884603
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
60 3 54 49 47
|
||||
3 -102 -79 104
|
||||
1.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
61 5 17 54 47 6 5
|
||||
5 -103 -104 -83 -6 -28
|
||||
-0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
0 0 0.000000000000 0.000000000000 0.000000000000
|
||||
**polyhedron
|
||||
10
|
||||
1 8 1 2 3 4 -5 6 7 8
|
||||
2 10 9 10 11 12 -13 -14 -6 -15 16 -17
|
||||
3 10 18 19 20 -21 -22 -23 -16 -24 -25 -8
|
||||
4 8 26 27 -28 21 29 -30 31 -32
|
||||
5 8 33 34 35 28 22 36 37 38
|
||||
6 10 39 40 41 42 43 -38 30 -7 44 -45
|
||||
7 9 46 47 48 -4 -37 -49 45 25 17
|
||||
8 8 50 51 52 53 13 -54 -31 24
|
||||
9 9 55 56 57 58 -53 59 15 -44 32
|
||||
10 11 60 61 -59 -29 -43 54 14 5 -36 23 49
|
||||
**domain
|
||||
*general
|
||||
cube
|
||||
*vertex
|
||||
8
|
||||
1 0.000000000000 0.000000000000 0.000000000000 x0y0z0
|
||||
1 13
|
||||
2 1.000000000000 0.000000000000 0.000000000000 x1y0z0
|
||||
1 14
|
||||
3 1.000000000000 1.000000000000 0.000000000000 x1y1z0
|
||||
1 51
|
||||
4 0.000000000000 1.000000000000 0.000000000000 x0y1z0
|
||||
1 24
|
||||
5 0.000000000000 0.000000000000 1.000000000000 x0y0z1
|
||||
1 50
|
||||
6 0.000000000000 1.000000000000 1.000000000000 x0y1z1
|
||||
1 41
|
||||
7 1.000000000000 1.000000000000 1.000000000000 x1y1z1
|
||||
1 45
|
||||
8 1.000000000000 0.000000000000 1.000000000000 x1y0z1
|
||||
1 46
|
||||
*edge
|
||||
12
|
||||
1 2 4 6
|
||||
x0y1
|
||||
2 38 68
|
||||
2 2 6 5
|
||||
x0z1
|
||||
2 70 90
|
||||
3 2 5 1
|
||||
x0y0
|
||||
3 3 20 89
|
||||
4 2 1 4
|
||||
x0z0
|
||||
2 19 39
|
||||
5 2 2 8
|
||||
x1y0
|
||||
4 25 78 99 104
|
||||
6 2 8 7
|
||||
x1z1
|
||||
1 77
|
||||
7 2 7 3
|
||||
x1y1
|
||||
3 81 92 101
|
||||
8 2 3 2
|
||||
x1z0
|
||||
3 23 94 100
|
||||
9 2 5 8
|
||||
y0z1
|
||||
3 8 82 91
|
||||
10 2 2 1
|
||||
y0z0
|
||||
1 26
|
||||
11 2 4 3
|
||||
y1z0
|
||||
2 45 96
|
||||
12 2 7 6
|
||||
y1z1
|
||||
3 55 71 84
|
||||
*face
|
||||
6
|
||||
1 4 4 6 5 1
|
||||
4 1 2 3 4
|
||||
plane
|
||||
4 0.000000000000 1.000000000000 0.000000000000 0.000000000000
|
||||
x0
|
||||
5 1 9 18 33 46
|
||||
2 4 2 8 7 3
|
||||
4 5 6 7 8
|
||||
plane
|
||||
4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000
|
||||
x1
|
||||
5 10 39 50 55 60
|
||||
3 4 1 5 8 2
|
||||
4 3 9 5 10
|
||||
plane
|
||||
4 0.000000000000 0.000000000000 1.000000000000 0.000000000000
|
||||
y0
|
||||
6 2 11 40 47 56 61
|
||||
4 4 4 3 7 6
|
||||
4 11 7 12 1
|
||||
plane
|
||||
4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000
|
||||
y1
|
||||
6 19 26 34 41 51 57
|
||||
5 4 1 2 3 4
|
||||
4 10 8 11 4
|
||||
plane
|
||||
4 0.000000000000 0.000000000000 0.000000000000 1.000000000000
|
||||
z0
|
||||
4 12 20 52 58
|
||||
6 4 5 6 7 8
|
||||
4 2 12 6 9
|
||||
plane
|
||||
4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000
|
||||
z1
|
||||
5 3 27 35 42 48
|
||||
***end
|
||||
Reference in New Issue
Block a user