Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,3 @@ werkzeug==3.1.2
# flask
# flask-cors

opengeodeweb-microservice==1.*,>=1.0.13
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import opengeode as og

# Local application imports
from .types import GeodeMeshType
from .types import GeodeMeshType, ViewerElementsType
from .geode_vertex_set import GeodeVertexSet


Expand All @@ -20,6 +20,10 @@ def __init__(self, graph: og.Graph | None = None) -> None:
def geode_object_type(cls) -> GeodeMeshType:
return "Graph"

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "edges"

def native_extension(self) -> str:
return self.graph.native_extension()

Expand Down
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects/geode_grid2d.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

# Local application imports
from .geode_mesh import GeodeMesh
from .types import ViewerElementsType


class GeodeGrid2D(GeodeMesh):
Expand All @@ -18,6 +19,10 @@ def is_3D(cls) -> bool:
def is_viewable(cls) -> bool:
return True

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polygons"

def builder(self) -> object:
return None

Expand Down
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects/geode_grid3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

# Local application imports
from .geode_mesh import GeodeMesh
from .types import ViewerElementsType


class GeodeGrid3D(GeodeMesh):
Expand All @@ -18,6 +19,10 @@ def is_3D(cls) -> bool:
def is_viewable(cls) -> bool:
return True

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polyhedra"

def builder(self) -> object:
return None

Expand Down
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import opengeode as og

# Local application imports
from .types import ViewerType
from .types import ViewerType, ViewerElementsType
from .geode_object import GeodeObject

ComponentRegistry = dict[og.ComponentType, list[og.uuid]]
Expand All @@ -17,5 +17,9 @@ class GeodeModel(GeodeObject):
def viewer_type(cls) -> ViewerType:
return "model"

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "default"

@abstractmethod
def mesh_components(self) -> ComponentRegistry: ...
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_object.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import opengeode as og

# Local application imports
from .types import GeodeObjectType, ViewerType
from .types import GeodeObjectType, ViewerType, ViewerElementsType


class GeodeObject(ABC):
Expand All @@ -24,6 +24,10 @@ def geode_object_type(cls) -> GeodeObjectType: ...
@abstractmethod
def viewer_type(cls) -> ViewerType: ...

@classmethod
@abstractmethod
def viewer_elements_type(cls) -> ViewerElementsType: ...

@classmethod
@abstractmethod
def is_3D(cls) -> bool: ...
Expand Down
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_raster_image2d.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import geode_viewables as viewables

# Local application imports
from .types import GeodeMeshType
from .types import GeodeMeshType, ViewerElementsType
from .geode_mesh import GeodeMesh


Expand All @@ -21,6 +21,10 @@ def __init__(self, raster_image: og.RasterImage2D) -> None:
def geode_object_type(cls) -> GeodeMeshType:
return "RasterImage2D"

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polygons"

def native_extension(self) -> str:
return self.raster_image.native_extension()

Expand Down
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_raster_image3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import geode_viewables as viewables

# Local application imports
from .types import GeodeMeshType
from .types import GeodeMeshType, ViewerElementsType
from .geode_mesh import GeodeMesh


Expand All @@ -21,6 +21,10 @@ def __init__(self, raster_image: og.RasterImage3D) -> None:
def geode_object_type(cls) -> GeodeMeshType:
return "RasterImage3D"

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polyhedra"

def native_extension(self) -> str:
return self.raster_image.native_extension()

Expand Down
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

# Local application imports
from .geode_vertex_set import GeodeVertexSet
from .types import ViewerElementsType


class GeodeSolidMesh3D(GeodeVertexSet):
Expand All @@ -25,6 +26,10 @@ def is_3D(cls) -> bool:
def is_viewable(cls) -> bool:
return True

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polyhedra"

def builder(self) -> og.SolidMeshBuilder3D:
return og.SolidMeshBuilder3D.create(self.solid_mesh)

Expand Down
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

# Local application imports
from .geode_vertex_set import GeodeVertexSet
from .types import ViewerElementsType


class GeodeSurfaceMesh2D(GeodeVertexSet):
Expand All @@ -27,6 +28,10 @@ def is_3D(cls) -> bool:
def is_viewable(cls) -> bool:
return True

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polygons"

def builder(self) -> og.SurfaceMeshBuilder2D:
return og.SurfaceMeshBuilder2D.create(self.surface_mesh)

Expand Down
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

# Local application imports
from .geode_vertex_set import GeodeVertexSet
from .types import ViewerElementsType


class GeodeSurfaceMesh3D(GeodeVertexSet):
Expand All @@ -27,6 +28,10 @@ def is_3D(cls) -> bool:
def is_viewable(cls) -> bool:
return True

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "polygons"

def builder(self) -> og.SurfaceMeshBuilder3D:
return og.SurfaceMeshBuilder3D.create(self.surface_mesh)

Expand Down
6 changes: 5 additions & 1 deletion src/opengeodeweb_back/geode_objects/geode_vertex_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import opengeode as og

# Local application imports
from .types import GeodeMeshType
from .types import GeodeMeshType, ViewerElementsType
from .geode_mesh import GeodeMesh


Expand All @@ -22,6 +22,10 @@ def __init__(self, vertex_set: og.VertexSet | None = None) -> None:
def geode_object_type(cls) -> GeodeMeshType:
return "VertexSet"

