Skip to content

Commit 53a5187

Browse files
committed
more geode objects
1 parent cbf667c commit 53a5187

28 files changed

+1286
-374
lines changed

requirements.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
opengeode-core==15.30.2
1+
opengeode-core==15.30.3
22
opengeode-io==7.4.6
33
opengeode-inspector==6.8.6
4-
opengeode-geosciences==9.5.4
4+
opengeode-geosciences==9.5.5
55
opengeode-geosciencesio==5.8.6
66
geode-common==33.11.3
77
geode-viewables==3.3.2

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ markupsafe>=3
3131
# flask
3232
# jinja2
3333
# werkzeug
34-
opengeode-core==15.30.2
34+
opengeode-core==15.30.3
3535
# via
3636
# -r requirements.in
3737
# geode-common
@@ -40,7 +40,7 @@ opengeode-core==15.30.2
4040
# opengeode-geosciencesio
4141
# opengeode-inspector
4242
# opengeode-io
43-
opengeode-geosciences==9.5.4
43+
opengeode-geosciences==9.5.5
4444
# via
4545
# -r requirements.in
4646
# geode-viewables

src/opengeodeweb_back/geode_objects/__init__.py

Lines changed: 53 additions & 326 deletions
Large diffs are not rendered by default.

src/opengeodeweb_back/geode_objects/geode_brep.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,24 +79,24 @@ def mesh_components(self) -> ComponentRegistry:
7979
def inspect(self) -> og_inspector.BRepInspectionResult:
8080
return og_inspector.inspect_brep(self.brep)
8181

82-
# def assign_crs(
83-
# self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo3D
84-
# ) -> None:
85-
# builder = self.builder()
86-
# og_geosciences.assign_brep_geographic_coordinate_system_info(
87-
# self.brep, builder, crs_name, info
88-
# )
89-
90-
# def convert_crs(
91-
# self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo3D
92-
# ) -> None:
93-
# builder = self.builder()
94-
# og_geosciences.convert_brep_coordinate_reference_system(
95-
# self.brep, builder, crs_name, info
96-
# )
97-
98-
# def create_crs(
99-
# self, crs_name: str, input: og.CoordinateSystem2D, output: og.CoordinateSystem2D
100-
# ) -> None:
101-
# builder = self.builder()
102-
# og.create_brep_coordinate_system(self.brep, builder, crs_name, input, output)
82+
def assign_crs(
83+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
84+
) -> None:
85+
builder = self.builder()
86+
og_geosciences.assign_brep_geographic_coordinate_system_info(
87+
self.brep, builder, crs_name, info
88+
)
89+
90+
def convert_crs(
91+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
92+
) -> None:
93+
builder = self.builder()
94+
og_geosciences.convert_brep_coordinate_reference_system(
95+
self.brep, builder, crs_name, info
96+
)
97+
98+
def create_crs(
99+
self, crs_name: str, input: og.CoordinateSystem2D, output: og.CoordinateSystem2D
100+
) -> None:
101+
builder = self.builder()
102+
og.create_brep_coordinate_system(self.brep, builder, crs_name, input, output)

src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
# Third party imports
55
import opengeode as og
6+
import opengeode_geosciences as og_geosciences
67
import opengeode_inspector as og_inspector
78
import geode_viewables as viewables
89

@@ -78,3 +79,27 @@ def save_light_viewable(self, filename_without_extension: str) -> str:
7879

7980
def inspect(self) -> og_inspector.EdgedCurveInspectionResult:
8081
return og_inspector.inspect_edged_curve2D(self.edged_curve)
82+
83+
def assign_crs(
84+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
85+
) -> None:
86+
builder = self.builder()
87+
og_geosciences.assign_edged_curve_geographic_coordinate_system_info2D(
88+
self.edged_curve, builder, crs_name, info
89+
)
90+
91+
def convert_crs(
92+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
93+
) -> None:
94+
builder = self.builder()
95+
og_geosciences.convert_edged_curve_coordinate_reference_system2D(
96+
self.edged_curve, builder, crs_name, info
97+
)
98+
99+
def create_crs(
100+
self, crs_name: str, input: og.CoordinateSystem2D, output: og.CoordinateSystem2D
101+
) -> None:
102+
builder = self.builder()
103+
og.create_edged_curve_coordinate_system2D(
104+
self.edged_curve, builder, crs_name, input, output
105+
)

