MCPcopy Create free account
hub / github.com/MrNeRF/LichtFeld-Studio / register_splat_simplify

Function register_splat_simplify

src/python/lfs/py_splat_simplify.cpp:108–253  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106 } // namespace
107
108 void register_splat_simplify(nb::module_& m) {
109 nb::class_<PySplatSimplifyMergeTree>(m, "SplatSimplifyMergeTree")
110 .def_prop_ro("source_means", &PySplatSimplifyMergeTree::source_means,
111 "Filtered source means tensor [N, 3]")
112 .def_prop_ro("source_sh0", &PySplatSimplifyMergeTree::source_sh0,
113 "Filtered source SH0 tensor [N, 1, 3]")
114 .def_prop_ro("source_shN", &PySplatSimplifyMergeTree::source_shN,
115 "Filtered source higher-order SH tensor [N, K, 3]")
116 .def_prop_ro("source_scaling", &PySplatSimplifyMergeTree::source_scaling,
117 "Filtered source scaling tensor [N, 3] in log-space")
118 .def_prop_ro("source_rotation", &PySplatSimplifyMergeTree::source_rotation,
119 "Filtered source rotation tensor [N, 4]")
120 .def_prop_ro("source_opacity", &PySplatSimplifyMergeTree::source_opacity,
121 "Filtered source opacity tensor [N, 1] in logit-space")
122 .def_prop_ro("source_active_sh_degree", &PySplatSimplifyMergeTree::source_active_sh_degree,
123 "Active SH degree of the filtered source splat")
124 .def_prop_ro("source_max_sh_degree", &PySplatSimplifyMergeTree::source_max_sh_degree,
125 "Maximum SH degree of the filtered source splat")
126 .def_prop_ro("source_scene_scale", &PySplatSimplifyMergeTree::source_scene_scale,
127 "Scene scale of the filtered source splat")
128 .def_prop_ro("target_count", &PySplatSimplifyMergeTree::target_count,
129 "Requested target count before pruning")
130 .def_prop_ro("post_prune_count", &PySplatSimplifyMergeTree::post_prune_count,
131 "Count remaining after opacity pruning")
132 .def_prop_ro("requested_ratio", &PySplatSimplifyMergeTree::requested_ratio,
133 "Requested simplify ratio")
134 .def_prop_ro("requested_lod_base", &PySplatSimplifyMergeTree::requested_lod_base,
135 "Requested LOD base factor")
136 .def_prop_ro("requested_opacity_prune_threshold",
137 &PySplatSimplifyMergeTree::requested_opacity_prune_threshold,
138 "Requested opacity prune threshold")
139 .def_prop_ro("final_roots", &PySplatSimplifyMergeTree::final_roots,
140 "Tree node ids that survive into the simplified output")
141 .def_prop_ro("pruned_leaf_ids", &PySplatSimplifyMergeTree::pruned_leaf_ids,
142 "Leaf ids removed during the initial opacity prune")
143 .def_prop_ro("merge_left", &PySplatSimplifyMergeTree::merge_left,
144 "Left child id for each merge node")
145 .def_prop_ro("merge_right", &PySplatSimplifyMergeTree::merge_right,
146 "Right child id for each merge node")
147 .def_prop_ro("merge_pass", &PySplatSimplifyMergeTree::merge_pass,
148 "Zero-based simplify pass index for each merge node")
149 .def("leaf_count", &PySplatSimplifyMergeTree::leaf_count,
150 "Number of source leaves in the tree")
151 .def("merge_count", &PySplatSimplifyMergeTree::merge_count,
152 "Number of merge nodes in the tree");
153
154 nb::class_<PySplatSimplifyResult>(m, "SplatSimplifyResult")
155 .def_prop_ro("splat_data", &PySplatSimplifyResult::splat_data,
156 "Simplified output splat data")
157 .def_prop_ro("merge_tree", &PySplatSimplifyResult::merge_tree,
158 "Merge tree describing how the output was formed");
159
160 m.def(
161 "simplify_splats",
162 [](const std::string& source_name,
163 double ratio,
164 float lod_base,
165 float opacity_prune_threshold) {

Callers 1

NB_MODULEFunction · 0.85

Calls 14

get_application_sceneFunction · 0.85
moveFunction · 0.85
getNodeMethod · 0.80
validMethod · 0.45

Tested by

no test coverage detected