Skip to content

Commit c9f6f53

Browse files
expose objectsets
1 parent e7dd29f commit c9f6f53

3 files changed

Lines changed: 55 additions & 5 deletions

File tree

bindings/python/src/stochastic/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
add_geode_python_binding(
2222
NAME "py_stochastic"
2323
SOURCES
24-
# "sampling/mcmc/helpers/fracture_simulation_runner.hpp"
2524
"applications/fractures.hpp"
2625
"inference/statistics_tracker.hpp"
2726
"sampling/mcmc/helpers/simulation_printer.hpp"
@@ -30,6 +29,7 @@ add_geode_python_binding(
3029
"sampling/random_engine.hpp"
3130
"sampling/distributions.hpp"
3231
"spatial/spatial_domain.hpp"
32+
"spatial/object_sets.hpp"
3333
"stochastic.cpp"
3434
DEPENDENCIES
3535
${PROJECT_NAME}::stochastic

bindings/python/src/stochastic/sampling/mcmc/simulation_runner.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,16 @@ namespace geode
7474
.def( "run",
7575
pybind11::overload_cast< geode::RandomEngine&,
7676
const geode::SimulationConfigurator& >( &Runner::run ),
77-
pybind11::arg( "engine" ), pybind11::arg( "config" ) );
77+
pybind11::arg( "engine" ), pybind11::arg( "config" ) )
7878

79-
// .def( "state_realization", &Runner::state_realization,
80-
// pybind11::return_value_policy::reference_internal );
79+
.def( "state_realization", &Runner::state_realization,
80+
pybind11::return_value_policy::reference_internal );
8181
}
8282

8383
void define_simulation_configurator_and_runner( pybind11::module_& module )
8484
{
8585
define_simulation_configurator( module );
86-
define_simulation_runner< OwnerSegment2D >( module, "OwnerSegment2D" );
86+
define_simulation_runner< OwnerSegment2D >( module, "Segment2D" );
8787
}
8888

8989
} // namespace geode
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* Copyright (c) 2019 - 2026 Geode-solutions
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a copy
5+
* of this software and associated documentation files (the "Software"), to deal
6+
* in the Software without restriction, including without limitation the rights
7+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
* copies of the Software, and to permit persons to whom the Software is
9+
* furnished to do so, subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in
12+
* all copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
* SOFTWARE.
21+
*
22+
*/
23+
#pragma once
24+
25+
#include "../../common.hpp"
26+
27+
#include <geode/stochastic/spatial/object_sets.hpp>
28+
29+
namespace geode
30+
{
31+
template < typename object_type >
32+
void define_object_sets_impl(
33+
pybind11::module_& module, const std::string& typestr )
34+
{
35+
using ObjectSets = geode::ObjectSets< object_type >;
36+
const auto pyclass_name = absl::StrCat( typestr, "ObjectSets" );
37+
38+
pybind11::class_< ObjectSets >( module, pyclass_name.c_str() )
39+
.def( pybind11::init<>() )
40+
.def( "nb_sets", &ObjectSets::nb_sets )
41+
.def( "nb_objects", &ObjectSets::nb_objects );
42+
}
43+
44+
void define_spatial_domain( pybind11::module& module )
45+
{
46+
define_object_sets_impl< Point2D >( module, "Point2D" );
47+
define_object_sets_impl< Point3D >( module, "Point3D" );
48+
define_object_sets_impl< OwnerSegment2D >( module, "Segment2D" );
49+
}
50+
} // namespace geode

0 commit comments

Comments
 (0)