src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
# Third party imports
55
import opengeode as og
6+
import opengeode_geosciences as og_geosciences
67
import opengeode_inspector as og_inspector
78
import geode_viewables as viewables
89

@@ -27,7 +28,7 @@ def native_extension(self) -> str:
2728

2829
@classmethod
2930
def is_3D(cls) -> bool:
30-
return False
31+
return True
3132

3233
@classmethod
3334
def is_viewable(cls) -> bool:
@@ -78,3 +79,27 @@ def save_light_viewable(self, filename_without_extension: str) -> str:
7879

7980
def inspect(self) -> og_inspector.EdgedCurveInspectionResult:
8081
return og_inspector.inspect_edged_curve3D(self.edged_curve)
82+
83+
def assign_crs(
84+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
85+
) -> None:
86+
builder = self.builder()
87+
og_geosciences.assign_edged_curve_geographic_coordinate_system_info3D(
88+
self.edged_curve, builder, crs_name, info
89+
)
90+
91+
def convert_crs(
92+
self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
93+
) -> None:
94+
builder = self.builder()
95+
og_geosciences.convert_edged_curve_coordinate_reference_system3D(
96+
self.edged_curve, builder, crs_name, info
97+
)
98+
99+
def create_crs(
100+
self, crs_name: str, input: og.CoordinateSystem2D, output: og.CoordinateSystem2D
101+
) -> None:
102+
builder = self.builder()
103+
og.create_edged_curve_coordinate_system3D(
104+
self.edged_curve, builder, crs_name, input, output
105+
)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Standard library imports
2+
from __future__ import annotations
3+
4+
# Third party imports
5+
import opengeode as og
6+
import geode_viewables as viewables
7+
8+
# Local application imports
9+
from .types import GeodeMeshType
10+
from .geode_mesh import GeodeMesh
11+
12+
13+
class GeodeGrid2D(GeodeMesh):
14+
@classmethod
15+
def is_3D(cls) -> bool:
16+
return False
17+
18+
@classmethod
19+
def is_viewable(cls) -> bool:
20+
return True
21+
22+
def builder(self) -> None:
23+
return None
24+
25+
def inspect(self) -> None:
26+
return None
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Standard library imports
2+
from __future__ import annotations
3+
4+
# Third party imports
5+
import opengeode as og
6+
import geode_viewables as viewables
7+
8+
# Local application imports
9+
from .types import GeodeMeshType
10+
from .geode_mesh import GeodeMesh
11+
12+
13+
class GeodeGrid3D(GeodeMesh):
14+
@classmethod
15+
def is_3D(cls) -> bool:
16+
return True
17+
18+
@classmethod
19+
def is_viewable(cls) -> bool:
20+
return True
21+
22+
def builder(self) -> None:
23+
return None
24+
25+
def inspect(self) -> None:
26+
return None
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Standard library imports
2+
from __future__ import annotations
3+
4+
# Third party imports
5+
import opengeode as og
6+
import opengeode_inspector as og_inspector
7+
import geode_viewables as viewables
8+
9+
# Local application imports
10+
from .types import GeodeMeshType
11+
from .geode_solid_mesh3d import GeodeSolidMesh3D
12+
13+
14+
class GeodeHybridSolid3D(GeodeSolidMesh3D):
15+
hybrid_solid: og.HybridSolid3D
16+
17+
def __init__(self, hybrid_solid: og.HybridSolid3D | None = None) -> None:
18+
self.hybrid_solid = (
19+
hybrid_solid if hybrid_solid is not None else og.HybridSolid3D()
20+
)
21+
super().__init__(self.hybrid_solid)
22+
23+
@classmethod
24+
def geode_mesh_type(cls) -> GeodeMeshType:
25+
return "HybridSolid3D"
26+
27+
def native_extension(self) -> str:
28+
return self.hybrid_solid.native_extension()
29+
30+
def builder(self) -> og.HybridSolidBuilder3D:
31+
return og.HybridSolidBuilder3D(self.hybrid_solid)
32+
33+
@classmethod
34+
def load_mesh(cls, filename: str) -> GeodeHybridSolid3D:
35+
return GeodeHybridSolid3D(og.load_hybrid_solid3D(filename))
36+
37+
@classmethod
38+
def additional_files(cls, filename: str) -> og.AdditionalFiles:
39+
return og.hybrid_solid_additional_files3D(filename)
40+
41+
@classmethod
42+
def is_loadable(cls, filename: str) -> og.Percentage:
43+
return og.is_hybrid_solid_loadable3D(filename)
44+
45+
@classmethod
46+
def input_extensions(cls) -> list[str]:
47+
return og.HybridSolidInputFactory3D.list_creators()
48+
49+
@classmethod
50+
def output_extensions(cls) -> list[str]:
51+
return og.HybridSolidOutputFactory3D.list_creators()
52+
53+
@classmethod
54+
def object_priority(cls, filename: str) -> int:
55+
return og.hybrid_solid_object_priority3D(filename)
56+
57+
def is_saveable(self, filename: str) -> bool:
58+
return og.is_hybrid_solid_saveable3D(self.hybrid_solid, filename)
59+
60+
def save(self, filename: str) -> list[str]:
61+
return og.save_hybrid_solid3D(self.hybrid_solid, filename)
62+
63+
def save_viewable(self, filename_without_extension: str) -> str:
64+
return viewables.save_viewable_hybrid_solid3D(
65+
self.hybrid_solid, filename_without_extension
66+
)
67+
68+
def save_light_viewable(self, filename_without_extension: str) -> str:
69+
return viewables.save_light_viewable_hybrid_solid3D(
70+
self.hybrid_solid, filename_without_extension
71+
)
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Standard library imports
2+
from __future__ import annotations
3+
4+
# Third party imports
5+
import opengeode as og
6+
import opengeode_inspector as og_inspector
7+
import geode_viewables as viewables
8+
9+
# Local application imports
10+
from .types import GeodeMeshType
11+
from .geode_grid2d import GeodeGrid2D
12+
13+
14+
class GeodeLightRegularGrid2D(GeodeGrid2D):
15+
light_regular_grid: og.LightRegularGrid2D
16+
17+
def __init__(self, light_regular_grid: og.LightRegularGrid2D) -> None:
18+
self.light_regular_grid = light_regular_grid
19+
super().__init__(self.light_regular_grid)
20+
21+
@classmethod
22+
def geode_mesh_type(cls) -> GeodeMeshType:
23+
return "LightRegularGrid2D"
24+
25+
def native_extension(self) -> str:
26+
return self.light_regular_grid.native_extension()
27+
28+
@classmethod
29+
def load_mesh(cls, filename: str) -> GeodeLightRegularGrid2D:
30+
return GeodeLightRegularGrid2D(og.load_light_regular_grid2D(filename))
31+
32+
@classmethod
33+
def additional_files(cls, filename: str) -> og.AdditionalFiles:
34+
return og.light_regular_grid_additional_files2D(filename)
35+
36+
@classmethod
37+
def is_loadable(cls, filename: str) -> og.Percentage:
38+
return og.is_light_regular_grid_loadable2D(filename)
39+
40+
@classmethod
41+
def input_extensions(cls) -> list[str]:
42+
return og.LightRegularGridInputFactory2D.list_creators()
43+
44+
@classmethod
45+
def output_extensions(cls) -> list[str]:
46+
return og.LightRegularGridOutputFactory2D.list_creators()
47+
48+
@classmethod
49+
def object_priority(cls, filename: str) -> int:
50+
return og.light_regular_grid_object_priority2D(filename)
51+
52+
def is_saveable(self, filename: str) -> bool:
53+
return og.is_light_regular_grid_saveable2D(self.light_regular_grid, filename)
54+
55+
def save(self, filename: str) -> list[str]:
56+
return og.save_light_regular_grid2D(self.light_regular_grid, filename)
57+
58+
def save_viewable(self, filename_without_extension: str) -> str:
59+
return viewables.save_viewable_light_regular_grid2D(
60+
self.light_regular_grid, filename_without_extension
61+
)
62+
63+
def save_light_viewable(self, filename_without_extension: str) -> str:
64+
return viewables.save_light_viewable_light_regular_grid2D(
65+
self.light_regular_grid, filename_without_extension
66+
)

0 commit comments

Comments
 (0)