@classmethod
def viewer_elements_type(cls) -> ViewerElementsType:
return "points"

def native_extension(self) -> str:
return self.vertex_set.native_extension()

Expand Down
2 changes: 2 additions & 0 deletions src/opengeodeweb_back/geode_objects/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,5 @@ def geode_object_type(value: str) -> GeodeObjectType:


ViewerType = Literal["mesh", "model"]

ViewerElementsType = Literal["points", "edges", "polygons", "polyhedra", "default"]
2 changes: 2 additions & 0 deletions src/opengeodeweb_back/utils_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ def generate_native_viewable_and_light_viewable_from_object(
data = Data.create(
geode_object=geode_object.geode_object_type(),
viewer_object=geode_object.viewer_type(),
viewer_elements_type=geode_object.viewer_elements_type(),
)
data_path = create_data_folder_from_id(data.id)
return save_all_viewables_and_return_info(geode_object, data, data_path)
Expand All @@ -249,6 +250,7 @@ def generate_native_viewable_and_light_viewable_from_file(
data = Data.create(
geode_object=geode_object_type,
viewer_object=generic_geode_object.viewer_type(),
viewer_elements_type=generic_geode_object.viewer_elements_type(),
input_file=input_file,
)

Expand Down
4 changes: 3 additions & 1 deletion tests/test_models_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ def test_export_project_route(client: FlaskClient, tmp_path: Path) -> None:
id="test_data_1",
geode_object="BRep",
viewer_object="BRep",
viewer_elements_type="default",
input_file="test_native.txt",
native_file="test_native.txt",
additional_files=[],
Expand All @@ -69,6 +70,7 @@ def test_export_project_route(client: FlaskClient, tmp_path: Path) -> None:
id="test_data_2",
geode_object="Section",
viewer_object="Section",
viewer_elements_type="default",
input_file="test_input.txt",
native_file="test_native2.txt",
additional_files=[],
Expand Down Expand Up @@ -129,7 +131,7 @@ def test_import_project_route(client: FlaskClient, tmp_path: Path) -> None:
temp_db = tmp_path / "temp_project.db"
conn = sqlite3.connect(str(temp_db))
conn.execute(
"CREATE TABLE datas (id TEXT PRIMARY KEY, geode_object TEXT, viewer_object TEXT, native_file TEXT, "
"CREATE TABLE datas (id TEXT PRIMARY KEY, geode_object TEXT, viewer_object TEXT, viewer_elements_type TEXT, native_file TEXT, "
"viewable_file TEXT, light_viewable_file TEXT, input_file TEXT, additional_files TEXT)"
)
conn.commit()
Expand Down
6 changes: 6 additions & 0 deletions tests/test_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ def test_texture_coordinates(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodePolygonalSurface3D.geode_object_type(),
viewer_object=GeodePolygonalSurface3D.viewer_type(),
viewer_elements_type=GeodePolygonalSurface3D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down Expand Up @@ -232,6 +233,7 @@ def test_vertex_attribute_names(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodePolygonalSurface3D.geode_object_type(),
viewer_object=GeodePolygonalSurface3D.viewer_type(),
viewer_elements_type=GeodePolygonalSurface3D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down Expand Up @@ -261,6 +263,7 @@ def test_cell_attribute_names(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodeRegularGrid2D.geode_object_type(),
viewer_object=GeodeRegularGrid2D.viewer_type(),
viewer_elements_type=GeodeRegularGrid2D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down Expand Up @@ -290,6 +293,7 @@ def test_polygon_attribute_names(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodePolygonalSurface3D.geode_object_type(),
viewer_object=GeodePolygonalSurface3D.viewer_type(),
viewer_elements_type=GeodePolygonalSurface3D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down Expand Up @@ -319,6 +323,7 @@ def test_polyhedron_attribute_names(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodePolyhedralSolid3D.geode_object_type(),
viewer_object=GeodePolyhedralSolid3D.viewer_type(),
viewer_elements_type=GeodePolyhedralSolid3D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down Expand Up @@ -352,6 +357,7 @@ def test_edge_attribute_names(client: FlaskClient, test_id: str) -> None:
data = Data.create(
geode_object=GeodeEdgedCurve3D.geode_object_type(),
viewer_object=GeodeEdgedCurve3D.viewer_type(),
viewer_elements_type=GeodeEdgedCurve3D.viewer_elements_type(),
input_file=file,
)
data.native_file = file
Expand Down
2 changes: 2 additions & 0 deletions tests/test_utils_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ def test_save_all_viewables_and_return_info(client: FlaskClient) -> None:
data_entry = Data.create(
geode_object=geode_object.geode_object_type(),
viewer_object=geode_object.viewer_type(),
viewer_elements_type=geode_object.viewer_elements_type(),
input_file=input_file,
additional_files=additional_files,
)
Expand Down Expand Up @@ -155,6 +156,7 @@ def test_save_all_viewables_commits_to_db(client: FlaskClient) -> None:
data_entry = Data.create(
geode_object=geode_object.geode_object_type(),
viewer_object=geode_object.viewer_type(),
viewer_elements_type=geode_object.viewer_elements_type(),
input_file=input_file,
additional_files=[],
)
Expand Down