From 8022ef5da69fa0a78b163eb0b8c6c6bb44065aa1 Mon Sep 17 00:00:00 2001 From: GitHub Actions <> Date: Tue, 6 Aug 2024 09:13:55 +0000 Subject: [PATCH] build docs --- docs/index.html | 1499 +++++++++++++++++++++++++------------------- docs/search.js | 2 +- docs/skeletor.html | 1499 +++++++++++++++++++++++++------------------- 3 files changed, 1685 insertions(+), 1315 deletions(-) diff --git a/docs/index.html b/docs/index.html index 7173df1..d99f153 100644 --- a/docs/index.html +++ b/docs/index.html @@ -77,12 +77,18 @@
82 @property 83 def edges(self): 84 """Return skeleton edges.""" -85 return self.swc.loc[self.swc.parent_id >= 0, -86 ['node_id', 'parent_id']].values +85 return self.swc.loc[self.swc.parent_id >= 0, ["node_id", "parent_id"]].values
88 @property -89 def vertices(self): -90 """Return skeleton vertices (nodes).""" -91 return self.swc[['x', 'y', 'z']].values +@@ -1308,13 +1378,14 @@87 @property +88 def vertices(self): +89 """Return skeleton vertices (nodes).""" +90 return self.swc[["x", "y", "z"]].valuesAttributes
93 @property -94 def radius(self): -95 """Return radii.""" -96 if 'radius' not in self.swc.columns: -97 raise ValueError('No radius info found. Run `skeletor.post.radii()`' -98 ' to get them.') -99 return self.swc['radius'].values +@@ -1335,12 +1406,12 @@92 @property +93 def radius(self): +94 """Return radii.""" +95 if "radius" not in self.swc.columns: +96 raise ValueError( +97 "No radius info found. Run `skeletor.post.radii()`" " to get them." +98 ) +99 return self.swc["radius"].valuesAttributes
@@ -1364,10 +1435,13 @@101 @property 102 def skeleton(self): 103 """Skeleton as trimesh Path3D.""" -104 if not hasattr(self, '_skeleton'): +104 if not hasattr(self, "_skeleton"): 105 lines = [tm.path.entities.Line(e) for e in self.edges] 106 -107 self._skeleton = tm.path.Path3D(entities=lines, -108 vertices=self.vertices, -109 process=False) +107 self._skeleton = tm.path.Path3D( +108 entities=lines, vertices=self.vertices, process=False +109 ) 110 return self._skeletonAttributes
114 """Skeleton vertex (nodes) to mesh vertices. Based on `mesh_map`.""" 115 if isinstance(self.mesh_map, type(None)): 116 return None -117 return pd.DataFrame(self.mesh_map -118 ).reset_index(drop=False -119 ).groupby(0)['index'].apply(np.array -120 ).values +117 return ( +118 pd.DataFrame(self.mesh_map) +119 .reset_index(drop=False) +120 .groupby(0)["index"] +121 .apply(np.array) +122 .values +123 )
125 @property +126 def roots(self): +127 """Root node(s).""" +128 return self.swc.loc[self.swc.parent_id < 0].index.values +
Root node(s).
+122 @property -123 def leafs(self): -124 """Leaf nodes (includes root).""" -125 swc = self.swc -126 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] -127 return leafs.copy() +@@ -1410,21 +1505,21 @@130 @property +131 def leafs(self): +132 """Leaf nodes (includes root).""" +133 swc = self.swc +134 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] +135 return leafs.copy()Attributes
129 def reindex(self, inplace=False): -130 """Clean up skeleton.""" -131 x = self -132 if not inplace: -133 x = x.copy() -134 -135 # Re-index to make node IDs continous again -136 x.swc, new_ids = reindex_swc(x.swc) -137 -138 # Update mesh map -139 if not isinstance(x.mesh_map, type(None)): -140 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) -141 -142 if not inplace: -143 return x +@@ -1432,6 +1527,85 @@137 def reindex(self, inplace=False): +138 """Clean up skeleton.""" +139 x = self +140 if not inplace: +141 x = x.copy() +142 +143 # Re-index to make node IDs continous again +144 x.swc, new_ids = reindex_swc(x.swc) +145 +146 # Update mesh map +147 if not isinstance(x.mesh_map, type(None)): +148 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) +149 +150 if not inplace: +151 return xAttributes
153 def reroot(self, new_root): +154 """Reroot the skeleton. +155 +156 Parameters +157 ---------- +158 new_root : int +159 Index of node to use as new root. If the skeleton +160 consists of multiple trees, only the tree containing the +161 new root will be updated. +162 +163 Returns +164 ------- +165 Skeleton +166 Skeleton with new root. +167 +168 """ +169 assert new_root in self.swc.index.values, f"Node index {new_root} not in skeleton." +170 +171 # Make copy of self +172 x = self.copy() +173 +174 # Check if the new root is already a root +175 if new_root in x.roots: +176 return x +177 +178 # Get graph representation +179 G = x.get_graph() +180 +181 # Get the path from the new root to the current root (of the same tree) +182 for r in x.roots: +183 try: +184 path = nx.shortest_path(G, source=new_root, target=r) +185 break +186 except nx.NetworkXNoPath: +187 continue +188 +189 # Now we need to invert the path from the old root to the new root +190 new_parents = x.swc.set_index('node_id').parent_id.to_dict() +191 new_parents.update({c: p for p, c in zip(path[:-1], path[1:])}) +192 new_parents[new_root] = -1 +193 +194 # Update the SWC table +195 x.swc["parent_id"] = x.swc.node_id.map(new_parents) +196 +197 return x +
Reroot the skeleton.
+ +145 def copy(self): -146 """Return copy of the skeleton.""" -147 return Skeleton(swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, -148 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, -149 mesh_map=self.mesh_map.copy() if not isinstance(self.mesh_map, type(None)) else None) +@@ -1468,28 +1647,32 @@199 def copy(self): +200 """Return copy of the skeleton.""" +201 return Skeleton( +202 swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, +203 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, +204 mesh_map=self.mesh_map.copy() +205 if not isinstance(self.mesh_map, type(None)) +206 else None, +207 method=self.method, +208 )Attributes
151 def get_graph(self): -152 """Generate networkX representation of the skeletons. -153 -154 Distance between nodes will be used as edge weights. -155 -156 Returns -157 ------- -158 networkx.DiGraph -159 -160 """ -161 not_root = self.swc.parent_id >= 0 -162 nodes = self.swc.loc[not_root] -163 parents = self.swc.set_index('node_id').loc[self.swc.loc[not_root, 'parent_id'].values] -164 -165 dists = nodes[['x', 'y', 'z']].values - parents[['x', 'y', 'z']].values -166 dists = np.sqrt((dists ** 2).sum(axis=1)) -167 -168 G = nx.DiGraph() -169 G.add_nodes_from(self.swc.node_id.values) -170 G.add_weighted_edges_from(zip(nodes.node_id.values, nodes.parent_id.values, dists)) -171 -172 return G +@@ -1517,69 +1700,67 @@210 def get_graph(self): +211 """Generate networkX representation of the skeletons. +212 +213 Distance between nodes will be used as edge weights. +214 +215 Returns +216 ------- +217 networkx.DiGraph +218 +219 """ +220 not_root = self.swc.parent_id >= 0 +221 nodes = self.swc.loc[not_root] +222 parents = self.swc.set_index("node_id").loc[ +223 self.swc.loc[not_root, "parent_id"].values +224 ] +225 +226 dists = nodes[["x", "y", "z"]].values - parents[["x", "y", "z"]].values +227 dists = np.sqrt((dists**2).sum(axis=1)) +228 +229 G = nx.DiGraph() +230 G.add_nodes_from(self.swc.node_id.values) +231 G.add_weighted_edges_from( +232 zip(nodes.node_id.values, nodes.parent_id.values, dists) +233 ) +234 +235 return GReturns
174 def get_segments(self, -175 weight = 'weight', -176 return_lengths = False): -177 """Generate a list of linear segments while maximizing segment lengths. -178 -179 Parameters -180 ---------- -181 weight : 'weight' | None, optional -182 If ``"weight"`` use physical, geodesic length to determine -183 segment length. If ``None`` use number of nodes (faster). -184 return_lengths : bool -185 If True, also return lengths of segments according to ``weight``. -186 -187 Returns -188 ------- -189 segments : list -190 Segments as list of lists containing node IDs. List is -191 sorted by segment lengths. -192 lengths : list -193 Length for each segment according to ``weight``. Only provided -194 if `return_lengths` is True. -195 -196 """ -197 assert weight in ('weight', None), f'Unable to use weight "{weight}"' -198 -199 # Get graph representation -200 G = self.get_graph() -201 -202 # Get distances to root -203 dists = {} -204 for root in self.swc[self.swc.parent_id < 0].node_id.values: -205 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) -206 -207 # Sort leaf nodes -208 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values -209 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) -210 -211 seen: set = set() -212 sequences = [] -213 for nodeID in endNodeIDs: -214 sequence = [nodeID] -215 parents = list(G.successors(nodeID)) -216 while True: -217 if not parents: -218 break -219 parentID = parents[0] -220 sequence.append(parentID) -221 if parentID in seen: -222 break -223 seen.add(parentID) -224 parents = list(G.successors(parentID)) -225 -226 if len(sequence) > 1: -227 sequences.append(sequence) -228 -229 # Sort sequences by length -230 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] -231 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] -232 -233 if return_lengths: -234 return sequences, sorted(lengths, reverse=True) -235 else: -236 return sequences +@@ -1620,51 +1801,51 @@237 def get_segments(self, weight="weight", return_lengths=False): +238 """Generate a list of linear segments while maximizing segment lengths. +239 +240 Parameters +241 ---------- +242 weight : 'weight' | None, optional +243 If ``"weight"`` use physical, geodesic length to determine +244 segment length. If ``None`` use number of nodes (faster). +245 return_lengths : bool +246 If True, also return lengths of segments according to ``weight``. +247 +248 Returns +249 ------- +250 segments : list +251 Segments as list of lists containing node IDs. List is +252 sorted by segment lengths. +253 lengths : list +254 Length for each segment according to ``weight``. Only provided +255 if `return_lengths` is True. +256 +257 """ +258 assert weight in ("weight", None), f'Unable to use weight "{weight}"' +259 +260 # Get graph representation +261 G = self.get_graph() +262 +263 # Get distances to root +264 dists = {} +265 for root in self.swc[self.swc.parent_id < 0].node_id.values: +266 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) +267 +268 # Sort leaf nodes +269 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values +270 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) +271 +272 seen: set = set() +273 sequences = [] +274 for nodeID in endNodeIDs: +275 sequence = [nodeID] +276 parents = list(G.successors(nodeID)) +277 while True: +278 if not parents: +279 break +280 parentID = parents[0] +281 sequence.append(parentID) +282 if parentID in seen: +283 break +284 seen.add(parentID) +285 parents = list(G.successors(parentID)) +286 +287 if len(sequence) > 1: +288 sequences.append(sequence) +289 +290 # Sort sequences by length +291 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] +292 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] +293 +294 if return_lengths: +295 return sequences, sorted(lengths, reverse=True) +296 else: +297 return sequencesReturns
238 def save_swc(self, filepath): -239 """Save skeleton in SWC format. -240 -241 Parameters -242 ---------- -243 filepath : path-like -244 Filepath to save SWC to. -245 -246 """ -247 header = dedent(f"""\ -248 # SWC format file -249 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html -250 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) -251 # PointNo Label X Y Z Radius Parent -252 # Labels: -253 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point -254 """) -255 -256 # Make copy of SWC table -257 swc = self.swc.copy() -258 -259 # Set all labels to undefined -260 swc['label'] = 0 -261 swc.loc[~swc.node_id.isin(swc.parent_id.values), 'label'] = 6 -262 n_childs = swc.groupby('parent_id').size() -263 bp = n_childs[n_childs > 1].index.values -264 swc.loc[swc.node_id.isin(bp), 'label'] = 5 -265 -266 # Add radius if missing -267 if 'radius' not in swc.columns: -268 swc['radius'] = 0 -269 -270 # Get things in order -271 swc = swc[['node_id', 'label', 'x', 'y', 'z', 'radius', 'parent_id']] -272 -273 # Adjust column titles -274 swc.columns = ['PointNo', 'Label', 'X', 'Y', 'Z', 'Radius', 'Parent'] -275 -276 with open(filepath, 'w') as file: -277 # Write header -278 file.write(header) -279 -280 # Write data -281 writer = csv.writer(file, delimiter=' ') -282 writer.writerows(swc.astype(str).values) +@@ -1691,28 +1872,28 @@299 def save_swc(self, filepath): +300 """Save skeleton in SWC format. +301 +302 Parameters +303 ---------- +304 filepath : path-like +305 Filepath to save SWC to. +306 +307 """ +308 header = dedent(f"""\ +309 # SWC format file +310 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html +311 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) +312 # PointNo Label X Y Z Radius Parent +313 # Labels: +314 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point +315 """) +316 +317 # Make copy of SWC table +318 swc = self.swc.copy() +319 +320 # Set all labels to undefined +321 swc["label"] = 0 +322 swc.loc[~swc.node_id.isin(swc.parent_id.values), "label"] = 6 +323 n_childs = swc.groupby("parent_id").size() +324 bp = n_childs[n_childs > 1].index.values +325 swc.loc[swc.node_id.isin(bp), "label"] = 5 +326 +327 # Add radius if missing +328 if "radius" not in swc.columns: +329 swc["radius"] = 0 +330 +331 # Get things in order +332 swc = swc[["node_id", "label", "x", "y", "z", "radius", "parent_id"]] +333 +334 # Adjust column titles +335 swc.columns = ["PointNo", "Label", "X", "Y", "Z", "Radius", "Parent"] +336 +337 with open(filepath, "w") as file: +338 # Write header +339 file.write(header) +340 +341 # Write data +342 writer = csv.writer(file, delimiter=" ") +343 writer.writerows(swc.astype(str).values)Parameters
284 def scene(self, mesh=False, **kwargs): -285 """Return a Scene object containing the skeleton. -286 -287 Returns -288 ------- -289 scene : trimesh.scene.scene.Scene -290 Contains the skeleton and optionally the mesh. -291 -292 """ -293 if mesh: -294 if isinstance(self.mesh, type(None)): -295 raise ValueError('Skeleton has no mesh.') -296 -297 self.mesh.visual.face_colors = [100, 100, 100, 100] -298 -299 # Note the copy(): without it the transform in show() changes -300 # the original meshes -301 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) -302 else: -303 sc = tm.Scene(self.skeleton.copy(), **kwargs) -304 -305 return sc +@@ -1739,30 +1920,30 @@345 def scene(self, mesh=False, **kwargs): +346 """Return a Scene object containing the skeleton. +347 +348 Returns +349 ------- +350 scene : trimesh.scene.scene.Scene +351 Contains the skeleton and optionally the mesh. +352 +353 """ +354 if mesh: +355 if isinstance(self.mesh, type(None)): +356 raise ValueError("Skeleton has no mesh.") +357 +358 self.mesh.visual.face_colors = [100, 100, 100, 100] +359 +360 # Note the copy(): without it the transform in show() changes +361 # the original meshes +362 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) +363 else: +364 sc = tm.Scene(self.skeleton.copy(), **kwargs) +365 +366 return scReturns
307 def show(self, mesh=False, **kwargs): -308 """Render the skeleton in an opengl window. Requires pyglet. -309 -310 Parameters -311 ---------- -312 mesh : bool -313 If True, will render transparent mesh on top of the -314 skeleton. -315 -316 Returns -317 -------- -318 scene : trimesh.scene.Scene -319 Scene with skeleton in it. -320 -321 """ -322 scene = self.scene(mesh=mesh) -323 -324 # I encountered some issues if object space is big and the easiest -325 # way to work around this is to apply a transform such that the -326 # coordinates have -5 to +5 bounds -327 fac = 5 / np.fabs(self.skeleton.bounds).max() -328 scene.apply_transform(np.diag([fac, fac, fac, 1])) -329 -330 return scene.show(**kwargs) +@@ -1797,108 +1978,112 @@368 def show(self, mesh=False, **kwargs): +369 """Render the skeleton in an opengl window. Requires pyglet. +370 +371 Parameters +372 ---------- +373 mesh : bool +374 If True, will render transparent mesh on top of the +375 skeleton. +376 +377 Returns +378 -------- +379 scene : trimesh.scene.Scene +380 Scene with skeleton in it. +381 +382 """ +383 scene = self.scene(mesh=mesh) +384 +385 # I encountered some issues if object space is big and the easiest +386 # way to work around this is to apply a transform such that the +387 # coordinates have -5 to +5 bounds +388 fac = 5 / np.fabs(self.skeleton.bounds).max() +389 scene.apply_transform(np.diag([fac, fac, fac, 1])) +390 +391 return scene.show(**kwargs)Returns
332 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): -333 """Mend breaks in the skeleton using the original mesh. -334 -335 This works by comparing the connectivity of the original mesh with that -336 of the skeleton. If the shortest path between two adjacent vertices on the mesh -337 is shorter than the distance between the nodes in the skeleton, a new edge -338 is added to the skeleton. -339 -340 Parameters -341 ---------- -342 dist_mult : float, optional -343 Factor by which the new edge should be shorter than the -344 current shortest path between two nodes to be added. -345 Lower values = fewer false negatives; higher values = fewer -346 false positive edges. -347 dist_min : float, optional -348 Minimum distance between nodes to consider adding an edge. -349 Use this to avoid adding very short edges. -350 dist_max : float, optional -351 Maximum distance between nodes to consider adding an edge. -352 Use this to avoid adding very long edges. -353 -354 Returns -355 ------- -356 edges : (N, 2) array -357 Edges connecting the skeleton nodes. -358 vertices : (N, 3) array -359 Positions of the skeleton nodes. -360 -361 """ -362 # We need `.mesh_map` and `.mesh` to exist -363 if self.mesh_map is None: -364 raise ValueError('Skeleton must have a `mesh_map` to mend breaks.') -365 if self.mesh is None: -366 raise ValueError('Skeleton must have a `mesh` to mend breaks.') -367 -368 # Make a copy of the mesh edges -369 edges = self.mesh.edges.copy() -370 # Map mesh vertices to skeleton vertices -371 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] -372 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] -373 # Deduplicate -374 edges = np.unique(edges, axis=0) -375 # Remove self edges -376 edges = edges[edges[:,0] != edges[:, 1]] -377 -378 G = self.get_graph().to_undirected() -379 -380 # Remove edges that are already in the skeleton -381 edges = np.array([e for e in edges if not G.has_edge(*e)]) -382 -383 # Calculate distance between these new edge candidates -384 dists = np.sqrt(((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1)) -385 -386 # Sort by distance (lowest first) -387 edges = edges[np.argsort(dists)] -388 dists = dists[np.argsort(dists)] -389 -390 for e, d in zip(edges, dists): -391 # Check if the new path would be shorter than the current shortest path -392 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): -393 continue -394 # Check if the distance is within bounds -395 elif d < dist_min: -396 continue -397 elif d > dist_max: -398 continue -399 # Add edge -400 G.add_edge(*e, weight=d) -401 -402 # The above may have introduced small triangles which we should try to remove -403 # by removing the longest edge in a triangle. I have also spotted more -404 # complex cases of four or more nodes forming false-positive loops but -405 # these will be harder to detect and remove. -406 -407 # First collect neighbors for each node -408 later_nbrs = {} -409 for node, neighbors in G.adjacency(): -410 later_nbrs[node] = {n for n in neighbors if n not in later_nbrs and n != node} -411 -412 # Go over each node -413 triangles = set() -414 for node1, neighbors in later_nbrs.items(): -415 # Go over each neighbor -416 for node2 in neighbors: -417 # Check if there is one or more third nodes that are connected to both -418 third_nodes = neighbors & later_nbrs[node2] -419 for node3 in third_nodes: -420 # Add triangle (sort to deduplicate) -421 triangles.add(tuple(sorted([node1, node2, node3]))) -422 -423 # Remove longest edge in each triangle -424 for t in triangles: -425 e1, e2, e3 = t[:2], t[1:], t[::2] -426 # Make sure all edges still exist (we may have already removed edges -427 # that were part of a previous triangle) -428 if any(not G.has_edge(*e) for e in (e1, e2, e3)): -429 continue -430 # Remove the longest edge -431 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]['weight'])) -432 -433 return np.array(G.edges), self.vertices.copy() +diff --git a/docs/search.js b/docs/search.js index 4182caf..baf58a4 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u393 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): +394 """Mend breaks in the skeleton using the original mesh. +395 +396 This works by comparing the connectivity of the original mesh with that +397 of the skeleton. If the shortest path between two adjacent vertices on the mesh +398 is shorter than the distance between the nodes in the skeleton, a new edge +399 is added to the skeleton. +400 +401 Parameters +402 ---------- +403 dist_mult : float, optional +404 Factor by which the new edge should be shorter than the +405 current shortest path between two nodes to be added. +406 Lower values = fewer false negatives; higher values = fewer +407 false positive edges. +408 dist_min : float, optional +409 Minimum distance between nodes to consider adding an edge. +410 Use this to avoid adding very short edges. +411 dist_max : float, optional +412 Maximum distance between nodes to consider adding an edge. +413 Use this to avoid adding very long edges. +414 +415 Returns +416 ------- +417 edges : (N, 2) array +418 Edges connecting the skeleton nodes. +419 vertices : (N, 3) array +420 Positions of the skeleton nodes. +421 +422 """ +423 # We need `.mesh_map` and `.mesh` to exist +424 if self.mesh_map is None: +425 raise ValueError("Skeleton must have a `mesh_map` to mend breaks.") +426 if self.mesh is None: +427 raise ValueError("Skeleton must have a `mesh` to mend breaks.") +428 +429 # Make a copy of the mesh edges +430 edges = self.mesh.edges.copy() +431 # Map mesh vertices to skeleton vertices +432 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] +433 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] +434 # Deduplicate +435 edges = np.unique(edges, axis=0) +436 # Remove self edges +437 edges = edges[edges[:, 0] != edges[:, 1]] +438 +439 G = self.get_graph().to_undirected() +440 +441 # Remove edges that are already in the skeleton +442 edges = np.array([e for e in edges if not G.has_edge(*e)]) +443 +444 # Calculate distance between these new edge candidates +445 dists = np.sqrt( +446 ((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1) +447 ) +448 +449 # Sort by distance (lowest first) +450 edges = edges[np.argsort(dists)] +451 dists = dists[np.argsort(dists)] +452 +453 for e, d in zip(edges, dists): +454 # Check if the new path would be shorter than the current shortest path +455 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): +456 continue +457 # Check if the distance is within bounds +458 elif d < dist_min: +459 continue +460 elif d > dist_max: +461 continue +462 # Add edge +463 G.add_edge(*e, weight=d) +464 +465 # The above may have introduced small triangles which we should try to remove +466 # by removing the longest edge in a triangle. I have also spotted more +467 # complex cases of four or more nodes forming false-positive loops but +468 # these will be harder to detect and remove. +469 +470 # First collect neighbors for each node +471 later_nbrs = {} +472 for node, neighbors in G.adjacency(): +473 later_nbrs[node] = { +474 n for n in neighbors if n not in later_nbrs and n != node +475 } +476 +477 # Go over each node +478 triangles = set() +479 for node1, neighbors in later_nbrs.items(): +480 # Go over each neighbor +481 for node2 in neighbors: +482 # Check if there is one or more third nodes that are connected to both +483 third_nodes = neighbors & later_nbrs[node2] +484 for node3 in third_nodes: +485 # Add triangle (sort to deduplicate) +486 triangles.add(tuple(sorted([node1, node2, node3]))) +487 +488 # Remove longest edge in each triangle +489 for t in triangles: +490 e1, e2, e3 = t[:2], t[1:], t[::2] +491 # Make sure all edges still exist (we may have already removed edges +492 # that were part of a previous triangle) +493 if any(not G.has_edge(*e) for e in (e1, e2, e3)): +494 continue +495 # Remove the longest edge +496 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]["weight"])) +497 +498 return np.array(G.edges), self.vertices.copy()0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e 71 def __repr__(self): 72 """Return quick summary of the skeleton's geometry.""" 73 elements = [] - 74 if hasattr(self, 'vertices'): - 75 elements.append(f'vertices={self.vertices.shape}') - 76 if hasattr(self, 'edges'): - 77 elements.append(f'edges={self.edges.shape}') - 78 if hasattr(self, 'method'): - 79 elements.append(f'method={self.method}') + 74 if hasattr(self, "vertices"): + 75 elements.append(f"vertices={self.vertices.shape}") + 76 if hasattr(self, "edges"): + 77 elements.append(f"edges={self.edges.shape}") + 78 if hasattr(self, "method"): + 79 elements.append(f"method={self.method}") 80 return f'<Skeleton({", ".join(elements)})>' 81 82 @property 83 def edges(self): 84 """Return skeleton edges.""" - 85 return self.swc.loc[self.swc.parent_id >= 0, - 86 ['node_id', 'parent_id']].values - 87 - 88 @property - 89 def vertices(self): - 90 """Return skeleton vertices (nodes).""" - 91 return self.swc[['x', 'y', 'z']].values - 92 - 93 @property - 94 def radius(self): - 95 """Return radii.""" - 96 if 'radius' not in self.swc.columns: - 97 raise ValueError('No radius info found. Run `skeletor.post.radii()`' - 98 ' to get them.') - 99 return self.swc['radius'].values + 85 return self.swc.loc[self.swc.parent_id >= 0, ["node_id", "parent_id"]].values + 86 + 87 @property + 88 def vertices(self): + 89 """Return skeleton vertices (nodes).""" + 90 return self.swc[["x", "y", "z"]].values + 91 + 92 @property + 93 def radius(self): + 94 """Return radii.""" + 95 if "radius" not in self.swc.columns: + 96 raise ValueError( + 97 "No radius info found. Run `skeletor.post.radii()`" " to get them." + 98 ) + 99 return self.swc["radius"].values 100 101 @property 102 def skeleton(self): 103 """Skeleton as trimesh Path3D.""" -104 if not hasattr(self, '_skeleton'): +104 if not hasattr(self, "_skeleton"): 105 lines = [tm.path.entities.Line(e) for e in self.edges] 106 -107 self._skeleton = tm.path.Path3D(entities=lines, -108 vertices=self.vertices, -109 process=False) +107 self._skeleton = tm.path.Path3D( +108 entities=lines, vertices=self.vertices, process=False +109 ) 110 return self._skeleton 111 112 @property @@ -842,323 +848,388 @@1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o What is skeletor?\n\n Unlike its namesake, this
\n\nskeletor
\ndoes not (yet) seek to conquer Eternia but to turn meshes into skeletons.Before we get started some terminology:
\n\n\n
\n\n- a mesh is something that consists of vertices and faces
\n- a skeleton is a (hierarchical) tree-like structure consisting of vertices\n(also called nodes) and edges that connect them
\nSkeletons are useful for a range of reasons. For example:
\n\n\n
\n\n- Typically smaller (less vertices) than the mesh
\n- Have an implicit sense of topology (e.g. \"this node is distal to that node\")
\nExtracting skeletons from meshes (or other types of data such as voxels) is\nnon-trivial and there are a great many research papers exploring various\ndifferent approaches (see Google scholar).
\n\n\n\n
skeletor
implements some algorithms that I found useful in my work with\nneurons. In my experience there is unfortuntely no magic bullet when it\ncomes to skeletonization and chances are you will have to fiddle around a bit\nto get decent results.Installation
\n\nFrom PyPI:
\n\n\n\n\n\npip3 install skeletor\n
For the bleeding-edge version from Github:
\n\n\n\n\n\npip3 install git+https://github.com/navis-org/skeletor@master\n
Getting started
\n\nA skeletonization pipeline typically consists of:
\n\n\n
\n\n- Some pre-processing of the mesh (e.g. fixing some potential errors like\ndegenerate faces, unreferenced vertices, etc.)
\n- The skeletonization itself
\n- Some post-processing of the skeleton (e.g. adding radius information, smoothing, etc.)
\n
\n\nHere is a complete list of available functions:
\n\n\n\n
\n\n\n \n\n\nfunction \ndescription \n\n \nexample data \n\n \n \n\n skeletor.example_mesh()
load an example mesh \n\n \npre-processing \n\n \n \n\n skeletor.pre.fix_mesh()
fix some common errors found in meshes \n\n \n\n skeletor.pre.remesh()
re-generate mesh (uses Blender 3D) \n\n \n\n skeletor.pre.simplify()
reduce mesh complexity (uses Blender 3D) \n\n \n\n skeletor.pre.contract()
contract mesh to facilitate skeletonization [1] \n\n \nskeletonization \n\n \n \n\n skeletor.skeletonize.by_wavefront()
very fast, works well for tubular meshes (like neurons) \n\n \n\n skeletor.skeletonize.by_vertex_clusters()
very fast but needs mesh to be contracted (see above) \n\n \n\n skeletor.skeletonize.by_edge_collapse()
presented in [1] but never got this to work well \n\n \n\n skeletor.skeletonize.by_teasar()
very fast and robust, works on mesh surface \n\n \n\n skeletor.skeletonize.by_tangent_ball()
very fast, best on smooth meshes \n\n \npostprocessing \n\n \n \n\n skeletor.post.clean_up()
fix some potential errors in the skeleton \n\n \n\n skeletor.post.radii()
add radius information using various method \n\n \n\n skeletor.post.smooth()
smooth the skeleton \n\n \n\n skeletor.post.remove_bristles()
remove single-node bristles from the skeleton \n\n \n\n\n skeletor.post.despike()
smooth out jumps in the skeleton \n
\n\nSee docstrings of the respective functions for details.
\n\nA pipeline might look like this:
\n\n\n
\n\n- \n
skeletor.pre.fix_mesh()
to fix the mesh- \n
skeletor.pre.simplify()
to simplify the mesh- \n
skeletor.pre.contract()
to contract the mesh [1]- \n
skeletor.skeletonize.by_vertex_clusters()
to generate a skeleton- \n
skeletor.post.clean_up()
to clean up some potential issues with the skeleton- \n
skeletor.post.smooth()
to smooth the skeleton- \n
skeletor.post.radii()
to extract radii either by k-nearest neighbours or ray-castingIn my experience there is no one-size-fits-all. You will have to play around to\nfind the right approach and parameters to get nice skeletons for your meshes.\nIf you need help just open an issue.
\n\nAlso check out the Gotchas below!
\n\nExamples
\n\nFirst load the example mesh (a fruit fly neuron):
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> mesh\n<trimesh.Trimesh(vertices.shape=(6582, 3), faces.shape=(13772, 3))>\n
Next see if there is stuff to fix in the mesh (degenerate faces, duplicate\nvertices, etc.):
\n\n\n\n\n\n>>> fixed = sk.pre.fix_mesh(mesh, remove_disconnected=5, inplace=False)\n>>> fixed\n<trimesh.Trimesh(vertices.shape=(6213, 3), faces.shape=(12805, 3))>\n
Now for tubular meshes like this neuron, the \"wave front\" skeletonization method\nperforms really well: it works by casting waves across the mesh and collapsing\nthe resulting rings into a skeleton (kinda like when you throw a stone in a\npond and track the expanding ripples).
\n\n\n\n\n\n>>> skel = sk.skeletonize.by_wavefront(fixed, waves=1, step_size=1)\n>>> skel\n<Skeleton(vertices=(1258, 3), edges=(1194, 2), method=wavefront)>\n
All skeletonization methods return a
\n\nSkeleton
object. These are just\nconvenient objects to bundle the various outputs of the skeletonization.\n\n\n\n>>> # x/y/z location of skeleton vertices (nodes)\n>>> skel.vertices\narray([[16744, 36720, 26407],\n ...,\n [22076, 23217, 24472]])\n>>> # child -> parent edges\n>>> skel.edges\narray([[ 64, 31],\n ...,\n [1257, 1252]])\n>>> # Mapping for mesh to skeleton vertex indices\n>>> skel.mesh_map\narray([ 157, 158, 1062, ..., 525, 474, 547])\n>>> # SWC table\n>>> skel.swc.head()\n node_id parent_id x y z radius\n0 0 -1 16744.005859 36720.058594 26407.902344 0.000000\n1 1 -1 5602.751953 22266.756510 15799.991211 7.542587\n2 2 -1 16442.666667 14999.978516 10887.916016 5.333333\n
SWC is a commonly used format for saving skeletons.
\n\nSkeleton
objects\nhave a method for quickly saving a correctly formatted SWC file:\n\n\n\n>>> skel.save_swc('~/Documents/my_skeleton.swc')\n
If you installed
\n\npyglet
(see above) you can also usetrimesh
's plotting\ncapabilities to inspect the results:\n\n\n\n\n\n>>> skel.show(mesh=True)\n
That looks pretty good already but let's run some pro-forma postprocessing.
\n\n\n\n\n\n>>> sk.post.clean_up(skel, inplace=True)\n<Skeleton(vertices=(1071, 3), edges=(1070, 2))>\n
So that would be a full pipeline mesh to skeleton. Don't expect your own meshes\nto produce such nice results off the bat though. Chances are you will need to\nplay around to find the right recipe. If you don't know where to start, I suggest\nyou try out mesh contraction + vertex clustering first:
\n\n\n\n\n\n>>> import skeletor as sk\n>>> # Load the example mesh that ships with skeletor\n>>> mesh = sk.example_mesh()\n>>> # Alternatively use trimesh to load/construct your own mesh:\n>>> # import trimesh as tm\n>>> # mesh = tm.Trimesh(vertices, faces)\n>>> # mesh = tm.load_mesh('some/mesh.obj')\n>>> # Run some general clean-up (see docstring for details)\n>>> fixed = sk.pre.fix_mesh(mesh, remove_disconnected=5, inplace=False)\n>>> # Contract mesh to 10% (0.1) of original volume\n>>> cont = sk.pre.contract(fixed, epsilon=0.1)\n>>> # Skeletonize\n>>> skel = sk.skeletonize.by_vertex_clusters(cont, sampling_dist=100)\n>>> # Replace contracted mesh with original for postprocessing and plotting\n>>> skel.mesh = fixed\n>>> # Add radii (vertex cluster method does not do that automatically)\n>>> sk.post.radii(skel, method='knn')\n>>> skel.show(mesh=True)\n
Gotchas
\n\n\n
\n\n- while this is a general purpose library, my personal focus is on neurons and\nthis has certainly influenced things like default parameter values and certain\npost-processing steps
\n- meshes need to be triangular (we are using
\ntrimesh
)- use
\nsk.pre.simplify
if your mesh is very complex (half a million vertices is\nwhere things start getting sluggish)- a good mesh contraction is often half the battle but it can be tricky to get\nto work
\n- if the mesh consists of multiple disconnected pieces the skeleton will\nlikewise be fragmented (i.e. will have multiple roots)
\n- it's often a good idea to fix issues with the skeleton in postprocessing rather\nthan trying to get the skeletonization to be perfect
\nBenchmarks
\n\n\n\nBenchmarks\nwere run on a 2018 MacBook Pro (2.2 GHz Core i7, 32Gb memory) with optional\n
\n\nfastremap
dependency installed. Note some of these functions (e.g.\ncontraction and TEASAR/vertex cluster skeletonization) vary a lot in\nspeed based on parameterization.What about algorithm
\n\nX
?\n\n
skeletor
contains some algorithms that I found easy enough to implement\nand useful for my work with neurons. If you have some interesting paper/approach\nthat could make a nice addition toskeletor
, please get in touch on Github.\nPull requests are always welcome!References
\n\n\n\n
[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
The abstract and the paper can be found here.\nAlso see this YouTube video.
\n\nSome of the code in skeletor was modified from the\nPy_BL_MeshSkeletonization\naddon created by #0K Srinivasan Ramachandran and published under GPL3.
\n\nTop-level functions and classes
\n\nAt top-level we only expose
\n"}, "skeletor.Skeleton": {"fullname": "skeletor.Skeleton", "modulename": "skeletor", "qualname": "Skeleton", "kind": "class", "doc": "example_mesh()
and theSkeleton
class (which\nyou probably won't ever need to touch manually). Everything else is neatly\ntucked away into submodules (see side-bar or above table).Class representing a skeleton.
\n\nTypically returned as results from a skeletonization.
\n\nAttributes
\n\n\n
\n"}, "skeletor.Skeleton.__init__": {"fullname": "skeletor.Skeleton.__init__", "modulename": "skeletor", "qualname": "Skeleton.__init__", "kind": "function", "doc": "\n", "signature": "(swc, mesh=None, mesh_map=None, method=None)"}, "skeletor.Skeleton.swc": {"fullname": "skeletor.Skeleton.swc", "modulename": "skeletor", "qualname": "Skeleton.swc", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.mesh": {"fullname": "skeletor.Skeleton.mesh", "modulename": "skeletor", "qualname": "Skeleton.mesh", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.mesh_map": {"fullname": "skeletor.Skeleton.mesh_map", "modulename": "skeletor", "qualname": "Skeleton.mesh_map", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.method": {"fullname": "skeletor.Skeleton.method", "modulename": "skeletor", "qualname": "Skeleton.method", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.edges": {"fullname": "skeletor.Skeleton.edges", "modulename": "skeletor", "qualname": "Skeleton.edges", "kind": "variable", "doc": "- swc (pd.DataFrame, optional):\nSWC table.
\n- vertices ((N, 3) array):\nVertex (node) positions.
\n- edges ((M, 2) array):\nIndices of connected vertex pairs.
\n- radii ((N, ) array, optional):\nRadii for each vertex (node) in the skeleton.
\n- mesh (trimesh, optional):\nThe original mesh.
\n- mesh_map (array, optional):\nSame length as
\nmesh
. Maps mesh vertices to vertices (nodes)\nin the skeleton.- skel_map (array of arrays, optional):\nInverse of
\nmesh_map
: maps skeleton vertices (nodes) to mesh\nvertices.- method (str, optional):\nWhich method was used to generate the skeleton.
\nReturn skeleton edges.
\n"}, "skeletor.Skeleton.vertices": {"fullname": "skeletor.Skeleton.vertices", "modulename": "skeletor", "qualname": "Skeleton.vertices", "kind": "variable", "doc": "Return skeleton vertices (nodes).
\n"}, "skeletor.Skeleton.radius": {"fullname": "skeletor.Skeleton.radius", "modulename": "skeletor", "qualname": "Skeleton.radius", "kind": "variable", "doc": "Return radii.
\n"}, "skeletor.Skeleton.skeleton": {"fullname": "skeletor.Skeleton.skeleton", "modulename": "skeletor", "qualname": "Skeleton.skeleton", "kind": "variable", "doc": "Skeleton as trimesh Path3D.
\n"}, "skeletor.Skeleton.skel_map": {"fullname": "skeletor.Skeleton.skel_map", "modulename": "skeletor", "qualname": "Skeleton.skel_map", "kind": "variable", "doc": "Skeleton vertex (nodes) to mesh vertices. Based on
\n"}, "skeletor.Skeleton.leafs": {"fullname": "skeletor.Skeleton.leafs", "modulename": "skeletor", "qualname": "Skeleton.leafs", "kind": "variable", "doc": "mesh_map
.Leaf nodes (includes root).
\n"}, "skeletor.Skeleton.reindex": {"fullname": "skeletor.Skeleton.reindex", "modulename": "skeletor", "qualname": "Skeleton.reindex", "kind": "function", "doc": "Clean up skeleton.
\n", "signature": "(self, inplace=False):", "funcdef": "def"}, "skeletor.Skeleton.copy": {"fullname": "skeletor.Skeleton.copy", "modulename": "skeletor", "qualname": "Skeleton.copy", "kind": "function", "doc": "Return copy of the skeleton.
\n", "signature": "(self):", "funcdef": "def"}, "skeletor.Skeleton.get_graph": {"fullname": "skeletor.Skeleton.get_graph", "modulename": "skeletor", "qualname": "Skeleton.get_graph", "kind": "function", "doc": "Generate networkX representation of the skeletons.
\n\nDistance between nodes will be used as edge weights.
\n\nReturns
\n\n\n
\n", "signature": "(self):", "funcdef": "def"}, "skeletor.Skeleton.get_segments": {"fullname": "skeletor.Skeleton.get_segments", "modulename": "skeletor", "qualname": "Skeleton.get_segments", "kind": "function", "doc": "- networkx.DiGraph
\nGenerate a list of linear segments while maximizing segment lengths.
\n\nParameters
\n\n\n
\n\n- weight ('weight' | None, optional):\nIf
\n\"weight\"
use physical, geodesic length to determine\nsegment length. IfNone
use number of nodes (faster).- return_lengths (bool):\nIf True, also return lengths of segments according to
\nweight
.Returns
\n\n\n
\n", "signature": "(self, weight='weight', return_lengths=False):", "funcdef": "def"}, "skeletor.Skeleton.save_swc": {"fullname": "skeletor.Skeleton.save_swc", "modulename": "skeletor", "qualname": "Skeleton.save_swc", "kind": "function", "doc": "- segments (list):\nSegments as list of lists containing node IDs. List is\nsorted by segment lengths.
\n- lengths (list):\nLength for each segment according to
\nweight
. Only provided\nifreturn_lengths
is True.Save skeleton in SWC format.
\n\nParameters
\n\n\n
\n", "signature": "(self, filepath):", "funcdef": "def"}, "skeletor.Skeleton.scene": {"fullname": "skeletor.Skeleton.scene", "modulename": "skeletor", "qualname": "Skeleton.scene", "kind": "function", "doc": "- filepath (path-like):\nFilepath to save SWC to.
\nReturn a Scene object containing the skeleton.
\n\nReturns
\n\n\n
\n", "signature": "(self, mesh=False, **kwargs):", "funcdef": "def"}, "skeletor.Skeleton.show": {"fullname": "skeletor.Skeleton.show", "modulename": "skeletor", "qualname": "Skeleton.show", "kind": "function", "doc": "- scene (trimesh.scene.scene.Scene):\nContains the skeleton and optionally the mesh.
\nRender the skeleton in an opengl window. Requires pyglet.
\n\nParameters
\n\n\n
\n\n- mesh (bool):\nIf True, will render transparent mesh on top of the\nskeleton.
\nReturns
\n\n\n
\n", "signature": "(self, mesh=False, **kwargs):", "funcdef": "def"}, "skeletor.Skeleton.mend_breaks": {"fullname": "skeletor.Skeleton.mend_breaks", "modulename": "skeletor", "qualname": "Skeleton.mend_breaks", "kind": "function", "doc": "- scene (trimesh.scene.Scene):\nScene with skeleton in it.
\nMend breaks in the skeleton using the original mesh.
\n\nThis works by comparing the connectivity of the original mesh with that\nof the skeleton. If the shortest path between two adjacent vertices on the mesh\nis shorter than the distance between the nodes in the skeleton, a new edge\nis added to the skeleton.
\n\nParameters
\n\n\n
\n\n- dist_mult (float, optional):\nFactor by which the new edge should be shorter than the\ncurrent shortest path between two nodes to be added.\nLower values = fewer false negatives; higher values = fewer\nfalse positive edges.
\n- dist_min (float, optional):\nMinimum distance between nodes to consider adding an edge.\nUse this to avoid adding very short edges.
\n- dist_max (float, optional):\nMaximum distance between nodes to consider adding an edge.\nUse this to avoid adding very long edges.
\nReturns
\n\n\n
\n", "signature": "(self, dist_mult=5, dist_min=0, dist_max=inf):", "funcdef": "def"}, "skeletor.example_mesh": {"fullname": "skeletor.example_mesh", "modulename": "skeletor", "qualname": "example_mesh", "kind": "function", "doc": "- edges ((N, 2) array):\nEdges connecting the skeleton nodes.
\n- vertices ((N, 3) array):\nPositions of the skeleton nodes.
\nLoad and return example mesh.
\n\nThe example mesh is a fruit fly neuron (an olfactory projection neuron of\nthe DA1 glomerulus) segmented from an EM image data set. It is part of the\nJanelia hemibrain data set (see here) [1].
\n\nReferences
\n\n[1] Louis K. Scheffer et al., eLife. 2020. doi: 10.7554/eLife.57443\nA connectome and analysis of the adult Drosophila central brain
\n\nReturns
\n\n\n
\n\n- trimesh.Trimesh
\nExamples
\n\n\n\n", "signature": "():", "funcdef": "def"}, "skeletor.post": {"fullname": "skeletor.post", "modulename": "skeletor.post", "kind": "module", "doc": "\n>>> import skeletor as sk\n>>> # Load this example mesh\n>>> mesh = sk.example_mesh()\n
The
\n\nskeletor.post
module contains functions to post-process skeletons after\nskeletonization.Fixing issues with skeletons
\n\nDepending on your mesh, pre-processing and the parameters you chose for\nskeletonization, chances are that your skeleton will not come out perfectly.
\n\n\n\n
skeletor.post.clean_up
can help you solve some potential issues:\n
\n\n- skeleton nodes (vertices) that outside or right on the surface instead of\ncentered inside the mesh
\n- superfluous \"hairs\" on otherwise straight bits
\n\n\n
skeletor.post.smooth
will smooth out the skeleton.\n\n
skeletor.post.despike
can help you remove spikes in the skeleton where\nsingle nodes are out of aligment.\n\n
skeletor.post.remove_bristles
will remove bristles from the skeleton.Computing radius information
\n\nOnly
\n"}, "skeletor.post.radii": {"fullname": "skeletor.post.radii", "modulename": "skeletor.post", "qualname": "radii", "kind": "function", "doc": "skeletor.skeletonize.by_wavefront()
provides radii off the bat. For all\nother methods, you might want to runskeletor.post.radii
can help you\n(re-)generate radius information for the skeletons.Extract radii for given skeleton table.
\n\nImportant
\n\nThis function really only produces useful radii if the skeleton is centered\ninside the mesh.
\n\nby_wavefront
does that by default whereas all other\nskeletonization methods don't. Your best bet to get centered skeletons is\nto contract the mesh first (sk.pre.contract
).Parameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- \n
method (\"knn\" | \"ray\"):\nWhether and how to add radius information to each node::
\n\n- \"knn\" uses k-nearest-neighbors to get radii: fast but\n potential for being very wrong\n- \"ray\" uses ray-casting to get radii: slower but sometimes\n less wrong\n
- aggregate (\"mean\" | \"median\" | \"max\" | \"min\" | \"percentile75\"):\nFunction used to aggregate radii over sample (i.e. across\nk nearest-neighbors or ray intersections)
\n- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore skeletonization. Note that this might make changes to\nyour mesh inplace!
\n- **kwargs: Keyword arguments are passed to the respective method:
\nFor method \"knn\"::
\n\n\n\nn : int (default 5)\n Radius will be the mean over n nearest-neighbors.\n
For method \"ray\"::
\n\n\n\nn_rays : int (default 20)\n Number of rays to cast for each node.\nprojection : \"sphere\" (default) | \"tangents\"\n Whether to cast rays in a sphere around each node or in a\n circle orthogonally to the node's tangent vector.\nfallback : \"knn\" (default) | None | number\n If a point is outside or right on the surface of the mesh\n the raycasting will return nonesense results. We can either\n ignore those cases (``None``), assign a arbitrary number or\n we can fall back to radii from k-nearest-neighbors (``knn``).\n
Returns
\n\n\n
\n", "signature": "(\ts,\tmesh=None,\tmethod='knn',\taggregate='mean',\tvalidate=False,\t**kwargs):", "funcdef": "def"}, "skeletor.post.clean_up": {"fullname": "skeletor.post.clean_up", "modulename": "skeletor.post", "qualname": "clean_up", "kind": "function", "doc": "- None: But attaches
\nradius
to the skeleton's SWC table. Existing\nvalues are replaced!Clean up the skeleton.
\n\nThis function bundles a bunch of procedures to clean up the skeleton:
\n\n\n
\n\n- Remove twigs that are running parallel to their parent branch
\n- Move nodes outside the mesh back inside (or at least snap to surface)
\nNote that this is not a magic bullet and some of this will not work (well)\nif the original mesh was degenerate (e.g. internal faces or not watertight)\nto begin with.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore cleaning up. Note that this might change your mesh\ninplace!
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If True,\nwill modify the
\ns
inplace.- **kwargs: Keyword arguments are passed to the bundled function.
\nFor
\n\nskeletor.postprocessing.drop_parallel_twigs
::theta : float (default 0.01)\n For each twig we generate the dotproduct between the tangent\n vectors of it and its parents. If these line up perfectly the\n dotproduct will equal 1.
\n\ntheta
determines how much that\n value can differ from 1 for us to still prune the twig: higher\n theta = more pruning.Returns
\n\n\n
\n", "signature": "(s, mesh=None, validate=False, inplace=False, **kwargs):", "funcdef": "def"}, "skeletor.post.smooth": {"fullname": "skeletor.post.smooth", "modulename": "skeletor.post", "qualname": "smooth", "kind": "function", "doc": "- s_clean (skeletor.Skeleton):\nHopefully improved skeleton.
\nSmooth skeleton using rolling windows.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to be processed.
\n- window (int, optional):\nSize (N observations) of the rolling window in number of\nnodes.
\n- to_smooth (list):\nColumns of the node table to smooth. Should work with any\nnumeric column (e.g. 'radius').
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If\nTrue, will modify the
\ns
inplace.Returns
\n\n\n
\n", "signature": "(\ts,\twindow: int = 3,\tto_smooth: list = ['x', 'y', 'z'],\tinplace: bool = False):", "funcdef": "def"}, "skeletor.post.despike": {"fullname": "skeletor.post.despike", "modulename": "skeletor.post", "qualname": "despike", "kind": "function", "doc": "- s (skeletor.Skeleton):\nSkeleton with smoothed node table.
\nRemove spikes in skeleton.
\n\nFor each node A, the euclidean distance to its next successor (parent)\nB and that node's successor C (i.e A->B->C) is computed. If\n\\( \\frac{dist(A,B)}{dist(A,C)}>sigma \\), node B is considered a spike\nand realigned between A and C.
\n\nParameters
\n\n\n
\n\n- x (skeletor.Skeleton):\nSkeleton to be processed.
\n- sigma (float | int, optional):\nThreshold for spike detection. Smaller sigma = more\naggressive spike detection.
\n- max_spike_length (int, optional):\nDetermines how long (# of nodes) a spike can be.
\n- inplace (bool, optional):\nIf False, a copy of the neuron is returned.
\n- reverse (bool, optional):\nIf True, will also walk the segments from proximal\nto distal. Use this to catch spikes on e.g. terminal\nnodes.
\nReturns
\n\n\n
\n", "signature": "(s, sigma=5, max_spike_length=1, inplace=False, reverse=False):", "funcdef": "def"}, "skeletor.post.remove_bristles": {"fullname": "skeletor.post.remove_bristles", "modulename": "skeletor.post", "qualname": "remove_bristles", "kind": "function", "doc": "- s skeletor.Skeleton: Despiked neuron.
\nRemove \"bristles\" that sometimes occurr along the backbone.
\n\nWorks by finding terminal twigs that consist of only a single node.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- los_only (bool):\nIf True, will only remove bristles that are in line of sight of\ntheir parent. If False, will remove all single-node bristles.
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If True,\nwill modify the
\ns
inplace.Returns
\n\n\n
\n", "signature": "(s, mesh=None, los_only=False, inplace=False):", "funcdef": "def"}, "skeletor.pre": {"fullname": "skeletor.pre", "modulename": "skeletor.pre", "kind": "module", "doc": "- s (skeletor.Skeleton):\nSkeleton with single-node twigs removed.
\nThe
\n\nskeletor.pre
module contains functions to pre-process meshes before\nskeletonization.Fixing faulty meshes
\n\nSome skeletonization methods are susceptible to faulty meshes (degenerate faces,\nwrong normals, etc.). If your skeleton looks off, it might be worth a shot\ntrying to fix the mesh using
\n\nskeletor.pre.fix_mesh()
.Mesh contraction
\n\nAs a rule of thumb: the more your mesh looks like a skeleton, the easier it is\nto extract one (duh). Mesh contraction using
\n\nskeletor.pre.contract()
[1] can\nhelp you to get your mesh \"in shape\".References
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n"}, "skeletor.pre.fix_mesh": {"fullname": "skeletor.pre.fix_mesh", "modulename": "skeletor.pre", "qualname": "fix_mesh", "kind": "function", "doc": "Try to fix some common problems with mesh.
\n\n\n
\n\n- Remove infinite values
\n- Merge duplicate vertices
\n- Remove duplicate and degenerate faces
\n- Remove unreference vertices
\n- Drop winglets (faces that have only one adjacent face)
\n- Fix normals (Optional)
\n- Remove disconnected fragments (Optional)
\nParameters
\n\n\n
\n\n- mesh (mesh-like object):\nMesh to fix. Must have
\n.vertices
and.faces
\nproperties.- remove_disconnected (False | int):\nIf a number is given, will iterate over the mesh's\nconnected components and remove those consisting of\nless than the given number of vertices. For example,\n
\nremove_disconnected=5
will drop parts of the\nmesh that consist of five or less connected\nvertices.- inplace (bool):\nIf True, will perform fixes on the input mesh.\nIf False, will make a copy first. This is silently\nignored if
\nmesh
is not already a trimesh.Returns
\n\n\n
\n", "signature": "(\tmesh,\tremote_infinite=True,\tmerge_duplicate_verts=True,\tremove_degenerate_faces=True,\tremove_unreferenced_verts=True,\tdrop_winglets=True,\tfix_normals=False,\tremove_disconnected=False,\tinplace=False):", "funcdef": "def"}, "skeletor.pre.simplify": {"fullname": "skeletor.pre.simplify", "modulename": "skeletor.pre", "qualname": "simplify", "kind": "function", "doc": "- fixed mesh (trimesh.Trimesh):
\nSimplify mesh using Blender 3D.
\n\nUses Blender's \"decimate\" modifier in \"collapse\" mode.
\n\nParameters
\n\n\n
\n\n- mesh (trimesh.Trimesh):\nMesh to simplify.
\n- ratio (float):\nFactor to which to reduce faces. For example, a ratio of 0.5 will\nreduce the number of faces to 50%.
\nReturns
\n\n\n
\n", "signature": "(mesh, ratio):", "funcdef": "def"}, "skeletor.pre.remesh": {"fullname": "skeletor.pre.remesh", "modulename": "skeletor.pre", "qualname": "remesh", "kind": "function", "doc": "- trimesh.Trimesh: Simplified mesh.
\nRemesh mesh using Blender 3D.
\n\nUses Blender's \"remesh\" modifier in \"voxel\" mode.
\n\nParameters
\n\n\n
\n\n- mesh (trimesh.Trimesh):\nMesh to remesh.
\n- voxel_size (float):\nSize of individual voxels (edge length).
\n- adaptivity (float):\nReduces final face count where detail is not important.
\nReturns
\n\n\n
\n", "signature": "(mesh, voxel_size=50, adaptivity=5):", "funcdef": "def"}, "skeletor.pre.contract": {"fullname": "skeletor.pre.contract", "modulename": "skeletor.pre", "qualname": "contract", "kind": "function", "doc": "- trimesh.Trimesh: Remeshed mesh.
\nContract mesh.
\n\nIn a nutshell: this function contracts the mesh by applying rounds of\n_constraint_ Laplacian smoothing. This function can be fairly expensive\nand I highly recommend you play around with
\n\nSL
to contract the\nmesh in as few steps as possible. The contraction doesn't have to be perfect\nfor good skeletonization results (<10%, i.e.epsilon<0.1
).Also: parameterization matters a lot! Default parameters will get you there\nbut playing around with
\n\nSL
andWH0
might speed things up by an order of\nmagnitude.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be contracted. Can be any object (e.g.\na trimesh.Trimesh) that has
\n.vertices
and.faces
\nproperties or a tuple(vertices, faces)
or a dictionary\n{'vertices': vertices, 'faces': faces}
.\nVertices and faces must be (N, 3) numpy arrays.- epsilon (float (0-1), optional):\nTarget contraction rate as measured by the sum of all face\nareas in the contracted versus the original mesh. Algorithm\nwill stop once mesh is contracted below this threshold.\nDepending on your mesh (number of faces, shape) reaching a\nstrong contraction can be extremely costly with comparatively\nlittle benefit for the subsequent skeletonization. Note that\nthe algorithm might stop short of this target if
\niter_lim
\nortime_lim
is reached first or if the sum of face areas\nis increasing from one iteration to the next instead of\ndecreasing.- iter_lim (int (>1), optional):\nMaximum rounds of contractions.
\n- time_lim (int, optional):\nMaximum run time in seconds. Note that this limit is not\nchecked during but after each round of contraction. Hence,\nthe actual total time will likely overshoot
\ntime_lim
.- precision (float, optional):\nSets the precision for finding the least-square solution.\nThis is the main determinant for speed vs quality: lower\nvalues will take (much) longer but will get you closer to an\noptimally contracted mesh. Higher values will be faster but\nthe iterative contractions might stop early.
\n- SL (float, optional):\nFactor by which the contraction matrix is multiplied for\neach iteration. Higher values = quicker contraction, lower\nvalues = more likely to get you an optimal contraction.
\n- WH0 (float, optional):\nInitial weight factor for the attraction constraints.\nThe ratio of the initial weights
\nWL0
andWH0
\ncontrols the smoothness and the degree of contraction of the\nfirst iteration result, thus it determines the amount of\ndetails retained in subsequent and final contracted meshes:\nhigherWH0
= more details retained.- WL0 (\"auto\" | float):\nInitial weight factor for the contraction constraints. By\ndefault (\"auto\"), this will be set to
\n1e-3 * sqrt(A)
\nwithA
being the average face area. This ensures that\ncontraction forces scale with the coarseness of the mesh.- \n
operator (\"cotangent\" | \"umbrella\"):\nWhich Laplacian operator to use:
\n\n\n
- The \"cotangent\" operator (default) takes both topology\nand geometry of the mesh into account and is hence a\nbetter descriptor of the curvature flow. This is the\noperator used in the original paper.
\n- The \"umbrella\" operator (aka \"uniform weighting\") uses\nonly topological features of the mesh. This also makes\nit more robust against flaws in the mesh! Use it when\nthe cotangent operator produces oddly contracted meshes.
\n- progress (bool):\nWhether or not to show a progress bar.
\n- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore collapsing. Degenerate meshes can lead to effectively\ninfinite runtime for this function!
\nReturns
\n\n\n
\n\n- trimesh.Trimesh: Contracted copy of original mesh. The final contraction rate\nis attached to the mesh as
\n.epsilon
property.References
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n", "signature": "(\tmesh,\tepsilon=1e-06,\titer_lim=100,\ttime_lim=None,\tprecision=1e-07,\tSL=2,\tWH0=1,\tWL0='auto',\toperator='cotangent',\tprogress=True,\tvalidate=True):", "funcdef": "def"}, "skeletor.skeletonize": {"fullname": "skeletor.skeletonize", "modulename": "skeletor.skeletonize", "kind": "module", "doc": "The
\n\nskeletor.skeletonize
module contains functions to for skeletonization\nof meshes.There are several approaches to skeletonizing a mesh. Which one to pick depends\n(among other things) on the shape of your mesh and the skeleton quality you want\nto get out of it. In general, unless you mesh already looks like a tube I\nrecommend looking into mesh contraction 4.
\n\nPlease see the documentation of the individual functions for details but here\nis a quick summary:
\n\n\n\n
\n\n\n \n\n\nfunction \nspeed \nrobust \nradii 1 \nmesh map 2 \ndescription \n\n \n\n skeletor.skeletonize.by_wavefront()
+++ \n++ \nyes \nyes \nworks well for tubular meshes \n\n \n\n skeletor.skeletonize.by_vertex_clusters()
++ \n+ \nno \nyes \nbest with contracted meshes 3 \n\n \n\n skeletor.skeletonize.by_teasar()
+ \n++ \nno \nyes \nworks on mesh surface \n\n \n\n skeletor.skeletonize.by_tangent_ball()
++ \n0 \nyes \nyes \nworks with mesh normals \n\n \n\n\n skeletor.skeletonize.by_edge_collapse()
- \n0 \nno \nno \npublished with [1] - never got this to work well \nReferences
\n\n\n\n
[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n\n"}, "skeletor.skeletonize.by_teasar": {"fullname": "skeletor.skeletonize.by_teasar", "modulename": "skeletor.skeletonize", "qualname": "by_teasar", "kind": "function", "doc": "
\n\nSkeletonize a mesh mesh using the TEASAR algorithm [1].
\n\nThis algorithm finds the longest path from a root vertex, invalidates all\nvertices that are within
\n\ninv_dist
. Then picks the second longest (and\nstill valid) path and does the same. Rinse & repeat until all vertices have\nbeen invalidated. It's fast + works very well with tubular meshes, and with\ninv_dist
you have control over the level of detail. Note that by its\nnature the skeleton will be exactly on the surface of the mesh.Based on the implementation by Sven Dorkenwald, Casey Schneider-Mizell and\nForrest Collman in
\n\nmeshparty
(https://github.com/sdorkenw/MeshParty).Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- inv_dist (int | float):\nDistance along the mesh used for invalidation of vertices.\nThis controls how detailed (or noisy) the skeleton will be.
\n- min_length (float, optional):\nIf provided, will skip any branch that is shorter than\n
\nmin_length
. Use this to get rid of noise but note that\nit will lead to vertices not being mapped to skeleton nodes.\nSuch vertices will show up with index -1 in\nSkeleton.mesh_map
.- root (int, optional):\nVertex ID of a root. If not provided will use
\n0
.- progress (bool, optional):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nReferences
\n\n[1] Sato, M., Bitter, I., Bender, M. A., Kaufman, A. E., & Nakajima, M.\n (n.d.). TEASAR: tree-structure extraction algorithm for accurate and\n robust skeletons. In Proceedings the Eighth Pacific Conference on\n Computer Graphics and Applications. IEEE Comput. Soc.\n https://doi.org/10.1109/pccga.2000.883951
\n", "signature": "(mesh, inv_dist, min_length=None, root=None, progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_wavefront": {"fullname": "skeletor.skeletonize.by_wavefront", "modulename": "skeletor.skeletonize", "qualname": "by_wavefront", "kind": "function", "doc": "Skeletonize a mesh using wave fronts.
\n\nThe algorithm tries to find rings of vertices and collapse them to\ntheir center. This is done by propagating a wave across the mesh starting at\na single seed vertex. As the wave travels across the mesh we keep track of\nwhich vertices are are encountered at each step. Groups of connected\nvertices that are \"hit\" by the wave at the same time are considered rings\nand subsequently collapsed. By its nature this works best with tubular meshes.
\n\nParameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- waves (int):\nNumber of waves to run across the mesh. Each wave is\ninitialized at a different vertex which produces slightly\ndifferent rings. The final skeleton is produced from a mean\nacross all waves. More waves produce higher resolution\nskeletons but also introduce more noise.
\n- origins (int | list of ints, optional):\nVertex ID(s) where the wave(s) are initialized. If we run\nout of origins (either because less
\norigins
thanwaves
\nor because no origin for one of the connected components)\nwill fall back to semi-random origin.- step_size (int):\nValues greater 1 effectively lead to binning of rings. For\nexample a stepsize of 2 means that two adjacent vertex rings\nwill be collapsed to the same center. This can help reduce\nnoise in the skeleton (and as such counteracts a large\nnumber of waves).
\n- radius_agg (\"mean\" | \"median\" | \"max\" | \"min\" | \"percentile75\" | \"percentile25\"):\nFunction used to aggregate radii over sample (i.e. the\nvertices forming a ring that we collapse to its center).
\n- progress (bool):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n", "signature": "(\tmesh,\twaves=1,\torigins=None,\tstep_size=1,\tradius_agg='mean',\tprogress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_vertex_clusters": {"fullname": "skeletor.skeletonize.by_vertex_clusters", "modulename": "skeletor.skeletonize", "qualname": "by_vertex_clusters", "kind": "function", "doc": "- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nSkeletonize a (contracted) mesh by clustering vertices.
\n\nThe algorithm traverses the mesh graph and groups vertices together that\nare within a given distance to each other. This uses the geodesic\n(along-the-mesh) distance, not simply the Euclidean distance. Subsequently\nthese groups of vertices are collapsed and re-connected respecting the\ntopology of the input mesh.
\n\nThe graph traversal is fast and scales well, so this method is well suited\nfor meshes with lots of vertices. On the downside: this implementation is\nnot very clever and you might have to play around with the parameters\n(mostly
\n\nsampling_dist
) to get decent results.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- sampling_dist (float | int):\nMaximal distance at which vertices are clustered. This\nparameter should be tuned based on the resolution of your\nmesh (see Examples).
\n- \n
cluster_pos (\"median\" | \"center\"):\nHow to determine the x/y/z coordinates of the collapsed\nvertex clusters (i.e. the skeleton's nodes)::
\n\n\n
- \"median\": Use the vertex closest to cluster's center of\nmass.
\n- \"center\": Use the center of mass. This makes for smoother\nskeletons but can lead to nodes outside the mesh.
\n- progress (bool):\nIf True, will show progress bar.
\nExamples
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> cont = sk.pre.contract(mesh, epsilon=0.1)\n>>> skel = sk.skeletonize.vertex_cluster(cont)\n>>> skel.mesh = mesh\n
Returns
\n\n\n
\n", "signature": "(mesh, sampling_dist, cluster_pos='median', progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_edge_collapse": {"fullname": "skeletor.skeletonize.by_edge_collapse", "modulename": "skeletor.skeletonize", "qualname": "by_edge_collapse", "kind": "function", "doc": "- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nSkeletonize a (contracted) mesh by iteratively collapsing edges.
\n\nThis algorithm (described in [1]) iteratively collapses edges that are part\nof a face until no more faces are left. Edges are chosen based on a cost\nfunction that penalizes collapses that would change the shape of the object\nor would introduce long edges.
\n\nThis is somewhat sensitive to the dimensions of the input mesh: too large\nand you might experience slow-downs or numpy OverflowErrors; too low and\nyou might get skeletons that don't quite match the mesh (e.g. too few nodes).\nIf you experience either, try down- or up-scaling your mesh, respectively.
\n\nParameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- shape_weight (float, optional):\nWeight for shape costs which penalize collapsing edges that\nwould drastically change the shape of the object.
\n- sample_weight (float, optional):\nWeight for sampling costs which penalize collapses that\nwould generate prohibitively long edges.
\n- progress (bool):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nReferences
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n", "signature": "(mesh, shape_weight=1, sample_weight=0.1, progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_tangent_ball": {"fullname": "skeletor.skeletonize.by_tangent_ball", "modulename": "skeletor.skeletonize", "qualname": "by_tangent_ball", "kind": "function", "doc": "Skeletonize a mesh by finding the maximal tangent ball.
\n\nThis algorithm casts a ray from every mesh vertex along its inverse normals\n(requires
\n\nncollpyde
). It then creates a sphere that is tangent to the\nvertex and to where the ray hit the inside of a face on the opposite side.\nNext it drops spheres that overlap with another, larger sphere. Modified\nfrom [1].The method works best on smooth meshes and is rather sensitive to errors in\nthe mesh such as incorrect normals (see
\n\nskeletor.pre.fix_mesh
), internal\nfaces, noisy surface (try smoothing or downsampling) or holes in the mesh.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.Returns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nExamples
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> fixed = sk.pre.fix_mesh(mesh, fix_normals=True, remove_disconnected=10)\n>>> skel = sk.skeletonize.by_tangent_ball(fixed)\n
References
\n\n[1] Ma, J., Bae, S.W. & Choi, S. 3D medial axis point approximation using\n nearest neighbors and the normal field. Vis Comput 28, 7\u201319 (2012).\n https://doi.org/10.1007/s00371-011-0594-7
\n", "signature": "(mesh):", "funcdef": "def"}}, "docInfo": {"skeletor": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3013}, "skeletor.Skeleton": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 161}, "skeletor.Skeleton.__init__": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "skeletor.Skeleton.swc": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.mesh": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.mesh_map": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.method": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.edges": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "skeletor.Skeleton.vertices": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.radius": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5}, "skeletor.Skeleton.skeleton": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.skel_map": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "skeletor.Skeleton.leafs": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.reindex": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 6}, "skeletor.Skeleton.copy": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 8}, "skeletor.Skeleton.get_graph": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 34}, "skeletor.Skeleton.get_segments": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 130}, "skeletor.Skeleton.save_swc": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 29}, "skeletor.Skeleton.scene": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 35}, "skeletor.Skeleton.show": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 60}, "skeletor.Skeleton.mend_breaks": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 199}, "skeletor.example_mesh": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 158}, "skeletor.post": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 190}, "skeletor.post.radii": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 402}, "skeletor.post.clean_up": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 303}, "skeletor.post.smooth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 95, "bases": 0, "doc": 122}, "skeletor.post.despike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 189}, "skeletor.post.remove_bristles": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 156}, "skeletor.pre": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 143}, "skeletor.pre.fix_mesh": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 204}, "skeletor.pre.simplify": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 83}, "skeletor.pre.remesh": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 86}, "skeletor.pre.contract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 134, "bases": 0, "doc": 762}, "skeletor.skeletonize": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 437}, "skeletor.skeletonize.by_teasar": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 382}, "skeletor.skeletonize.by_wavefront": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 388}, "skeletor.skeletonize.by_vertex_clusters": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 477}, "skeletor.skeletonize.by_edge_collapse": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 297}, "skeletor.skeletonize.by_tangent_ball": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 390}}, "length": 39, "save": true}, "index": {"qualname": {"root": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 20}}}}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.method": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.edges": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.vertices": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.radius": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}}, "fullname": {"root": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 39}, "n": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 20, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}}}}}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.method": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.edges": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.vertices": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.radius": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 6}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}}, "annotation": {"root": {"docs": {}, "df": 0}}, "default_value": {"root": {"docs": {}, "df": 0}}, "signature": {"root": {"0": {"6": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "7": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}, "1": {"0": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "2": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "3": {"9": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.smooth": {"tf": 2.449489742783178}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 6}, "docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "5": {"0": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}, "docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 3}, "docs": {"skeletor.Skeleton.__init__": {"tf": 5.656854249492381}, "skeletor.Skeleton.reindex": {"tf": 4.242640687119285}, "skeletor.Skeleton.copy": {"tf": 3.1622776601683795}, "skeletor.Skeleton.get_graph": {"tf": 3.1622776601683795}, "skeletor.Skeleton.get_segments": {"tf": 5.291502622129181}, "skeletor.Skeleton.save_swc": {"tf": 3.7416573867739413}, "skeletor.Skeleton.scene": {"tf": 4.898979485566356}, "skeletor.Skeleton.show": {"tf": 4.898979485566356}, "skeletor.Skeleton.mend_breaks": {"tf": 5.830951894845301}, "skeletor.example_mesh": {"tf": 2.6457513110645907}, "skeletor.post.radii": {"tf": 7.615773105863909}, "skeletor.post.clean_up": {"tf": 6.324555320336759}, "skeletor.post.smooth": {"tf": 8.717797887081348}, "skeletor.post.despike": {"tf": 6.48074069840786}, "skeletor.post.remove_bristles": {"tf": 5.830951894845301}, "skeletor.pre.fix_mesh": {"tf": 9.1104335791443}, "skeletor.pre.simplify": {"tf": 3.7416573867739413}, "skeletor.pre.remesh": {"tf": 5.0990195135927845}, "skeletor.pre.contract": {"tf": 10.246950765959598}, "skeletor.skeletonize.by_teasar": {"tf": 6.164414002968976}, "skeletor.skeletonize.by_wavefront": {"tf": 7.615773105863909}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 5.656854249492381}, "skeletor.skeletonize.by_edge_collapse": {"tf": 5.830951894845301}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.1622776601683795}}, "df": 24, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 8}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1.4142135623730951}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}, "x": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 6}}}}}, "f": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "v": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}}, "df": 10}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "h": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "l": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 4}}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "y": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "z": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0}}, "doc": {"root": {"0": {"0": {"0": {"0": {"0": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"8": {"5": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"1": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "5": {"8": {"5": {"9": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"4": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 7, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "1": {"0": {"0": {"7": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"0": {"0": {"3": {"7": {"1": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "docs": {"skeletor": {"tf": 1}}, "df": 1}, "6": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"8": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}, "1": {"0": {"9": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0}, "9": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"5": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"7": {"7": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"9": {"9": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"7": {"9": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"docs": {"skeletor.skeletonize": {"tf": 2}}, "df": 1}, "4": {"4": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"4": {"4": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 3.7416573867739413}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 11, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "2": {"0": {"0": {"0": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "docs": {}, "df": 0}, "1": {"2": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"0": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "2": {"0": {"7": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"6": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"2": {"1": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"4": {"7": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"4": {"0": {"7": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "8": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}, "3": {"1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "2": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "3": {"3": {"3": {"3": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"7": {"2": {"0": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"skeletor": {"tf": 2.449489742783178}}, "df": 1}, "docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}, "4": {"4": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "7": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}, "5": {"0": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}, "2": {"5": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"2": {"5": {"8": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"4": {"4": {"3": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}}, "df": 4}, "6": {"2": {"1": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "5": {"8": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"6": {"6": {"6": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"5": {"1": {"9": {"5": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"4": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0}, "6": {"5": {"1": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2, "\u2013": {"1": {"9": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "8": {"6": {"1": {"7": {"docs": {"skeletor.skeletonize": {"tf": 2}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"3": {"9": {"5": {"1": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"0": {"2": {"3": {"4": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"6": {"0": {"1": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"8": {"5": {"1": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"1": {"2": {"1": {"1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 39.54743986657038}, "skeletor.Skeleton": {"tf": 8}, "skeletor.Skeleton.__init__": {"tf": 1.7320508075688772}, "skeletor.Skeleton.swc": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mesh": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mesh_map": {"tf": 1.7320508075688772}, "skeletor.Skeleton.method": {"tf": 1.7320508075688772}, "skeletor.Skeleton.edges": {"tf": 1.7320508075688772}, "skeletor.Skeleton.vertices": {"tf": 1.7320508075688772}, "skeletor.Skeleton.radius": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 2.23606797749979}, "skeletor.Skeleton.leafs": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reindex": {"tf": 1.7320508075688772}, "skeletor.Skeleton.copy": {"tf": 1.7320508075688772}, "skeletor.Skeleton.get_graph": {"tf": 4}, "skeletor.Skeleton.get_segments": {"tf": 7.211102550927978}, "skeletor.Skeleton.save_swc": {"tf": 3.872983346207417}, "skeletor.Skeleton.scene": {"tf": 3.872983346207417}, "skeletor.Skeleton.show": {"tf": 5.196152422706632}, "skeletor.Skeleton.mend_breaks": {"tf": 6.928203230275509}, "skeletor.example_mesh": {"tf": 8.366600265340756}, "skeletor.post": {"tf": 6.855654600401044}, "skeletor.post.radii": {"tf": 10}, "skeletor.post.clean_up": {"tf": 8.774964387392123}, "skeletor.post.smooth": {"tf": 6.855654600401044}, "skeletor.post.despike": {"tf": 7.745966692414834}, "skeletor.post.remove_bristles": {"tf": 7.211102550927978}, "skeletor.pre": {"tf": 5.0990195135927845}, "skeletor.pre.fix_mesh": {"tf": 8.366600265340756}, "skeletor.pre.simplify": {"tf": 5.916079783099616}, "skeletor.pre.remesh": {"tf": 6.4031242374328485}, "skeletor.pre.contract": {"tf": 12.36931687685298}, "skeletor.skeletonize": {"tf": 14.966629547095765}, "skeletor.skeletonize.by_teasar": {"tf": 9.539392014169456}, "skeletor.skeletonize.by_wavefront": {"tf": 9.16515138991168}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 14.247806848775006}, "skeletor.skeletonize.by_edge_collapse": {"tf": 8.366600265340756}, "skeletor.skeletonize.by_tangent_ball": {"tf": 13}}, "df": 39, "w": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "h": {"0": {"docs": {"skeletor.pre.contract": {"tf": 2}}, "df": 1}, "docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 9}}}}, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}}, "df": 4, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 5}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 3, "s": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 2}}}, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2.449489742783178}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_teasar": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 16}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.449489742783178}}, "df": 2, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 2.449489742783178}}, "df": 2}}}, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 3}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}}, "df": 2}}}}, "l": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}}, "i": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 8, "s": {"docs": {"skeletor": {"tf": 4}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 19, "t": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 8, "o": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 3}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 7}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "v": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2.449489742783178}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 16}, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 13, "k": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 5, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 5.656854249492381}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 2.6457513110645907}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 3}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 15}, "n": {"docs": {"skeletor": {"tf": 4.69041575982343}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 2.6457513110645907}, "skeletor.post.smooth": {"tf": 2.449489742783178}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 26, "s": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 3.1622776601683795}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12}}}}}, "e": {"docs": {"skeletor": {"tf": 3}, "skeletor.post": {"tf": 1}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 8}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.8284271247461903}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.post.despike": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3.7416573867739413}, "skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2}}}}}, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}}}}}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 2.23606797749979}, "skeletor.Skeleton.show": {"tf": 2}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.despike": {"tf": 1.7320508075688772}}, "df": 1}}, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}, "t": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "l": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 2.23606797749979}}, "df": 1, "s": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 11, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 6}, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9}}}}, "p": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2.23606797749979}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 9}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "n": {"docs": {"skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 16}}}, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor": {"tf": 2}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "w": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 7}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 2.8284271247461903}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.3166247903554}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 14}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 3.1622776601683795}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 14}, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}}, "e": {"docs": {"skeletor": {"tf": 6.244997998398398}, "skeletor.Skeleton": {"tf": 2}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1.7320508075688772}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 3.872983346207417}, "skeletor.example_mesh": {"tf": 2}, "skeletor.post": {"tf": 3}, "skeletor.post.radii": {"tf": 3.4641016151377544}, "skeletor.post.clean_up": {"tf": 3.605551275463989}, "skeletor.post.smooth": {"tf": 2}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 6.324555320336759}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 3.7416573867739413}, "skeletor.skeletonize.by_wavefront": {"tf": 3.872983346207417}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 4.358898943540674}, "skeletor.skeletonize.by_edge_collapse": {"tf": 3}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.3166247903554}}, "df": 24, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.clean_up": {"tf": 1.7320508075688772}}, "df": 1}}, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"skeletor": {"tf": 6.244997998398398}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 4}, "skeletor.post.clean_up": {"tf": 2.8284271247461903}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 2.23606797749979}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.4641016151377544}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 3}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 23, "p": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 3, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 3}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 18}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 5, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 4}}}, "i": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}, "w": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6, "o": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 5, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}}, "df": 5}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"1": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}}, "df": 2, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 6}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}}, "df": 2, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 4}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}}}, "h": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "s": {"docs": {"skeletor.skeletonize": {"tf": 2.449489742783178}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {"skeletor": {"tf": 3.3166247903554}, "skeletor.post": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 8, "r": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 9}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {"skeletor.post.despike": {"tf": 2}}, "df": 1, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 3.4641016151377544}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 4, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2}, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 7}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 13}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}}, "df": 2}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "u": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1, "n": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "i": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}}, "df": 5}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3}, "skeletor.example_mesh": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "y": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}}}}}}, "b": {"docs": {"skeletor.post.despike": {"tf": 2}}, "df": 1, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 7}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 14, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 6}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "y": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 14}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 13}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 6.782329983125268}, "skeletor.Skeleton": {"tf": 2.6457513110645907}, "skeletor.Skeleton.skel_map": {"tf": 1.4142135623730951}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 2.23606797749979}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2.8284271247461903}, "skeletor.post.clean_up": {"tf": 2.6457513110645907}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 2.6457513110645907}, "skeletor.pre.fix_mesh": {"tf": 3}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 4.242640687119285}, "skeletor.skeletonize": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3.7416573867739413}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.4641016151377544}}, "df": 22, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 3}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 8}}, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 3}, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.Skeleton": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 6, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "x": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 1}}}, "y": {"docs": {"skeletor": {"tf": 2.23606797749979}}, "df": 1}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 8}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "r": {"docs": {"skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 3}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7}}, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "+": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {"skeletor": {"tf": 10.63014581273465}, "skeletor.example_mesh": {"tf": 3}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3.872983346207417}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.4641016151377544}}, "df": 6}, "h": {"docs": {}, "df": 0, "z": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "l": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {"skeletor": {"tf": 5.0990195135927845}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 2.8284271247461903}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.1622776601683795}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 3.3166247903554}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.6457513110645907}}, "df": 21, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 10, "d": {"docs": {"skeletor": {"tf": 4.123105625617661}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 3}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.23606797749979}}, "df": 17}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"skeletor.post.smooth": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "o": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 6}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 11, "a": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 11, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2}}, "df": 3}}}}, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "k": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 4}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.smooth": {"tf": 2}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 4.242640687119285}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_wavefront": {"tf": 3.3166247903554}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 25, "f": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}, "r": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 13, "g": {"docs": {}, "df": 0, "/": {"1": {"0": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "@": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 7}}, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 15, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 6}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 7}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 2.449489742783178}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 2.449489742783178}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 14, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 3}, "skeletor.skeletonize.by_wavefront": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 16}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 8}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_teasar": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.23606797749979}}, "df": 12}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 3}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 7}}, "l": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 15, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 12}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "{": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"skeletor": {"tf": 3}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3}, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 4}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 9}}, "w": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}}, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}, "l": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 2.23606797749979}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 2.23606797749979}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2.449489742783178}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "f": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}, "skeletor.example_mesh": {"tf": 1.4142135623730951}}, "df": 2, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "w": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "r": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}}, "i": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 1}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "d": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "s": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}, "s": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 20}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.show": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 8}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.show": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 4}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}}, "df": 2}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 4, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 20}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"3": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.skeleton": {"tf": 1}}, "df": 1}}, "docs": {"skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "p": {"3": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 2}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "o": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5}, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}}, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}}}, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1, "t": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.post": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1}}, "df": 3, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"2": {"5": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"5": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}}, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}, "h": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}}, "df": 2}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "x": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "z": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}, "z": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"skeletor": {"fullname": "skeletor", "modulename": "skeletor", "kind": "module", "doc": "What is skeletor?
\n\nUnlike its namesake, this
\n\nskeletor
\ndoes not (yet) seek to conquer Eternia but to turn meshes into skeletons.Before we get started some terminology:
\n\n\n
\n\n- a mesh is something that consists of vertices and faces
\n- a skeleton is a (hierarchical) tree-like structure consisting of vertices\n(also called nodes) and edges that connect them
\nSkeletons are useful for a range of reasons. For example:
\n\n\n
\n\n- Typically smaller (less vertices) than the mesh
\n- Have an implicit sense of topology (e.g. \"this node is distal to that node\")
\nExtracting skeletons from meshes (or other types of data such as voxels) is\nnon-trivial and there are a great many research papers exploring various\ndifferent approaches (see Google scholar).
\n\n\n\n
skeletor
implements some algorithms that I found useful in my work with\nneurons. In my experience there is unfortuntely no magic bullet when it\ncomes to skeletonization and chances are you will have to fiddle around a bit\nto get decent results.Installation
\n\nFrom PyPI:
\n\n\n\n\n\npip3 install skeletor\n
For the bleeding-edge version from Github:
\n\n\n\n\n\npip3 install git+https://github.com/navis-org/skeletor@master\n
Getting started
\n\nA skeletonization pipeline typically consists of:
\n\n\n
\n\n- Some pre-processing of the mesh (e.g. fixing some potential errors like\ndegenerate faces, unreferenced vertices, etc.)
\n- The skeletonization itself
\n- Some post-processing of the skeleton (e.g. adding radius information, smoothing, etc.)
\n
\n\nHere is a complete list of available functions:
\n\n\n\n
\n\n\n \n\n\nfunction \ndescription \n\n \nexample data \n\n \n \n\n skeletor.example_mesh()
load an example mesh \n\n \npre-processing \n\n \n \n\n skeletor.pre.fix_mesh()
fix some common errors found in meshes \n\n \n\n skeletor.pre.remesh()
re-generate mesh (uses Blender 3D) \n\n \n\n skeletor.pre.simplify()
reduce mesh complexity (uses Blender 3D) \n\n \n\n skeletor.pre.contract()
contract mesh to facilitate skeletonization [1] \n\n \nskeletonization \n\n \n \n\n skeletor.skeletonize.by_wavefront()
very fast, works well for tubular meshes (like neurons) \n\n \n\n skeletor.skeletonize.by_vertex_clusters()
very fast but needs mesh to be contracted (see above) \n\n \n\n skeletor.skeletonize.by_edge_collapse()
presented in [1] but never got this to work well \n\n \n\n skeletor.skeletonize.by_teasar()
very fast and robust, works on mesh surface \n\n \n\n skeletor.skeletonize.by_tangent_ball()
very fast, best on smooth meshes \n\n \npostprocessing \n\n \n \n\n skeletor.post.clean_up()
fix some potential errors in the skeleton \n\n \n\n skeletor.post.radii()
add radius information using various method \n\n \n\n skeletor.post.smooth()
smooth the skeleton \n\n \n\n skeletor.post.remove_bristles()
remove single-node bristles from the skeleton \n\n \n\n\n skeletor.post.despike()
smooth out jumps in the skeleton \n
\n\nSee docstrings of the respective functions for details.
\n\nA pipeline might look like this:
\n\n\n
\n\n- \n
skeletor.pre.fix_mesh()
to fix the mesh- \n
skeletor.pre.simplify()
to simplify the mesh- \n
skeletor.pre.contract()
to contract the mesh [1]- \n
skeletor.skeletonize.by_vertex_clusters()
to generate a skeleton- \n
skeletor.post.clean_up()
to clean up some potential issues with the skeleton- \n
skeletor.post.smooth()
to smooth the skeleton- \n
skeletor.post.radii()
to extract radii either by k-nearest neighbours or ray-castingIn my experience there is no one-size-fits-all. You will have to play around to\nfind the right approach and parameters to get nice skeletons for your meshes.\nIf you need help just open an issue.
\n\nAlso check out the Gotchas below!
\n\nExamples
\n\nFirst load the example mesh (a fruit fly neuron):
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> mesh\n<trimesh.Trimesh(vertices.shape=(6582, 3), faces.shape=(13772, 3))>\n
Next see if there is stuff to fix in the mesh (degenerate faces, duplicate\nvertices, etc.):
\n\n\n\n\n\n>>> fixed = sk.pre.fix_mesh(mesh, remove_disconnected=5, inplace=False)\n>>> fixed\n<trimesh.Trimesh(vertices.shape=(6213, 3), faces.shape=(12805, 3))>\n
Now for tubular meshes like this neuron, the \"wave front\" skeletonization method\nperforms really well: it works by casting waves across the mesh and collapsing\nthe resulting rings into a skeleton (kinda like when you throw a stone in a\npond and track the expanding ripples).
\n\n\n\n\n\n>>> skel = sk.skeletonize.by_wavefront(fixed, waves=1, step_size=1)\n>>> skel\n<Skeleton(vertices=(1258, 3), edges=(1194, 2), method=wavefront)>\n
All skeletonization methods return a
\n\nSkeleton
object. These are just\nconvenient objects to bundle the various outputs of the skeletonization.\n\n\n\n>>> # x/y/z location of skeleton vertices (nodes)\n>>> skel.vertices\narray([[16744, 36720, 26407],\n ...,\n [22076, 23217, 24472]])\n>>> # child -> parent edges\n>>> skel.edges\narray([[ 64, 31],\n ...,\n [1257, 1252]])\n>>> # Mapping for mesh to skeleton vertex indices\n>>> skel.mesh_map\narray([ 157, 158, 1062, ..., 525, 474, 547])\n>>> # SWC table\n>>> skel.swc.head()\n node_id parent_id x y z radius\n0 0 -1 16744.005859 36720.058594 26407.902344 0.000000\n1 1 -1 5602.751953 22266.756510 15799.991211 7.542587\n2 2 -1 16442.666667 14999.978516 10887.916016 5.333333\n
SWC is a commonly used format for saving skeletons.
\n\nSkeleton
objects\nhave a method for quickly saving a correctly formatted SWC file:\n\n\n\n>>> skel.save_swc('~/Documents/my_skeleton.swc')\n
If you installed
\n\npyglet
(see above) you can also usetrimesh
's plotting\ncapabilities to inspect the results:\n\n\n\n\n\n>>> skel.show(mesh=True)\n
That looks pretty good already but let's run some pro-forma postprocessing.
\n\n\n\n\n\n>>> sk.post.clean_up(skel, inplace=True)\n<Skeleton(vertices=(1071, 3), edges=(1070, 2))>\n
So that would be a full pipeline mesh to skeleton. Don't expect your own meshes\nto produce such nice results off the bat though. Chances are you will need to\nplay around to find the right recipe. If you don't know where to start, I suggest\nyou try out mesh contraction + vertex clustering first:
\n\n\n\n\n\n>>> import skeletor as sk\n>>> # Load the example mesh that ships with skeletor\n>>> mesh = sk.example_mesh()\n>>> # Alternatively use trimesh to load/construct your own mesh:\n>>> # import trimesh as tm\n>>> # mesh = tm.Trimesh(vertices, faces)\n>>> # mesh = tm.load_mesh('some/mesh.obj')\n>>> # Run some general clean-up (see docstring for details)\n>>> fixed = sk.pre.fix_mesh(mesh, remove_disconnected=5, inplace=False)\n>>> # Contract mesh to 10% (0.1) of original volume\n>>> cont = sk.pre.contract(fixed, epsilon=0.1)\n>>> # Skeletonize\n>>> skel = sk.skeletonize.by_vertex_clusters(cont, sampling_dist=100)\n>>> # Replace contracted mesh with original for postprocessing and plotting\n>>> skel.mesh = fixed\n>>> # Add radii (vertex cluster method does not do that automatically)\n>>> sk.post.radii(skel, method='knn')\n>>> skel.show(mesh=True)\n
Gotchas
\n\n\n
\n\n- while this is a general purpose library, my personal focus is on neurons and\nthis has certainly influenced things like default parameter values and certain\npost-processing steps
\n- meshes need to be triangular (we are using
\ntrimesh
)- use
\nsk.pre.simplify
if your mesh is very complex (half a million vertices is\nwhere things start getting sluggish)- a good mesh contraction is often half the battle but it can be tricky to get\nto work
\n- if the mesh consists of multiple disconnected pieces the skeleton will\nlikewise be fragmented (i.e. will have multiple roots)
\n- it's often a good idea to fix issues with the skeleton in postprocessing rather\nthan trying to get the skeletonization to be perfect
\nBenchmarks
\n\n\n\nBenchmarks\nwere run on a 2018 MacBook Pro (2.2 GHz Core i7, 32Gb memory) with optional\n
\n\nfastremap
dependency installed. Note some of these functions (e.g.\ncontraction and TEASAR/vertex cluster skeletonization) vary a lot in\nspeed based on parameterization.What about algorithm
\n\nX
?\n\n
skeletor
contains some algorithms that I found easy enough to implement\nand useful for my work with neurons. If you have some interesting paper/approach\nthat could make a nice addition toskeletor
, please get in touch on Github.\nPull requests are always welcome!References
\n\n\n\n
[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
The abstract and the paper can be found here.\nAlso see this YouTube video.
\n\nSome of the code in skeletor was modified from the\nPy_BL_MeshSkeletonization\naddon created by #0K Srinivasan Ramachandran and published under GPL3.
\n\nTop-level functions and classes
\n\nAt top-level we only expose
\n"}, "skeletor.Skeleton": {"fullname": "skeletor.Skeleton", "modulename": "skeletor", "qualname": "Skeleton", "kind": "class", "doc": "example_mesh()
and theSkeleton
class (which\nyou probably won't ever need to touch manually). Everything else is neatly\ntucked away into submodules (see side-bar or above table).Class representing a skeleton.
\n\nTypically returned as results from a skeletonization.
\n\nAttributes
\n\n\n
\n"}, "skeletor.Skeleton.__init__": {"fullname": "skeletor.Skeleton.__init__", "modulename": "skeletor", "qualname": "Skeleton.__init__", "kind": "function", "doc": "\n", "signature": "(swc, mesh=None, mesh_map=None, method=None)"}, "skeletor.Skeleton.swc": {"fullname": "skeletor.Skeleton.swc", "modulename": "skeletor", "qualname": "Skeleton.swc", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.mesh": {"fullname": "skeletor.Skeleton.mesh", "modulename": "skeletor", "qualname": "Skeleton.mesh", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.mesh_map": {"fullname": "skeletor.Skeleton.mesh_map", "modulename": "skeletor", "qualname": "Skeleton.mesh_map", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.method": {"fullname": "skeletor.Skeleton.method", "modulename": "skeletor", "qualname": "Skeleton.method", "kind": "variable", "doc": "\n"}, "skeletor.Skeleton.edges": {"fullname": "skeletor.Skeleton.edges", "modulename": "skeletor", "qualname": "Skeleton.edges", "kind": "variable", "doc": "- swc (pd.DataFrame, optional):\nSWC table.
\n- vertices ((N, 3) array):\nVertex (node) positions.
\n- edges ((M, 2) array):\nIndices of connected vertex pairs.
\n- radii ((N, ) array, optional):\nRadii for each vertex (node) in the skeleton.
\n- mesh (trimesh, optional):\nThe original mesh.
\n- mesh_map (array, optional):\nSame length as
\nmesh
. Maps mesh vertices to vertices (nodes)\nin the skeleton.- skel_map (array of arrays, optional):\nInverse of
\nmesh_map
: maps skeleton vertices (nodes) to mesh\nvertices.- method (str, optional):\nWhich method was used to generate the skeleton.
\nReturn skeleton edges.
\n"}, "skeletor.Skeleton.vertices": {"fullname": "skeletor.Skeleton.vertices", "modulename": "skeletor", "qualname": "Skeleton.vertices", "kind": "variable", "doc": "Return skeleton vertices (nodes).
\n"}, "skeletor.Skeleton.radius": {"fullname": "skeletor.Skeleton.radius", "modulename": "skeletor", "qualname": "Skeleton.radius", "kind": "variable", "doc": "Return radii.
\n"}, "skeletor.Skeleton.skeleton": {"fullname": "skeletor.Skeleton.skeleton", "modulename": "skeletor", "qualname": "Skeleton.skeleton", "kind": "variable", "doc": "Skeleton as trimesh Path3D.
\n"}, "skeletor.Skeleton.skel_map": {"fullname": "skeletor.Skeleton.skel_map", "modulename": "skeletor", "qualname": "Skeleton.skel_map", "kind": "variable", "doc": "Skeleton vertex (nodes) to mesh vertices. Based on
\n"}, "skeletor.Skeleton.roots": {"fullname": "skeletor.Skeleton.roots", "modulename": "skeletor", "qualname": "Skeleton.roots", "kind": "variable", "doc": "mesh_map
.Root node(s).
\n"}, "skeletor.Skeleton.leafs": {"fullname": "skeletor.Skeleton.leafs", "modulename": "skeletor", "qualname": "Skeleton.leafs", "kind": "variable", "doc": "Leaf nodes (includes root).
\n"}, "skeletor.Skeleton.reindex": {"fullname": "skeletor.Skeleton.reindex", "modulename": "skeletor", "qualname": "Skeleton.reindex", "kind": "function", "doc": "Clean up skeleton.
\n", "signature": "(self, inplace=False):", "funcdef": "def"}, "skeletor.Skeleton.reroot": {"fullname": "skeletor.Skeleton.reroot", "modulename": "skeletor", "qualname": "Skeleton.reroot", "kind": "function", "doc": "Reroot the skeleton.
\n\nParameters
\n\n\n
\n\n- new_root (int):\nIndex of node to use as new root. If the skeleton\nconsists of multiple trees, only the tree containing the\nnew root will be updated.
\nReturns
\n\n\n
\n", "signature": "(self, new_root):", "funcdef": "def"}, "skeletor.Skeleton.copy": {"fullname": "skeletor.Skeleton.copy", "modulename": "skeletor", "qualname": "Skeleton.copy", "kind": "function", "doc": "- Skeleton: Skeleton with new root.
\nReturn copy of the skeleton.
\n", "signature": "(self):", "funcdef": "def"}, "skeletor.Skeleton.get_graph": {"fullname": "skeletor.Skeleton.get_graph", "modulename": "skeletor", "qualname": "Skeleton.get_graph", "kind": "function", "doc": "Generate networkX representation of the skeletons.
\n\nDistance between nodes will be used as edge weights.
\n\nReturns
\n\n\n
\n", "signature": "(self):", "funcdef": "def"}, "skeletor.Skeleton.get_segments": {"fullname": "skeletor.Skeleton.get_segments", "modulename": "skeletor", "qualname": "Skeleton.get_segments", "kind": "function", "doc": "- networkx.DiGraph
\nGenerate a list of linear segments while maximizing segment lengths.
\n\nParameters
\n\n\n
\n\n- weight ('weight' | None, optional):\nIf
\n\"weight\"
use physical, geodesic length to determine\nsegment length. IfNone
use number of nodes (faster).- return_lengths (bool):\nIf True, also return lengths of segments according to
\nweight
.Returns
\n\n\n
\n", "signature": "(self, weight='weight', return_lengths=False):", "funcdef": "def"}, "skeletor.Skeleton.save_swc": {"fullname": "skeletor.Skeleton.save_swc", "modulename": "skeletor", "qualname": "Skeleton.save_swc", "kind": "function", "doc": "- segments (list):\nSegments as list of lists containing node IDs. List is\nsorted by segment lengths.
\n- lengths (list):\nLength for each segment according to
\nweight
. Only provided\nifreturn_lengths
is True.Save skeleton in SWC format.
\n\nParameters
\n\n\n
\n", "signature": "(self, filepath):", "funcdef": "def"}, "skeletor.Skeleton.scene": {"fullname": "skeletor.Skeleton.scene", "modulename": "skeletor", "qualname": "Skeleton.scene", "kind": "function", "doc": "- filepath (path-like):\nFilepath to save SWC to.
\nReturn a Scene object containing the skeleton.
\n\nReturns
\n\n\n
\n", "signature": "(self, mesh=False, **kwargs):", "funcdef": "def"}, "skeletor.Skeleton.show": {"fullname": "skeletor.Skeleton.show", "modulename": "skeletor", "qualname": "Skeleton.show", "kind": "function", "doc": "- scene (trimesh.scene.scene.Scene):\nContains the skeleton and optionally the mesh.
\nRender the skeleton in an opengl window. Requires pyglet.
\n\nParameters
\n\n\n
\n\n- mesh (bool):\nIf True, will render transparent mesh on top of the\nskeleton.
\nReturns
\n\n\n
\n", "signature": "(self, mesh=False, **kwargs):", "funcdef": "def"}, "skeletor.Skeleton.mend_breaks": {"fullname": "skeletor.Skeleton.mend_breaks", "modulename": "skeletor", "qualname": "Skeleton.mend_breaks", "kind": "function", "doc": "- scene (trimesh.scene.Scene):\nScene with skeleton in it.
\nMend breaks in the skeleton using the original mesh.
\n\nThis works by comparing the connectivity of the original mesh with that\nof the skeleton. If the shortest path between two adjacent vertices on the mesh\nis shorter than the distance between the nodes in the skeleton, a new edge\nis added to the skeleton.
\n\nParameters
\n\n\n
\n\n- dist_mult (float, optional):\nFactor by which the new edge should be shorter than the\ncurrent shortest path between two nodes to be added.\nLower values = fewer false negatives; higher values = fewer\nfalse positive edges.
\n- dist_min (float, optional):\nMinimum distance between nodes to consider adding an edge.\nUse this to avoid adding very short edges.
\n- dist_max (float, optional):\nMaximum distance between nodes to consider adding an edge.\nUse this to avoid adding very long edges.
\nReturns
\n\n\n
\n", "signature": "(self, dist_mult=5, dist_min=0, dist_max=inf):", "funcdef": "def"}, "skeletor.example_mesh": {"fullname": "skeletor.example_mesh", "modulename": "skeletor", "qualname": "example_mesh", "kind": "function", "doc": "- edges ((N, 2) array):\nEdges connecting the skeleton nodes.
\n- vertices ((N, 3) array):\nPositions of the skeleton nodes.
\nLoad and return example mesh.
\n\nThe example mesh is a fruit fly neuron (an olfactory projection neuron of\nthe DA1 glomerulus) segmented from an EM image data set. It is part of the\nJanelia hemibrain data set (see here) [1].
\n\nReferences
\n\n[1] Louis K. Scheffer et al., eLife. 2020. doi: 10.7554/eLife.57443\nA connectome and analysis of the adult Drosophila central brain
\n\nReturns
\n\n\n
\n\n- trimesh.Trimesh
\nExamples
\n\n\n\n", "signature": "():", "funcdef": "def"}, "skeletor.post": {"fullname": "skeletor.post", "modulename": "skeletor.post", "kind": "module", "doc": "\n>>> import skeletor as sk\n>>> # Load this example mesh\n>>> mesh = sk.example_mesh()\n
The
\n\nskeletor.post
module contains functions to post-process skeletons after\nskeletonization.Fixing issues with skeletons
\n\nDepending on your mesh, pre-processing and the parameters you chose for\nskeletonization, chances are that your skeleton will not come out perfectly.
\n\n\n\n
skeletor.post.clean_up
can help you solve some potential issues:\n
\n\n- skeleton nodes (vertices) that outside or right on the surface instead of\ncentered inside the mesh
\n- superfluous \"hairs\" on otherwise straight bits
\n\n\n
skeletor.post.smooth
will smooth out the skeleton.\n\n
skeletor.post.despike
can help you remove spikes in the skeleton where\nsingle nodes are out of aligment.\n\n
skeletor.post.remove_bristles
will remove bristles from the skeleton.Computing radius information
\n\nOnly
\n"}, "skeletor.post.radii": {"fullname": "skeletor.post.radii", "modulename": "skeletor.post", "qualname": "radii", "kind": "function", "doc": "skeletor.skeletonize.by_wavefront()
provides radii off the bat. For all\nother methods, you might want to runskeletor.post.radii
can help you\n(re-)generate radius information for the skeletons.Extract radii for given skeleton table.
\n\nImportant
\n\nThis function really only produces useful radii if the skeleton is centered\ninside the mesh.
\n\nby_wavefront
does that by default whereas all other\nskeletonization methods don't. Your best bet to get centered skeletons is\nto contract the mesh first (sk.pre.contract
).Parameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- \n
method (\"knn\" | \"ray\"):\nWhether and how to add radius information to each node::
\n\n- \"knn\" uses k-nearest-neighbors to get radii: fast but\n potential for being very wrong\n- \"ray\" uses ray-casting to get radii: slower but sometimes\n less wrong\n
- aggregate (\"mean\" | \"median\" | \"max\" | \"min\" | \"percentile75\"):\nFunction used to aggregate radii over sample (i.e. across\nk nearest-neighbors or ray intersections)
\n- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore skeletonization. Note that this might make changes to\nyour mesh inplace!
\n- **kwargs: Keyword arguments are passed to the respective method:
\nFor method \"knn\"::
\n\n\n\nn : int (default 5)\n Radius will be the mean over n nearest-neighbors.\n
For method \"ray\"::
\n\n\n\nn_rays : int (default 20)\n Number of rays to cast for each node.\nprojection : \"sphere\" (default) | \"tangents\"\n Whether to cast rays in a sphere around each node or in a\n circle orthogonally to the node's tangent vector.\nfallback : \"knn\" (default) | None | number\n If a point is outside or right on the surface of the mesh\n the raycasting will return nonesense results. We can either\n ignore those cases (``None``), assign a arbitrary number or\n we can fall back to radii from k-nearest-neighbors (``knn``).\n
Returns
\n\n\n
\n", "signature": "(\ts,\tmesh=None,\tmethod='knn',\taggregate='mean',\tvalidate=False,\t**kwargs):", "funcdef": "def"}, "skeletor.post.clean_up": {"fullname": "skeletor.post.clean_up", "modulename": "skeletor.post", "qualname": "clean_up", "kind": "function", "doc": "- None: But attaches
\nradius
to the skeleton's SWC table. Existing\nvalues are replaced!Clean up the skeleton.
\n\nThis function bundles a bunch of procedures to clean up the skeleton:
\n\n\n
\n\n- Remove twigs that are running parallel to their parent branch
\n- Move nodes outside the mesh back inside (or at least snap to surface)
\nNote that this is not a magic bullet and some of this will not work (well)\nif the original mesh was degenerate (e.g. internal faces or not watertight)\nto begin with.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore cleaning up. Note that this might change your mesh\ninplace!
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If True,\nwill modify the
\ns
inplace.- **kwargs: Keyword arguments are passed to the bundled function.
\nFor
\n\nskeletor.postprocessing.drop_parallel_twigs
::theta : float (default 0.01)\n For each twig we generate the dotproduct between the tangent\n vectors of it and its parents. If these line up perfectly the\n dotproduct will equal 1.
\n\ntheta
determines how much that\n value can differ from 1 for us to still prune the twig: higher\n theta = more pruning.Returns
\n\n\n
\n", "signature": "(s, mesh=None, validate=False, inplace=False, **kwargs):", "funcdef": "def"}, "skeletor.post.smooth": {"fullname": "skeletor.post.smooth", "modulename": "skeletor.post", "qualname": "smooth", "kind": "function", "doc": "- s_clean (skeletor.Skeleton):\nHopefully improved skeleton.
\nSmooth skeleton using rolling windows.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to be processed.
\n- window (int, optional):\nSize (N observations) of the rolling window in number of\nnodes.
\n- to_smooth (list):\nColumns of the node table to smooth. Should work with any\nnumeric column (e.g. 'radius').
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If\nTrue, will modify the
\ns
inplace.Returns
\n\n\n
\n", "signature": "(\ts,\twindow: int = 3,\tto_smooth: list = ['x', 'y', 'z'],\tinplace: bool = False):", "funcdef": "def"}, "skeletor.post.despike": {"fullname": "skeletor.post.despike", "modulename": "skeletor.post", "qualname": "despike", "kind": "function", "doc": "- s (skeletor.Skeleton):\nSkeleton with smoothed node table.
\nRemove spikes in skeleton.
\n\nFor each node A, the euclidean distance to its next successor (parent)\nB and that node's successor C (i.e A->B->C) is computed. If\n\\( \\frac{dist(A,B)}{dist(A,C)}>sigma \\), node B is considered a spike\nand realigned between A and C.
\n\nParameters
\n\n\n
\n\n- x (skeletor.Skeleton):\nSkeleton to be processed.
\n- sigma (float | int, optional):\nThreshold for spike detection. Smaller sigma = more\naggressive spike detection.
\n- max_spike_length (int, optional):\nDetermines how long (# of nodes) a spike can be.
\n- inplace (bool, optional):\nIf False, a copy of the neuron is returned.
\n- reverse (bool, optional):\nIf True, will also walk the segments from proximal\nto distal. Use this to catch spikes on e.g. terminal\nnodes.
\nReturns
\n\n\n
\n", "signature": "(s, sigma=5, max_spike_length=1, inplace=False, reverse=False):", "funcdef": "def"}, "skeletor.post.remove_bristles": {"fullname": "skeletor.post.remove_bristles", "modulename": "skeletor.post", "qualname": "remove_bristles", "kind": "function", "doc": "- s skeletor.Skeleton: Despiked neuron.
\nRemove \"bristles\" that sometimes occurr along the backbone.
\n\nWorks by finding terminal twigs that consist of only a single node.
\n\nParameters
\n\n\n
\n\n- s (skeletor.Skeleton):\nSkeleton to clean up.
\n- mesh (trimesh.Trimesh, optional):\nOriginal mesh (e.g. before contraction). If not provided will\nuse the mesh associated with
\ns
.- los_only (bool):\nIf True, will only remove bristles that are in line of sight of\ntheir parent. If False, will remove all single-node bristles.
\n- inplace (bool):\nIf False will make and return a copy of the skeleton. If True,\nwill modify the
\ns
inplace.Returns
\n\n\n
\n", "signature": "(s, mesh=None, los_only=False, inplace=False):", "funcdef": "def"}, "skeletor.pre": {"fullname": "skeletor.pre", "modulename": "skeletor.pre", "kind": "module", "doc": "- s (skeletor.Skeleton):\nSkeleton with single-node twigs removed.
\nThe
\n\nskeletor.pre
module contains functions to pre-process meshes before\nskeletonization.Fixing faulty meshes
\n\nSome skeletonization methods are susceptible to faulty meshes (degenerate faces,\nwrong normals, etc.). If your skeleton looks off, it might be worth a shot\ntrying to fix the mesh using
\n\nskeletor.pre.fix_mesh()
.Mesh contraction
\n\nAs a rule of thumb: the more your mesh looks like a skeleton, the easier it is\nto extract one (duh). Mesh contraction using
\n\nskeletor.pre.contract()
[1] can\nhelp you to get your mesh \"in shape\".References
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n"}, "skeletor.pre.fix_mesh": {"fullname": "skeletor.pre.fix_mesh", "modulename": "skeletor.pre", "qualname": "fix_mesh", "kind": "function", "doc": "Try to fix some common problems with mesh.
\n\n\n
\n\n- Remove infinite values
\n- Merge duplicate vertices
\n- Remove duplicate and degenerate faces
\n- Remove unreference vertices
\n- Drop winglets (faces that have only one adjacent face)
\n- Fix normals (Optional)
\n- Remove disconnected fragments (Optional)
\nParameters
\n\n\n
\n\n- mesh (mesh-like object):\nMesh to fix. Must have
\n.vertices
and.faces
\nproperties.- remove_disconnected (False | int):\nIf a number is given, will iterate over the mesh's\nconnected components and remove those consisting of\nless than the given number of vertices. For example,\n
\nremove_disconnected=5
will drop parts of the\nmesh that consist of five or less connected\nvertices.- inplace (bool):\nIf True, will perform fixes on the input mesh.\nIf False, will make a copy first. This is silently\nignored if
\nmesh
is not already a trimesh.Returns
\n\n\n
\n", "signature": "(\tmesh,\tremote_infinite=True,\tmerge_duplicate_verts=True,\tremove_degenerate_faces=True,\tremove_unreferenced_verts=True,\tdrop_winglets=True,\tfix_normals=False,\tremove_disconnected=False,\tinplace=False):", "funcdef": "def"}, "skeletor.pre.simplify": {"fullname": "skeletor.pre.simplify", "modulename": "skeletor.pre", "qualname": "simplify", "kind": "function", "doc": "- fixed mesh (trimesh.Trimesh):
\nSimplify mesh using Blender 3D.
\n\nUses Blender's \"decimate\" modifier in \"collapse\" mode.
\n\nParameters
\n\n\n
\n\n- mesh (trimesh.Trimesh):\nMesh to simplify.
\n- ratio (float):\nFactor to which to reduce faces. For example, a ratio of 0.5 will\nreduce the number of faces to 50%.
\nReturns
\n\n\n
\n", "signature": "(mesh, ratio):", "funcdef": "def"}, "skeletor.pre.remesh": {"fullname": "skeletor.pre.remesh", "modulename": "skeletor.pre", "qualname": "remesh", "kind": "function", "doc": "- trimesh.Trimesh: Simplified mesh.
\nRemesh mesh using Blender 3D.
\n\nUses Blender's \"remesh\" modifier in \"voxel\" mode.
\n\nParameters
\n\n\n
\n\n- mesh (trimesh.Trimesh):\nMesh to remesh.
\n- voxel_size (float):\nSize of individual voxels (edge length).
\n- adaptivity (float):\nReduces final face count where detail is not important.
\nReturns
\n\n\n
\n", "signature": "(mesh, voxel_size=50, adaptivity=5):", "funcdef": "def"}, "skeletor.pre.contract": {"fullname": "skeletor.pre.contract", "modulename": "skeletor.pre", "qualname": "contract", "kind": "function", "doc": "- trimesh.Trimesh: Remeshed mesh.
\nContract mesh.
\n\nIn a nutshell: this function contracts the mesh by applying rounds of\n_constraint_ Laplacian smoothing. This function can be fairly expensive\nand I highly recommend you play around with
\n\nSL
to contract the\nmesh in as few steps as possible. The contraction doesn't have to be perfect\nfor good skeletonization results (<10%, i.e.epsilon<0.1
).Also: parameterization matters a lot! Default parameters will get you there\nbut playing around with
\n\nSL
andWH0
might speed things up by an order of\nmagnitude.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be contracted. Can be any object (e.g.\na trimesh.Trimesh) that has
\n.vertices
and.faces
\nproperties or a tuple(vertices, faces)
or a dictionary\n{'vertices': vertices, 'faces': faces}
.\nVertices and faces must be (N, 3) numpy arrays.- epsilon (float (0-1), optional):\nTarget contraction rate as measured by the sum of all face\nareas in the contracted versus the original mesh. Algorithm\nwill stop once mesh is contracted below this threshold.\nDepending on your mesh (number of faces, shape) reaching a\nstrong contraction can be extremely costly with comparatively\nlittle benefit for the subsequent skeletonization. Note that\nthe algorithm might stop short of this target if
\niter_lim
\nortime_lim
is reached first or if the sum of face areas\nis increasing from one iteration to the next instead of\ndecreasing.- iter_lim (int (>1), optional):\nMaximum rounds of contractions.
\n- time_lim (int, optional):\nMaximum run time in seconds. Note that this limit is not\nchecked during but after each round of contraction. Hence,\nthe actual total time will likely overshoot
\ntime_lim
.- precision (float, optional):\nSets the precision for finding the least-square solution.\nThis is the main determinant for speed vs quality: lower\nvalues will take (much) longer but will get you closer to an\noptimally contracted mesh. Higher values will be faster but\nthe iterative contractions might stop early.
\n- SL (float, optional):\nFactor by which the contraction matrix is multiplied for\neach iteration. Higher values = quicker contraction, lower\nvalues = more likely to get you an optimal contraction.
\n- WH0 (float, optional):\nInitial weight factor for the attraction constraints.\nThe ratio of the initial weights
\nWL0
andWH0
\ncontrols the smoothness and the degree of contraction of the\nfirst iteration result, thus it determines the amount of\ndetails retained in subsequent and final contracted meshes:\nhigherWH0
= more details retained.- WL0 (\"auto\" | float):\nInitial weight factor for the contraction constraints. By\ndefault (\"auto\"), this will be set to
\n1e-3 * sqrt(A)
\nwithA
being the average face area. This ensures that\ncontraction forces scale with the coarseness of the mesh.- \n
operator (\"cotangent\" | \"umbrella\"):\nWhich Laplacian operator to use:
\n\n\n
- The \"cotangent\" operator (default) takes both topology\nand geometry of the mesh into account and is hence a\nbetter descriptor of the curvature flow. This is the\noperator used in the original paper.
\n- The \"umbrella\" operator (aka \"uniform weighting\") uses\nonly topological features of the mesh. This also makes\nit more robust against flaws in the mesh! Use it when\nthe cotangent operator produces oddly contracted meshes.
\n- progress (bool):\nWhether or not to show a progress bar.
\n- validate (bool):\nIf True, will try to fix potential issues with the mesh\n(e.g. infinite values, duplicate vertices, degenerate faces)\nbefore collapsing. Degenerate meshes can lead to effectively\ninfinite runtime for this function!
\nReturns
\n\n\n
\n\n- trimesh.Trimesh: Contracted copy of original mesh. The final contraction rate\nis attached to the mesh as
\n.epsilon
property.References
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n", "signature": "(\tmesh,\tepsilon=1e-06,\titer_lim=100,\ttime_lim=None,\tprecision=1e-07,\tSL=2,\tWH0=1,\tWL0='auto',\toperator='cotangent',\tprogress=True,\tvalidate=True):", "funcdef": "def"}, "skeletor.skeletonize": {"fullname": "skeletor.skeletonize", "modulename": "skeletor.skeletonize", "kind": "module", "doc": "The
\n\nskeletor.skeletonize
module contains functions to for skeletonization\nof meshes.There are several approaches to skeletonizing a mesh. Which one to pick depends\n(among other things) on the shape of your mesh and the skeleton quality you want\nto get out of it. In general, unless you mesh already looks like a tube I\nrecommend looking into mesh contraction 4.
\n\nPlease see the documentation of the individual functions for details but here\nis a quick summary:
\n\n\n\n
\n\n\n \n\n\nfunction \nspeed \nrobust \nradii 1 \nmesh map 2 \ndescription \n\n \n\n skeletor.skeletonize.by_wavefront()
+++ \n++ \nyes \nyes \nworks well for tubular meshes \n\n \n\n skeletor.skeletonize.by_vertex_clusters()
++ \n+ \nno \nyes \nbest with contracted meshes 3 \n\n \n\n skeletor.skeletonize.by_teasar()
+ \n++ \nno \nyes \nworks on mesh surface \n\n \n\n skeletor.skeletonize.by_tangent_ball()
++ \n0 \nyes \nyes \nworks with mesh normals \n\n \n\n\n skeletor.skeletonize.by_edge_collapse()
- \n0 \nno \nno \npublished with [1] - never got this to work well \nReferences
\n\n\n\n
[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n\n"}, "skeletor.skeletonize.by_teasar": {"fullname": "skeletor.skeletonize.by_teasar", "modulename": "skeletor.skeletonize", "qualname": "by_teasar", "kind": "function", "doc": "
\n\nSkeletonize a mesh mesh using the TEASAR algorithm [1].
\n\nThis algorithm finds the longest path from a root vertex, invalidates all\nvertices that are within
\n\ninv_dist
. Then picks the second longest (and\nstill valid) path and does the same. Rinse & repeat until all vertices have\nbeen invalidated. It's fast + works very well with tubular meshes, and with\ninv_dist
you have control over the level of detail. Note that by its\nnature the skeleton will be exactly on the surface of the mesh.Based on the implementation by Sven Dorkenwald, Casey Schneider-Mizell and\nForrest Collman in
\n\nmeshparty
(https://github.com/sdorkenw/MeshParty).Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- inv_dist (int | float):\nDistance along the mesh used for invalidation of vertices.\nThis controls how detailed (or noisy) the skeleton will be.
\n- min_length (float, optional):\nIf provided, will skip any branch that is shorter than\n
\nmin_length
. Use this to get rid of noise but note that\nit will lead to vertices not being mapped to skeleton nodes.\nSuch vertices will show up with index -1 in\nSkeleton.mesh_map
.- root (int, optional):\nVertex ID of a root. If not provided will use
\n0
.- progress (bool, optional):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nReferences
\n\n[1] Sato, M., Bitter, I., Bender, M. A., Kaufman, A. E., & Nakajima, M.\n (n.d.). TEASAR: tree-structure extraction algorithm for accurate and\n robust skeletons. In Proceedings the Eighth Pacific Conference on\n Computer Graphics and Applications. IEEE Comput. Soc.\n https://doi.org/10.1109/pccga.2000.883951
\n", "signature": "(mesh, inv_dist, min_length=None, root=None, progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_wavefront": {"fullname": "skeletor.skeletonize.by_wavefront", "modulename": "skeletor.skeletonize", "qualname": "by_wavefront", "kind": "function", "doc": "Skeletonize a mesh using wave fronts.
\n\nThe algorithm tries to find rings of vertices and collapse them to\ntheir center. This is done by propagating a wave across the mesh starting at\na single seed vertex. As the wave travels across the mesh we keep track of\nwhich vertices are are encountered at each step. Groups of connected\nvertices that are \"hit\" by the wave at the same time are considered rings\nand subsequently collapsed. By its nature this works best with tubular meshes.
\n\nParameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- waves (int):\nNumber of waves to run across the mesh. Each wave is\ninitialized at a different vertex which produces slightly\ndifferent rings. The final skeleton is produced from a mean\nacross all waves. More waves produce higher resolution\nskeletons but also introduce more noise.
\n- origins (int | list of ints, optional):\nVertex ID(s) where the wave(s) are initialized. If we run\nout of origins (either because less
\norigins
thanwaves
\nor because no origin for one of the connected components)\nwill fall back to semi-random origin.- step_size (int):\nValues greater 1 effectively lead to binning of rings. For\nexample a stepsize of 2 means that two adjacent vertex rings\nwill be collapsed to the same center. This can help reduce\nnoise in the skeleton (and as such counteracts a large\nnumber of waves).
\n- radius_agg (\"mean\" | \"median\" | \"max\" | \"min\" | \"percentile75\" | \"percentile25\"):\nFunction used to aggregate radii over sample (i.e. the\nvertices forming a ring that we collapse to its center).
\n- progress (bool):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n", "signature": "(\tmesh,\twaves=1,\torigins=None,\tstep_size=1,\tradius_agg='mean',\tprogress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_vertex_clusters": {"fullname": "skeletor.skeletonize.by_vertex_clusters", "modulename": "skeletor.skeletonize", "qualname": "by_vertex_clusters", "kind": "function", "doc": "- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nSkeletonize a (contracted) mesh by clustering vertices.
\n\nThe algorithm traverses the mesh graph and groups vertices together that\nare within a given distance to each other. This uses the geodesic\n(along-the-mesh) distance, not simply the Euclidean distance. Subsequently\nthese groups of vertices are collapsed and re-connected respecting the\ntopology of the input mesh.
\n\nThe graph traversal is fast and scales well, so this method is well suited\nfor meshes with lots of vertices. On the downside: this implementation is\nnot very clever and you might have to play around with the parameters\n(mostly
\n\nsampling_dist
) to get decent results.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- sampling_dist (float | int):\nMaximal distance at which vertices are clustered. This\nparameter should be tuned based on the resolution of your\nmesh (see Examples).
\n- \n
cluster_pos (\"median\" | \"center\"):\nHow to determine the x/y/z coordinates of the collapsed\nvertex clusters (i.e. the skeleton's nodes)::
\n\n\n
- \"median\": Use the vertex closest to cluster's center of\nmass.
\n- \"center\": Use the center of mass. This makes for smoother\nskeletons but can lead to nodes outside the mesh.
\n- progress (bool):\nIf True, will show progress bar.
\nExamples
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> cont = sk.pre.contract(mesh, epsilon=0.1)\n>>> skel = sk.skeletonize.vertex_cluster(cont)\n>>> skel.mesh = mesh\n
Returns
\n\n\n
\n", "signature": "(mesh, sampling_dist, cluster_pos='median', progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_edge_collapse": {"fullname": "skeletor.skeletonize.by_edge_collapse", "modulename": "skeletor.skeletonize", "qualname": "by_edge_collapse", "kind": "function", "doc": "- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nSkeletonize a (contracted) mesh by iteratively collapsing edges.
\n\nThis algorithm (described in [1]) iteratively collapses edges that are part\nof a face until no more faces are left. Edges are chosen based on a cost\nfunction that penalizes collapses that would change the shape of the object\nor would introduce long edges.
\n\nThis is somewhat sensitive to the dimensions of the input mesh: too large\nand you might experience slow-downs or numpy OverflowErrors; too low and\nyou might get skeletons that don't quite match the mesh (e.g. too few nodes).\nIf you experience either, try down- or up-scaling your mesh, respectively.
\n\nParameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.- shape_weight (float, optional):\nWeight for shape costs which penalize collapsing edges that\nwould drastically change the shape of the object.
\n- sample_weight (float, optional):\nWeight for sampling costs which penalize collapses that\nwould generate prohibitively long edges.
\n- progress (bool):\nIf True, will show progress bar.
\nReturns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nReferences
\n\n[1] Au OK, Tai CL, Chu HK, Cohen-Or D, Lee TY. Skeleton extraction by mesh\n contraction. ACM Transactions on Graphics (TOG). 2008 Aug 1;27(3):44.
\n", "signature": "(mesh, shape_weight=1, sample_weight=0.1, progress=True):", "funcdef": "def"}, "skeletor.skeletonize.by_tangent_ball": {"fullname": "skeletor.skeletonize.by_tangent_ball", "modulename": "skeletor.skeletonize", "qualname": "by_tangent_ball", "kind": "function", "doc": "Skeletonize a mesh by finding the maximal tangent ball.
\n\nThis algorithm casts a ray from every mesh vertex along its inverse normals\n(requires
\n\nncollpyde
). It then creates a sphere that is tangent to the\nvertex and to where the ray hit the inside of a face on the opposite side.\nNext it drops spheres that overlap with another, larger sphere. Modified\nfrom [1].The method works best on smooth meshes and is rather sensitive to errors in\nthe mesh such as incorrect normals (see
\n\nskeletor.pre.fix_mesh
), internal\nfaces, noisy surface (try smoothing or downsampling) or holes in the mesh.Parameters
\n\n\n
\n\n- mesh (mesh obj):\nThe mesh to be skeletonize. Can an object that has\n
\n.vertices
and.faces
properties (e.g. a\ntrimesh.Trimesh) or a tuple(vertices, faces)
or a\ndictionary{'vertices': vertices, 'faces': faces}
.Returns
\n\n\n
\n\n- skeletor.Skeleton: Holds results of the skeletonization and enables quick\nvisualization.
\nExamples
\n\n\n\n\n\n>>> import skeletor as sk\n>>> mesh = sk.example_mesh()\n>>> fixed = sk.pre.fix_mesh(mesh, fix_normals=True, remove_disconnected=10)\n>>> skel = sk.skeletonize.by_tangent_ball(fixed)\n
References
\n\n[1] Ma, J., Bae, S.W. & Choi, S. 3D medial axis point approximation using\n nearest neighbors and the normal field. Vis Comput 28, 7\u201319 (2012).\n https://doi.org/10.1007/s00371-011-0594-7
\n", "signature": "(mesh):", "funcdef": "def"}}, "docInfo": {"skeletor": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3013}, "skeletor.Skeleton": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 161}, "skeletor.Skeleton.__init__": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "skeletor.Skeleton.swc": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.mesh": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.mesh_map": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.method": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "skeletor.Skeleton.edges": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "skeletor.Skeleton.vertices": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.radius": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5}, "skeletor.Skeleton.skeleton": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.skel_map": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "skeletor.Skeleton.roots": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "skeletor.Skeleton.leafs": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "skeletor.Skeleton.reindex": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 6}, "skeletor.Skeleton.reroot": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 64}, "skeletor.Skeleton.copy": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 8}, "skeletor.Skeleton.get_graph": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 34}, "skeletor.Skeleton.get_segments": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 130}, "skeletor.Skeleton.save_swc": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 29}, "skeletor.Skeleton.scene": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 35}, "skeletor.Skeleton.show": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 60}, "skeletor.Skeleton.mend_breaks": {"qualname": 3, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 199}, "skeletor.example_mesh": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 158}, "skeletor.post": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 190}, "skeletor.post.radii": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 402}, "skeletor.post.clean_up": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 303}, "skeletor.post.smooth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 95, "bases": 0, "doc": 122}, "skeletor.post.despike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 189}, "skeletor.post.remove_bristles": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 156}, "skeletor.pre": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 143}, "skeletor.pre.fix_mesh": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 204}, "skeletor.pre.simplify": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 83}, "skeletor.pre.remesh": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 86}, "skeletor.pre.contract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 134, "bases": 0, "doc": 762}, "skeletor.skeletonize": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 437}, "skeletor.skeletonize.by_teasar": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 382}, "skeletor.skeletonize.by_wavefront": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 388}, "skeletor.skeletonize.by_vertex_clusters": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 477}, "skeletor.skeletonize.by_edge_collapse": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 297}, "skeletor.skeletonize.by_tangent_ball": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 390}}, "length": 41, "save": true}, "index": {"qualname": {"root": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.roots": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 22}}}}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.method": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.edges": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.vertices": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.radius": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.roots": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}}, "fullname": {"root": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.roots": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 41}, "n": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.method": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.roots": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 22, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}}}}}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.swc": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.mesh": {"tf": 1}, "skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.method": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.mesh_map": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.edges": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.vertices": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.radius": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.roots": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 6}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}}, "annotation": {"root": {"docs": {}, "df": 0}}, "default_value": {"root": {"docs": {}, "df": 0}}, "signature": {"root": {"0": {"6": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "7": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}, "1": {"0": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "2": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "3": {"9": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.smooth": {"tf": 2.449489742783178}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 6}, "docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "5": {"0": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}, "docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 3}, "docs": {"skeletor.Skeleton.__init__": {"tf": 5.656854249492381}, "skeletor.Skeleton.reindex": {"tf": 4.242640687119285}, "skeletor.Skeleton.reroot": {"tf": 3.7416573867739413}, "skeletor.Skeleton.copy": {"tf": 3.1622776601683795}, "skeletor.Skeleton.get_graph": {"tf": 3.1622776601683795}, "skeletor.Skeleton.get_segments": {"tf": 5.291502622129181}, "skeletor.Skeleton.save_swc": {"tf": 3.7416573867739413}, "skeletor.Skeleton.scene": {"tf": 4.898979485566356}, "skeletor.Skeleton.show": {"tf": 4.898979485566356}, "skeletor.Skeleton.mend_breaks": {"tf": 5.830951894845301}, "skeletor.example_mesh": {"tf": 2.6457513110645907}, "skeletor.post.radii": {"tf": 7.615773105863909}, "skeletor.post.clean_up": {"tf": 6.324555320336759}, "skeletor.post.smooth": {"tf": 8.717797887081348}, "skeletor.post.despike": {"tf": 6.48074069840786}, "skeletor.post.remove_bristles": {"tf": 5.830951894845301}, "skeletor.pre.fix_mesh": {"tf": 9.1104335791443}, "skeletor.pre.simplify": {"tf": 3.7416573867739413}, "skeletor.pre.remesh": {"tf": 5.0990195135927845}, "skeletor.pre.contract": {"tf": 10.246950765959598}, "skeletor.skeletonize.by_teasar": {"tf": 6.164414002968976}, "skeletor.skeletonize.by_wavefront": {"tf": 7.615773105863909}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 5.656854249492381}, "skeletor.skeletonize.by_edge_collapse": {"tf": 5.830951894845301}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.1622776601683795}}, "df": 25, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 9}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1.4142135623730951}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1}}, "df": 1}, "x": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.__init__": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 6}}}}}, "f": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "v": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}}, "df": 10}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "h": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "l": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 4}}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "y": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "z": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0}}, "doc": {"root": {"0": {"0": {"0": {"0": {"0": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"8": {"5": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"1": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "5": {"8": {"5": {"9": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"4": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 7, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "1": {"0": {"0": {"7": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"0": {"0": {"3": {"7": {"1": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "docs": {"skeletor": {"tf": 1}}, "df": 1}, "6": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"8": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}, "1": {"0": {"9": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0}, "9": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"5": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"7": {"7": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"9": {"9": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"7": {"9": {"9": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"docs": {"skeletor.skeletonize": {"tf": 2}}, "df": 1}, "4": {"4": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"4": {"4": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 3.7416573867739413}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 11, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "2": {"0": {"0": {"0": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "docs": {}, "df": 0}, "1": {"2": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "8": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"0": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "2": {"0": {"7": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"6": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"2": {"1": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"4": {"7": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"4": {"0": {"7": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "8": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}, "3": {"1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "2": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "3": {"3": {"3": {"3": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"7": {"2": {"0": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"skeletor": {"tf": 2.449489742783178}}, "df": 1}, "docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}, "4": {"4": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "7": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}, "5": {"0": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}, "2": {"5": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"2": {"5": {"8": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"4": {"4": {"3": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}}, "df": 4}, "6": {"2": {"1": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "5": {"8": {"2": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"6": {"6": {"6": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"5": {"1": {"9": {"5": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"4": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0}, "6": {"5": {"1": {"0": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2, "\u2013": {"1": {"9": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "8": {"6": {"1": {"7": {"docs": {"skeletor.skeletonize": {"tf": 2}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"3": {"9": {"5": {"1": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"0": {"2": {"3": {"4": {"4": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"6": {"0": {"1": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"8": {"5": {"1": {"6": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"1": {"2": {"1": {"1": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"skeletor": {"tf": 39.54743986657038}, "skeletor.Skeleton": {"tf": 8}, "skeletor.Skeleton.__init__": {"tf": 1.7320508075688772}, "skeletor.Skeleton.swc": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mesh": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mesh_map": {"tf": 1.7320508075688772}, "skeletor.Skeleton.method": {"tf": 1.7320508075688772}, "skeletor.Skeleton.edges": {"tf": 1.7320508075688772}, "skeletor.Skeleton.vertices": {"tf": 1.7320508075688772}, "skeletor.Skeleton.radius": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 2.23606797749979}, "skeletor.Skeleton.roots": {"tf": 1.7320508075688772}, "skeletor.Skeleton.leafs": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reindex": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reroot": {"tf": 5.0990195135927845}, "skeletor.Skeleton.copy": {"tf": 1.7320508075688772}, "skeletor.Skeleton.get_graph": {"tf": 4}, "skeletor.Skeleton.get_segments": {"tf": 7.211102550927978}, "skeletor.Skeleton.save_swc": {"tf": 3.872983346207417}, "skeletor.Skeleton.scene": {"tf": 3.872983346207417}, "skeletor.Skeleton.show": {"tf": 5.196152422706632}, "skeletor.Skeleton.mend_breaks": {"tf": 6.928203230275509}, "skeletor.example_mesh": {"tf": 8.366600265340756}, "skeletor.post": {"tf": 6.855654600401044}, "skeletor.post.radii": {"tf": 10}, "skeletor.post.clean_up": {"tf": 8.774964387392123}, "skeletor.post.smooth": {"tf": 6.855654600401044}, "skeletor.post.despike": {"tf": 7.745966692414834}, "skeletor.post.remove_bristles": {"tf": 7.211102550927978}, "skeletor.pre": {"tf": 5.0990195135927845}, "skeletor.pre.fix_mesh": {"tf": 8.366600265340756}, "skeletor.pre.simplify": {"tf": 5.916079783099616}, "skeletor.pre.remesh": {"tf": 6.4031242374328485}, "skeletor.pre.contract": {"tf": 12.36931687685298}, "skeletor.skeletonize": {"tf": 14.966629547095765}, "skeletor.skeletonize.by_teasar": {"tf": 9.539392014169456}, "skeletor.skeletonize.by_wavefront": {"tf": 9.16515138991168}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 14.247806848775006}, "skeletor.skeletonize.by_edge_collapse": {"tf": 8.366600265340756}, "skeletor.skeletonize.by_tangent_ball": {"tf": 13}}, "df": 41, "w": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "h": {"0": {"docs": {"skeletor.pre.contract": {"tf": 2}}, "df": 1}, "docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 9}}}}, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}}, "df": 4, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 5}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 3, "s": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 2}}}, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 16, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2.449489742783178}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_teasar": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 17}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.449489742783178}}, "df": 2, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 2.449489742783178}}, "df": 2}}}, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 3}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}}, "df": 2}}}}, "l": {"0": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}}, "i": {"7": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 8, "s": {"docs": {"skeletor": {"tf": 4}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 19, "t": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 9, "o": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 3}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 7}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "v": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2.449489742783178}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 17}, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.roots": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 14, "k": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 5, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 5.656854249492381}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 2.6457513110645907}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 3}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 15}, "n": {"docs": {"skeletor": {"tf": 4.69041575982343}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 2}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1.7320508075688772}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 2.6457513110645907}, "skeletor.post.smooth": {"tf": 2.449489742783178}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 27, "s": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 3.1622776601683795}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12}}}}}, "e": {"docs": {"skeletor": {"tf": 3}, "skeletor.post": {"tf": 1}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 8}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.8284271247461903}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2}}, "df": 1, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.post.despike": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3.7416573867739413}, "skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2}}}}}, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}}}}}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.scene": {"tf": 2.23606797749979}, "skeletor.Skeleton.show": {"tf": 2}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.despike": {"tf": 1.7320508075688772}}, "df": 1}}, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}, "t": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "c": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "l": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 2.23606797749979}}, "df": 1, "s": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 12, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 6}, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9}}}}, "p": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2.23606797749979}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 9, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "n": {"docs": {"skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.roots": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.smooth": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}}, "df": 9, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 16}}}, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor": {"tf": 2}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}, "w": {"docs": {"skeletor.Skeleton.reroot": {"tf": 2}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 2}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 7}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 2.8284271247461903}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.3166247903554}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 14}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 3.1622776601683795}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 14}, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}}, "e": {"docs": {"skeletor": {"tf": 6.244997998398398}, "skeletor.Skeleton": {"tf": 2}, "skeletor.Skeleton.reroot": {"tf": 2}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1.7320508075688772}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 3.872983346207417}, "skeletor.example_mesh": {"tf": 2}, "skeletor.post": {"tf": 3}, "skeletor.post.radii": {"tf": 3.4641016151377544}, "skeletor.post.clean_up": {"tf": 3.605551275463989}, "skeletor.post.smooth": {"tf": 2}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 6.324555320336759}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 3.7416573867739413}, "skeletor.skeletonize.by_wavefront": {"tf": 3.872983346207417}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 4.358898943540674}, "skeletor.skeletonize.by_edge_collapse": {"tf": 3}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.3166247903554}}, "df": 25, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.post.clean_up": {"tf": 1.7320508075688772}}, "df": 1}}, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"skeletor": {"tf": 6.244997998398398}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 2.449489742783178}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 4}, "skeletor.post.clean_up": {"tf": 2.8284271247461903}, "skeletor.post.smooth": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 2.23606797749979}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.4641016151377544}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 3}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 24, "p": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 3, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3, "s": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 3}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 18}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 5, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 4}}}, "i": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}, "w": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6, "o": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 3, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "i": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 5, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}}, "df": 5}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"1": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}}, "df": 2, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.simplify": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 6}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}}, "df": 2, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.despike": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 4}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}}}, "h": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "s": {"docs": {"skeletor.skeletonize": {"tf": 2.449489742783178}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {"skeletor": {"tf": 3.3166247903554}, "skeletor.post": {"tf": 2.23606797749979}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 8, "r": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 9}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {"skeletor.post.despike": {"tf": 2}}, "df": 1, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reroot": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 3.4641016151377544}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}}, "df": 3}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 4, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2}, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.copy": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 7}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 13}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}}, "df": 2}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "u": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1, "n": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "i": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.reindex": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}}, "df": 5}}}}, "x": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3}, "skeletor.example_mesh": {"tf": 2}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 4}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "y": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}}}}}}}}, "b": {"docs": {"skeletor.post.despike": {"tf": 2}}, "df": 1, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 7}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 15, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 6}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "y": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 14}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}}, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 13}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 6.782329983125268}, "skeletor.Skeleton": {"tf": 2.6457513110645907}, "skeletor.Skeleton.skel_map": {"tf": 1.4142135623730951}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 2.23606797749979}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2.8284271247461903}, "skeletor.post.clean_up": {"tf": 2.6457513110645907}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 2.6457513110645907}, "skeletor.pre.fix_mesh": {"tf": 3}, "skeletor.pre.simplify": {"tf": 2}, "skeletor.pre.remesh": {"tf": 2}, "skeletor.pre.contract": {"tf": 4.242640687119285}, "skeletor.skeletonize": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3.7416573867739413}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.4641016151377544}}, "df": 22, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 3}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 8}}, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 3}, "l": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.Skeleton": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}}, "df": 6, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}, "x": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 1}}}, "y": {"docs": {"skeletor": {"tf": 2.23606797749979}}, "df": 1}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 8}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.reroot": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "r": {"docs": {"skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 3}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 8, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7}}, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 6}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "+": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {"skeletor": {"tf": 10.63014581273465}, "skeletor.example_mesh": {"tf": 3}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3.872983346207417}, "skeletor.skeletonize.by_tangent_ball": {"tf": 3.4641016151377544}}, "df": 6}, "h": {"docs": {}, "df": 0, "z": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "l": {"3": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {"skeletor": {"tf": 5.0990195135927845}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 2.8284271247461903}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 3.1622776601683795}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 3.3166247903554}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.6457513110645907}}, "df": 21, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 10, "d": {"docs": {"skeletor": {"tf": 4.123105625617661}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.example_mesh": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1.7320508075688772}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 3}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.23606797749979}}, "df": 17}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"skeletor.post.smooth": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "o": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 6}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}}, "df": 11, "a": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"skeletor": {"tf": 2}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.skeleton": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 12, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 2}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2}}, "df": 3}}}}, "m": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "k": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 4}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.reroot": {"tf": 1.4142135623730951}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 2}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.example_mesh": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 2}, "skeletor.post.smooth": {"tf": 2}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 2}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 4.242640687119285}, "skeletor.skeletonize": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_wavefront": {"tf": 3.3166247903554}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 26, "f": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}, "r": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 13, "g": {"docs": {}, "df": 0, "/": {"1": {"0": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "@": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 7}}, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 15, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 6}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 8}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.show": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 2.449489742783178}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton": {"tf": 2.449489742783178}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 2}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 14, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.Skeleton.scene": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9, "s": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.smooth": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 2.23606797749979}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 2.23606797749979}, "skeletor.pre.contract": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 3}, "skeletor.skeletonize.by_wavefront": {"tf": 2.8284271247461903}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 3}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2}}, "df": 16}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.Skeleton": {"tf": 1.7320508075688772}, "skeletor.Skeleton.skel_map": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 8}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5, "s": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_teasar": {"tf": 2}, "skeletor.skeletonize.by_wavefront": {"tf": 2}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 2}, "skeletor.skeletonize.by_edge_collapse": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 2.23606797749979}}, "df": 12}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}}, "df": 3}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}}, "df": 7}}, "l": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.post.clean_up": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.contract": {"tf": 2.8284271247461903}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 15, "m": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 12}, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "{": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"skeletor": {"tf": 3}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.pre.fix_mesh": {"tf": 1.7320508075688772}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.7320508075688772}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3}, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 4}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton.save_swc": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 7, "s": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 9}}, "w": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.449489742783178}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}}, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}, "l": {"docs": {}, "df": 0, "f": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}, "l": {"docs": {}, "df": 0, "p": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.pre": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 5}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 5}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2.6457513110645907}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 2.23606797749979}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"skeletor.pre.contract": {"tf": 2.23606797749979}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 4}}, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 5}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.post.despike": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 2.449489742783178}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "f": {"docs": {"skeletor.Skeleton.leafs": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 4}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 2}, "skeletor.example_mesh": {"tf": 1.4142135623730951}}, "df": 2, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre": {"tf": 1.4142135623730951}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}, "w": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}, "t": {"docs": {"skeletor": {"tf": 2}, "skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 2}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "r": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 1.7320508075688772}, "skeletor.post.smooth": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 5}}, "i": {"docs": {"skeletor": {"tf": 2.23606797749979}, "skeletor.Skeleton": {"tf": 1.4142135623730951}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.post": {"tf": 1.4142135623730951}, "skeletor.post.radii": {"tf": 2.449489742783178}, "skeletor.skeletonize": {"tf": 1.7320508075688772}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 7}}}, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 1}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {"skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}, "e": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.Skeleton": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 9}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1.7320508075688772}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1.7320508075688772}, "skeletor.pre.fix_mesh": {"tf": 2.6457513110645907}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7, "d": {"docs": {"skeletor.post.remove_bristles": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3, "s": {"docs": {"skeletor.pre.remesh": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.edges": {"tf": 1}, "skeletor.Skeleton.vertices": {"tf": 1}, "skeletor.Skeleton.radius": {"tf": 1}, "skeletor.Skeleton.copy": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1.7320508075688772}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}, "s": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_graph": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.scene": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 21}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "d": {"docs": {"skeletor.post.radii": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.Skeleton.get_graph": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton.show": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.pre": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 8}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.reroot": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.Skeleton.show": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 4}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.Skeleton.roots": {"tf": 1}, "skeletor.Skeleton.leafs": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 2}, "skeletor.skeletonize.by_teasar": {"tf": 1.7320508075688772}}, "df": 4, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.smooth": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 2.23606797749979}}, "df": 2}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}}, "df": 4, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.reroot": {"tf": 1}, "skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.simplify": {"tf": 1}, "skeletor.pre.remesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 21}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.clean_up": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.despike": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}}, "df": 4, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"skeletor.example_mesh": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"3": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.skeleton": {"tf": 1}}, "df": 1}}, "docs": {"skeletor.Skeleton.save_swc": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.Skeleton.show": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "p": {"3": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.skeletonize": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 3.605551275463989}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.pre": {"tf": 2}, "skeletor.skeletonize": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "o": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.pre": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.smooth": {"tf": 1}, "skeletor.post.despike": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 3}, "d": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}, "skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.post.remove_bristles": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}}, "df": 5}, "s": {"docs": {"skeletor.post": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1}}, "df": 2}}}}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.post.despike": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 7}}}, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.pre.contract": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_teasar": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_wavefront": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1.4142135623730951}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.post.clean_up": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1.7320508075688772}, "skeletor.post": {"tf": 1}, "skeletor.post.radii": {"tf": 1.4142135623730951}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 5}}}}}}}, "s": {"docs": {"skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 1, "t": {"docs": {"skeletor": {"tf": 3.4641016151377544}, "skeletor.post": {"tf": 2.6457513110645907}, "skeletor.skeletonize": {"tf": 1}}, "df": 3, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 2}, "skeletor.post.clean_up": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 3}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.Skeleton": {"tf": 1}, "skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.Skeleton.mend_breaks": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"skeletor.pre.fix_mesh": {"tf": 1}}, "df": 1, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1}, "skeletor.pre.contract": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.post": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"2": {"5": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"5": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}}, "d": {"docs": {"skeletor.Skeleton": {"tf": 1}}, "df": 1}, "h": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"skeletor.Skeleton.get_segments": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {"skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"skeletor": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"skeletor.example_mesh": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {"skeletor": {"tf": 1}, "skeletor.example_mesh": {"tf": 1}, "skeletor.post.radii": {"tf": 1.7320508075688772}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "n": {"docs": {"skeletor": {"tf": 1}, "skeletor.post.radii": {"tf": 2.23606797749979}}, "df": 2}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"skeletor.post.radii": {"tf": 1}, "skeletor.post.clean_up": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"skeletor.skeletonize.by_wavefront": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"skeletor.skeletonize.by_teasar": {"tf": 1}}, "df": 1}}}}}}}, "x": {"docs": {"skeletor": {"tf": 1.4142135623730951}, "skeletor.post.despike": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "z": {"docs": {"skeletor": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}}, "df": 2}}}}}, "z": {"docs": {"skeletor": {"tf": 1}}, "df": 1}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"skeletor.skeletonize": {"tf": 1}, "skeletor.skeletonize.by_teasar": {"tf": 1}, "skeletor.skeletonize.by_wavefront": {"tf": 1}, "skeletor.skeletonize.by_vertex_clusters": {"tf": 1}, "skeletor.skeletonize.by_edge_collapse": {"tf": 1}, "skeletor.skeletonize.by_tangent_ball": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "y": {"docs": {"skeletor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"skeletor.pre.contract": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"skeletor.skeletonize.by_edge_collapse": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"skeletor.pre.contract": {"tf": 1}, "skeletor.skeletonize": {"tf": 1}}, "df": 2}}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/docs/skeletor.html b/docs/skeletor.html index 7173df1..d99f153 100644 --- a/docs/skeletor.html +++ b/docs/skeletor.html @@ -77,12 +77,18 @@API Documentation
skel_map ++ roots + leafs reindex ++ reroot + copy @@ -799,42 +805,42 @@Top-level functions and classes
Top-level functions and classes
114 """Skeleton vertex (nodes) to mesh vertices. Based on `mesh_map`.""" 115 if isinstance(self.mesh_map, type(None)): 116 return None -117 return pd.DataFrame(self.mesh_map -118 ).reset_index(drop=False -119 ).groupby(0)['index'].apply(np.array -120 ).values -121 -122 @property -123 def leafs(self): -124 """Leaf nodes (includes root).""" -125 swc = self.swc -126 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] -127 return leafs.copy() -128 -129 def reindex(self, inplace=False): -130 """Clean up skeleton.""" -131 x = self -132 if not inplace: -133 x = x.copy() -134 -135 # Re-index to make node IDs continous again -136 x.swc, new_ids = reindex_swc(x.swc) -137 -138 # Update mesh map -139 if not isinstance(x.mesh_map, type(None)): -140 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) -141 -142 if not inplace: -143 return x -144 -145 def copy(self): -146 """Return copy of the skeleton.""" -147 return Skeleton(swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, -148 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, -149 mesh_map=self.mesh_map.copy() if not isinstance(self.mesh_map, type(None)) else None) -150 -151 def get_graph(self): -152 """Generate networkX representation of the skeletons. -153 -154 Distance between nodes will be used as edge weights. +117 return ( +118 pd.DataFrame(self.mesh_map) +119 .reset_index(drop=False) +120 .groupby(0)["index"] +121 .apply(np.array) +122 .values +123 ) +124 +125 @property +126 def roots(self): +127 """Root node(s).""" +128 return self.swc.loc[self.swc.parent_id < 0].index.values +129 +130 @property +131 def leafs(self): +132 """Leaf nodes (includes root).""" +133 swc = self.swc +134 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] +135 return leafs.copy() +136 +137 def reindex(self, inplace=False): +138 """Clean up skeleton.""" +139 x = self +140 if not inplace: +141 x = x.copy() +142 +143 # Re-index to make node IDs continous again +144 x.swc, new_ids = reindex_swc(x.swc) +145 +146 # Update mesh map +147 if not isinstance(x.mesh_map, type(None)): +148 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) +149 +150 if not inplace: +151 return x +152 +153 def reroot(self, new_root): +154 """Reroot the skeleton. 155 -156 Returns -157 ------- -158 networkx.DiGraph -159 -160 """ -161 not_root = self.swc.parent_id >= 0 -162 nodes = self.swc.loc[not_root] -163 parents = self.swc.set_index('node_id').loc[self.swc.loc[not_root, 'parent_id'].values] -164 -165 dists = nodes[['x', 'y', 'z']].values - parents[['x', 'y', 'z']].values -166 dists = np.sqrt((dists ** 2).sum(axis=1)) +156 Parameters +157 ---------- +158 new_root : int +159 Index of node to use as new root. If the skeleton +160 consists of multiple trees, only the tree containing the +161 new root will be updated. +162 +163 Returns +164 ------- +165 Skeleton +166 Skeleton with new root. 167 -168 G = nx.DiGraph() -169 G.add_nodes_from(self.swc.node_id.values) -170 G.add_weighted_edges_from(zip(nodes.node_id.values, nodes.parent_id.values, dists)) -171 -172 return G +168 """ +169 assert new_root in self.swc.index.values, f"Node index {new_root} not in skeleton." +170 +171 # Make copy of self +172 x = self.copy() 173 -174 def get_segments(self, -175 weight = 'weight', -176 return_lengths = False): -177 """Generate a list of linear segments while maximizing segment lengths. -178 -179 Parameters -180 ---------- -181 weight : 'weight' | None, optional -182 If ``"weight"`` use physical, geodesic length to determine -183 segment length. If ``None`` use number of nodes (faster). -184 return_lengths : bool -185 If True, also return lengths of segments according to ``weight``. -186 -187 Returns -188 ------- -189 segments : list -190 Segments as list of lists containing node IDs. List is -191 sorted by segment lengths. -192 lengths : list -193 Length for each segment according to ``weight``. Only provided -194 if `return_lengths` is True. -195 -196 """ -197 assert weight in ('weight', None), f'Unable to use weight "{weight}"' +174 # Check if the new root is already a root +175 if new_root in x.roots: +176 return x +177 +178 # Get graph representation +179 G = x.get_graph() +180 +181 # Get the path from the new root to the current root (of the same tree) +182 for r in x.roots: +183 try: +184 path = nx.shortest_path(G, source=new_root, target=r) +185 break +186 except nx.NetworkXNoPath: +187 continue +188 +189 # Now we need to invert the path from the old root to the new root +190 new_parents = x.swc.set_index('node_id').parent_id.to_dict() +191 new_parents.update({c: p for p, c in zip(path[:-1], path[1:])}) +192 new_parents[new_root] = -1 +193 +194 # Update the SWC table +195 x.swc["parent_id"] = x.swc.node_id.map(new_parents) +196 +197 return x 198 -199 # Get graph representation -200 G = self.get_graph() -201 -202 # Get distances to root -203 dists = {} -204 for root in self.swc[self.swc.parent_id < 0].node_id.values: -205 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) -206 -207 # Sort leaf nodes -208 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values -209 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) -210 -211 seen: set = set() -212 sequences = [] -213 for nodeID in endNodeIDs: -214 sequence = [nodeID] -215 parents = list(G.successors(nodeID)) -216 while True: -217 if not parents: -218 break -219 parentID = parents[0] -220 sequence.append(parentID) -221 if parentID in seen: -222 break -223 seen.add(parentID) -224 parents = list(G.successors(parentID)) +199 def copy(self): +200 """Return copy of the skeleton.""" +201 return Skeleton( +202 swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, +203 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, +204 mesh_map=self.mesh_map.copy() +205 if not isinstance(self.mesh_map, type(None)) +206 else None, +207 method=self.method, +208 ) +209 +210 def get_graph(self): +211 """Generate networkX representation of the skeletons. +212 +213 Distance between nodes will be used as edge weights. +214 +215 Returns +216 ------- +217 networkx.DiGraph +218 +219 """ +220 not_root = self.swc.parent_id >= 0 +221 nodes = self.swc.loc[not_root] +222 parents = self.swc.set_index("node_id").loc[ +223 self.swc.loc[not_root, "parent_id"].values +224 ] 225 -226 if len(sequence) > 1: -227 sequences.append(sequence) +226 dists = nodes[["x", "y", "z"]].values - parents[["x", "y", "z"]].values +227 dists = np.sqrt((dists**2).sum(axis=1)) 228 -229 # Sort sequences by length -230 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] -231 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] -232 -233 if return_lengths: -234 return sequences, sorted(lengths, reverse=True) -235 else: -236 return sequences -237 -238 def save_swc(self, filepath): -239 """Save skeleton in SWC format. -240 -241 Parameters -242 ---------- -243 filepath : path-like -244 Filepath to save SWC to. -245 -246 """ -247 header = dedent(f"""\ -248 # SWC format file -249 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html -250 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) -251 # PointNo Label X Y Z Radius Parent -252 # Labels: -253 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point -254 """) -255 -256 # Make copy of SWC table -257 swc = self.swc.copy() -258 -259 # Set all labels to undefined -260 swc['label'] = 0 -261 swc.loc[~swc.node_id.isin(swc.parent_id.values), 'label'] = 6 -262 n_childs = swc.groupby('parent_id').size() -263 bp = n_childs[n_childs > 1].index.values -264 swc.loc[swc.node_id.isin(bp), 'label'] = 5 -265 -266 # Add radius if missing -267 if 'radius' not in swc.columns: -268 swc['radius'] = 0 -269 -270 # Get things in order -271 swc = swc[['node_id', 'label', 'x', 'y', 'z', 'radius', 'parent_id']] -272 -273 # Adjust column titles -274 swc.columns = ['PointNo', 'Label', 'X', 'Y', 'Z', 'Radius', 'Parent'] -275 -276 with open(filepath, 'w') as file: -277 # Write header -278 file.write(header) -279 -280 # Write data -281 writer = csv.writer(file, delimiter=' ') -282 writer.writerows(swc.astype(str).values) -283 -284 def scene(self, mesh=False, **kwargs): -285 """Return a Scene object containing the skeleton. +229 G = nx.DiGraph() +230 G.add_nodes_from(self.swc.node_id.values) +231 G.add_weighted_edges_from( +232 zip(nodes.node_id.values, nodes.parent_id.values, dists) +233 ) +234 +235 return G +236 +237 def get_segments(self, weight="weight", return_lengths=False): +238 """Generate a list of linear segments while maximizing segment lengths. +239 +240 Parameters +241 ---------- +242 weight : 'weight' | None, optional +243 If ``"weight"`` use physical, geodesic length to determine +244 segment length. If ``None`` use number of nodes (faster). +245 return_lengths : bool +246 If True, also return lengths of segments according to ``weight``. +247 +248 Returns +249 ------- +250 segments : list +251 Segments as list of lists containing node IDs. List is +252 sorted by segment lengths. +253 lengths : list +254 Length for each segment according to ``weight``. Only provided +255 if `return_lengths` is True. +256 +257 """ +258 assert weight in ("weight", None), f'Unable to use weight "{weight}"' +259 +260 # Get graph representation +261 G = self.get_graph() +262 +263 # Get distances to root +264 dists = {} +265 for root in self.swc[self.swc.parent_id < 0].node_id.values: +266 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) +267 +268 # Sort leaf nodes +269 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values +270 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) +271 +272 seen: set = set() +273 sequences = [] +274 for nodeID in endNodeIDs: +275 sequence = [nodeID] +276 parents = list(G.successors(nodeID)) +277 while True: +278 if not parents: +279 break +280 parentID = parents[0] +281 sequence.append(parentID) +282 if parentID in seen: +283 break +284 seen.add(parentID) +285 parents = list(G.successors(parentID)) 286 -287 Returns -288 ------- -289 scene : trimesh.scene.scene.Scene -290 Contains the skeleton and optionally the mesh. -291 -292 """ -293 if mesh: -294 if isinstance(self.mesh, type(None)): -295 raise ValueError('Skeleton has no mesh.') -296 -297 self.mesh.visual.face_colors = [100, 100, 100, 100] +287 if len(sequence) > 1: +288 sequences.append(sequence) +289 +290 # Sort sequences by length +291 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] +292 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] +293 +294 if return_lengths: +295 return sequences, sorted(lengths, reverse=True) +296 else: +297 return sequences 298 -299 # Note the copy(): without it the transform in show() changes -300 # the original meshes -301 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) -302 else: -303 sc = tm.Scene(self.skeleton.copy(), **kwargs) -304 -305 return sc +299 def save_swc(self, filepath): +300 """Save skeleton in SWC format. +301 +302 Parameters +303 ---------- +304 filepath : path-like +305 Filepath to save SWC to. 306 -307 def show(self, mesh=False, **kwargs): -308 """Render the skeleton in an opengl window. Requires pyglet. -309 -310 Parameters -311 ---------- -312 mesh : bool -313 If True, will render transparent mesh on top of the -314 skeleton. -315 -316 Returns -317 -------- -318 scene : trimesh.scene.Scene -319 Scene with skeleton in it. -320 -321 """ -322 scene = self.scene(mesh=mesh) -323 -324 # I encountered some issues if object space is big and the easiest -325 # way to work around this is to apply a transform such that the -326 # coordinates have -5 to +5 bounds -327 fac = 5 / np.fabs(self.skeleton.bounds).max() -328 scene.apply_transform(np.diag([fac, fac, fac, 1])) -329 -330 return scene.show(**kwargs) -331 -332 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): -333 """Mend breaks in the skeleton using the original mesh. -334 -335 This works by comparing the connectivity of the original mesh with that -336 of the skeleton. If the shortest path between two adjacent vertices on the mesh -337 is shorter than the distance between the nodes in the skeleton, a new edge -338 is added to the skeleton. -339 -340 Parameters -341 ---------- -342 dist_mult : float, optional -343 Factor by which the new edge should be shorter than the -344 current shortest path between two nodes to be added. -345 Lower values = fewer false negatives; higher values = fewer -346 false positive edges. -347 dist_min : float, optional -348 Minimum distance between nodes to consider adding an edge. -349 Use this to avoid adding very short edges. -350 dist_max : float, optional -351 Maximum distance between nodes to consider adding an edge. -352 Use this to avoid adding very long edges. -353 -354 Returns -355 ------- -356 edges : (N, 2) array -357 Edges connecting the skeleton nodes. -358 vertices : (N, 3) array -359 Positions of the skeleton nodes. -360 -361 """ -362 # We need `.mesh_map` and `.mesh` to exist -363 if self.mesh_map is None: -364 raise ValueError('Skeleton must have a `mesh_map` to mend breaks.') -365 if self.mesh is None: -366 raise ValueError('Skeleton must have a `mesh` to mend breaks.') +307 """ +308 header = dedent(f"""\ +309 # SWC format file +310 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html +311 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) +312 # PointNo Label X Y Z Radius Parent +313 # Labels: +314 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point +315 """) +316 +317 # Make copy of SWC table +318 swc = self.swc.copy() +319 +320 # Set all labels to undefined +321 swc["label"] = 0 +322 swc.loc[~swc.node_id.isin(swc.parent_id.values), "label"] = 6 +323 n_childs = swc.groupby("parent_id").size() +324 bp = n_childs[n_childs > 1].index.values +325 swc.loc[swc.node_id.isin(bp), "label"] = 5 +326 +327 # Add radius if missing +328 if "radius" not in swc.columns: +329 swc["radius"] = 0 +330 +331 # Get things in order +332 swc = swc[["node_id", "label", "x", "y", "z", "radius", "parent_id"]] +333 +334 # Adjust column titles +335 swc.columns = ["PointNo", "Label", "X", "Y", "Z", "Radius", "Parent"] +336 +337 with open(filepath, "w") as file: +338 # Write header +339 file.write(header) +340 +341 # Write data +342 writer = csv.writer(file, delimiter=" ") +343 writer.writerows(swc.astype(str).values) +344 +345 def scene(self, mesh=False, **kwargs): +346 """Return a Scene object containing the skeleton. +347 +348 Returns +349 ------- +350 scene : trimesh.scene.scene.Scene +351 Contains the skeleton and optionally the mesh. +352 +353 """ +354 if mesh: +355 if isinstance(self.mesh, type(None)): +356 raise ValueError("Skeleton has no mesh.") +357 +358 self.mesh.visual.face_colors = [100, 100, 100, 100] +359 +360 # Note the copy(): without it the transform in show() changes +361 # the original meshes +362 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) +363 else: +364 sc = tm.Scene(self.skeleton.copy(), **kwargs) +365 +366 return sc 367 -368 # Make a copy of the mesh edges -369 edges = self.mesh.edges.copy() -370 # Map mesh vertices to skeleton vertices -371 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] -372 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] -373 # Deduplicate -374 edges = np.unique(edges, axis=0) -375 # Remove self edges -376 edges = edges[edges[:,0] != edges[:, 1]] -377 -378 G = self.get_graph().to_undirected() -379 -380 # Remove edges that are already in the skeleton -381 edges = np.array([e for e in edges if not G.has_edge(*e)]) -382 -383 # Calculate distance between these new edge candidates -384 dists = np.sqrt(((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1)) -385 -386 # Sort by distance (lowest first) -387 edges = edges[np.argsort(dists)] -388 dists = dists[np.argsort(dists)] -389 -390 for e, d in zip(edges, dists): -391 # Check if the new path would be shorter than the current shortest path -392 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): -393 continue -394 # Check if the distance is within bounds -395 elif d < dist_min: -396 continue -397 elif d > dist_max: -398 continue -399 # Add edge -400 G.add_edge(*e, weight=d) -401 -402 # The above may have introduced small triangles which we should try to remove -403 # by removing the longest edge in a triangle. I have also spotted more -404 # complex cases of four or more nodes forming false-positive loops but -405 # these will be harder to detect and remove. -406 -407 # First collect neighbors for each node -408 later_nbrs = {} -409 for node, neighbors in G.adjacency(): -410 later_nbrs[node] = {n for n in neighbors if n not in later_nbrs and n != node} -411 -412 # Go over each node -413 triangles = set() -414 for node1, neighbors in later_nbrs.items(): -415 # Go over each neighbor -416 for node2 in neighbors: -417 # Check if there is one or more third nodes that are connected to both -418 third_nodes = neighbors & later_nbrs[node2] -419 for node3 in third_nodes: -420 # Add triangle (sort to deduplicate) -421 triangles.add(tuple(sorted([node1, node2, node3]))) -422 -423 # Remove longest edge in each triangle -424 for t in triangles: -425 e1, e2, e3 = t[:2], t[1:], t[::2] -426 # Make sure all edges still exist (we may have already removed edges -427 # that were part of a previous triangle) -428 if any(not G.has_edge(*e) for e in (e1, e2, e3)): -429 continue -430 # Remove the longest edge -431 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]['weight'])) -432 -433 return np.array(G.edges), self.vertices.copy() +368 def show(self, mesh=False, **kwargs): +369 """Render the skeleton in an opengl window. Requires pyglet. +370 +371 Parameters +372 ---------- +373 mesh : bool +374 If True, will render transparent mesh on top of the +375 skeleton. +376 +377 Returns +378 -------- +379 scene : trimesh.scene.Scene +380 Scene with skeleton in it. +381 +382 """ +383 scene = self.scene(mesh=mesh) +384 +385 # I encountered some issues if object space is big and the easiest +386 # way to work around this is to apply a transform such that the +387 # coordinates have -5 to +5 bounds +388 fac = 5 / np.fabs(self.skeleton.bounds).max() +389 scene.apply_transform(np.diag([fac, fac, fac, 1])) +390 +391 return scene.show(**kwargs) +392 +393 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): +394 """Mend breaks in the skeleton using the original mesh. +395 +396 This works by comparing the connectivity of the original mesh with that +397 of the skeleton. If the shortest path between two adjacent vertices on the mesh +398 is shorter than the distance between the nodes in the skeleton, a new edge +399 is added to the skeleton. +400 +401 Parameters +402 ---------- +403 dist_mult : float, optional +404 Factor by which the new edge should be shorter than the +405 current shortest path between two nodes to be added. +406 Lower values = fewer false negatives; higher values = fewer +407 false positive edges. +408 dist_min : float, optional +409 Minimum distance between nodes to consider adding an edge. +410 Use this to avoid adding very short edges. +411 dist_max : float, optional +412 Maximum distance between nodes to consider adding an edge. +413 Use this to avoid adding very long edges. +414 +415 Returns +416 ------- +417 edges : (N, 2) array +418 Edges connecting the skeleton nodes. +419 vertices : (N, 3) array +420 Positions of the skeleton nodes. +421 +422 """ +423 # We need `.mesh_map` and `.mesh` to exist +424 if self.mesh_map is None: +425 raise ValueError("Skeleton must have a `mesh_map` to mend breaks.") +426 if self.mesh is None: +427 raise ValueError("Skeleton must have a `mesh` to mend breaks.") +428 +429 # Make a copy of the mesh edges +430 edges = self.mesh.edges.copy() +431 # Map mesh vertices to skeleton vertices +432 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] +433 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] +434 # Deduplicate +435 edges = np.unique(edges, axis=0) +436 # Remove self edges +437 edges = edges[edges[:, 0] != edges[:, 1]] +438 +439 G = self.get_graph().to_undirected() +440 +441 # Remove edges that are already in the skeleton +442 edges = np.array([e for e in edges if not G.has_edge(*e)]) +443 +444 # Calculate distance between these new edge candidates +445 dists = np.sqrt( +446 ((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1) +447 ) +448 +449 # Sort by distance (lowest first) +450 edges = edges[np.argsort(dists)] +451 dists = dists[np.argsort(dists)] +452 +453 for e, d in zip(edges, dists): +454 # Check if the new path would be shorter than the current shortest path +455 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): +456 continue +457 # Check if the distance is within bounds +458 elif d < dist_min: +459 continue +460 elif d > dist_max: +461 continue +462 # Add edge +463 G.add_edge(*e, weight=d) +464 +465 # The above may have introduced small triangles which we should try to remove +466 # by removing the longest edge in a triangle. I have also spotted more +467 # complex cases of four or more nodes forming false-positive loops but +468 # these will be harder to detect and remove. +469 +470 # First collect neighbors for each node +471 later_nbrs = {} +472 for node, neighbors in G.adjacency(): +473 later_nbrs[node] = { +474 n for n in neighbors if n not in later_nbrs and n != node +475 } +476 +477 # Go over each node +478 triangles = set() +479 for node1, neighbors in later_nbrs.items(): +480 # Go over each neighbor +481 for node2 in neighbors: +482 # Check if there is one or more third nodes that are connected to both +483 third_nodes = neighbors & later_nbrs[node2] +484 for node3 in third_nodes: +485 # Add triangle (sort to deduplicate) +486 triangles.add(tuple(sorted([node1, node2, node3]))) +487 +488 # Remove longest edge in each triangle +489 for t in triangles: +490 e1, e2, e3 = t[:2], t[1:], t[::2] +491 # Make sure all edges still exist (we may have already removed edges +492 # that were part of a previous triangle) +493 if any(not G.has_edge(*e) for e in (e1, e2, e3)): +494 continue +495 # Remove the longest edge +496 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]["weight"])) +497 +498 return np.array(G.edges), self.vertices.copy()
82 @property 83 def edges(self): 84 """Return skeleton edges.""" -85 return self.swc.loc[self.swc.parent_id >= 0, -86 ['node_id', 'parent_id']].values +85 return self.swc.loc[self.swc.parent_id >= 0, ["node_id", "parent_id"]].values
88 @property -89 def vertices(self): -90 """Return skeleton vertices (nodes).""" -91 return self.swc[['x', 'y', 'z']].values +@@ -1308,13 +1378,14 @@87 @property +88 def vertices(self): +89 """Return skeleton vertices (nodes).""" +90 return self.swc[["x", "y", "z"]].valuesAttributes
93 @property -94 def radius(self): -95 """Return radii.""" -96 if 'radius' not in self.swc.columns: -97 raise ValueError('No radius info found. Run `skeletor.post.radii()`' -98 ' to get them.') -99 return self.swc['radius'].values +@@ -1335,12 +1406,12 @@92 @property +93 def radius(self): +94 """Return radii.""" +95 if "radius" not in self.swc.columns: +96 raise ValueError( +97 "No radius info found. Run `skeletor.post.radii()`" " to get them." +98 ) +99 return self.swc["radius"].valuesAttributes
@@ -1364,10 +1435,13 @@101 @property 102 def skeleton(self): 103 """Skeleton as trimesh Path3D.""" -104 if not hasattr(self, '_skeleton'): +104 if not hasattr(self, "_skeleton"): 105 lines = [tm.path.entities.Line(e) for e in self.edges] 106 -107 self._skeleton = tm.path.Path3D(entities=lines, -108 vertices=self.vertices, -109 process=False) +107 self._skeleton = tm.path.Path3D( +108 entities=lines, vertices=self.vertices, process=False +109 ) 110 return self._skeletonAttributes
114 """Skeleton vertex (nodes) to mesh vertices. Based on `mesh_map`.""" 115 if isinstance(self.mesh_map, type(None)): 116 return None -117 return pd.DataFrame(self.mesh_map -118 ).reset_index(drop=False -119 ).groupby(0)['index'].apply(np.array -120 ).values +117 return ( +118 pd.DataFrame(self.mesh_map) +119 .reset_index(drop=False) +120 .groupby(0)["index"] +121 .apply(np.array) +122 .values +123 )
125 @property +126 def roots(self): +127 """Root node(s).""" +128 return self.swc.loc[self.swc.parent_id < 0].index.values +
Root node(s).
+122 @property -123 def leafs(self): -124 """Leaf nodes (includes root).""" -125 swc = self.swc -126 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] -127 return leafs.copy() +@@ -1410,21 +1505,21 @@130 @property +131 def leafs(self): +132 """Leaf nodes (includes root).""" +133 swc = self.swc +134 leafs = swc[~swc.node_id.isin(swc.parent_id.values) | (swc.parent_id < 0)] +135 return leafs.copy()Attributes
129 def reindex(self, inplace=False): -130 """Clean up skeleton.""" -131 x = self -132 if not inplace: -133 x = x.copy() -134 -135 # Re-index to make node IDs continous again -136 x.swc, new_ids = reindex_swc(x.swc) -137 -138 # Update mesh map -139 if not isinstance(x.mesh_map, type(None)): -140 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) -141 -142 if not inplace: -143 return x +@@ -1432,6 +1527,85 @@137 def reindex(self, inplace=False): +138 """Clean up skeleton.""" +139 x = self +140 if not inplace: +141 x = x.copy() +142 +143 # Re-index to make node IDs continous again +144 x.swc, new_ids = reindex_swc(x.swc) +145 +146 # Update mesh map +147 if not isinstance(x.mesh_map, type(None)): +148 x.mesh_map = np.array([new_ids.get(i, i) for i in x.mesh_map]) +149 +150 if not inplace: +151 return xAttributes
153 def reroot(self, new_root): +154 """Reroot the skeleton. +155 +156 Parameters +157 ---------- +158 new_root : int +159 Index of node to use as new root. If the skeleton +160 consists of multiple trees, only the tree containing the +161 new root will be updated. +162 +163 Returns +164 ------- +165 Skeleton +166 Skeleton with new root. +167 +168 """ +169 assert new_root in self.swc.index.values, f"Node index {new_root} not in skeleton." +170 +171 # Make copy of self +172 x = self.copy() +173 +174 # Check if the new root is already a root +175 if new_root in x.roots: +176 return x +177 +178 # Get graph representation +179 G = x.get_graph() +180 +181 # Get the path from the new root to the current root (of the same tree) +182 for r in x.roots: +183 try: +184 path = nx.shortest_path(G, source=new_root, target=r) +185 break +186 except nx.NetworkXNoPath: +187 continue +188 +189 # Now we need to invert the path from the old root to the new root +190 new_parents = x.swc.set_index('node_id').parent_id.to_dict() +191 new_parents.update({c: p for p, c in zip(path[:-1], path[1:])}) +192 new_parents[new_root] = -1 +193 +194 # Update the SWC table +195 x.swc["parent_id"] = x.swc.node_id.map(new_parents) +196 +197 return x +
Reroot the skeleton.
+ +145 def copy(self): -146 """Return copy of the skeleton.""" -147 return Skeleton(swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, -148 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, -149 mesh_map=self.mesh_map.copy() if not isinstance(self.mesh_map, type(None)) else None) +@@ -1468,28 +1647,32 @@199 def copy(self): +200 """Return copy of the skeleton.""" +201 return Skeleton( +202 swc=self.swc.copy() if not isinstance(self.swc, type(None)) else None, +203 mesh=self.mesh.copy() if not isinstance(self.mesh, type(None)) else None, +204 mesh_map=self.mesh_map.copy() +205 if not isinstance(self.mesh_map, type(None)) +206 else None, +207 method=self.method, +208 )Attributes
151 def get_graph(self): -152 """Generate networkX representation of the skeletons. -153 -154 Distance between nodes will be used as edge weights. -155 -156 Returns -157 ------- -158 networkx.DiGraph -159 -160 """ -161 not_root = self.swc.parent_id >= 0 -162 nodes = self.swc.loc[not_root] -163 parents = self.swc.set_index('node_id').loc[self.swc.loc[not_root, 'parent_id'].values] -164 -165 dists = nodes[['x', 'y', 'z']].values - parents[['x', 'y', 'z']].values -166 dists = np.sqrt((dists ** 2).sum(axis=1)) -167 -168 G = nx.DiGraph() -169 G.add_nodes_from(self.swc.node_id.values) -170 G.add_weighted_edges_from(zip(nodes.node_id.values, nodes.parent_id.values, dists)) -171 -172 return G +@@ -1517,69 +1700,67 @@210 def get_graph(self): +211 """Generate networkX representation of the skeletons. +212 +213 Distance between nodes will be used as edge weights. +214 +215 Returns +216 ------- +217 networkx.DiGraph +218 +219 """ +220 not_root = self.swc.parent_id >= 0 +221 nodes = self.swc.loc[not_root] +222 parents = self.swc.set_index("node_id").loc[ +223 self.swc.loc[not_root, "parent_id"].values +224 ] +225 +226 dists = nodes[["x", "y", "z"]].values - parents[["x", "y", "z"]].values +227 dists = np.sqrt((dists**2).sum(axis=1)) +228 +229 G = nx.DiGraph() +230 G.add_nodes_from(self.swc.node_id.values) +231 G.add_weighted_edges_from( +232 zip(nodes.node_id.values, nodes.parent_id.values, dists) +233 ) +234 +235 return GReturns
174 def get_segments(self, -175 weight = 'weight', -176 return_lengths = False): -177 """Generate a list of linear segments while maximizing segment lengths. -178 -179 Parameters -180 ---------- -181 weight : 'weight' | None, optional -182 If ``"weight"`` use physical, geodesic length to determine -183 segment length. If ``None`` use number of nodes (faster). -184 return_lengths : bool -185 If True, also return lengths of segments according to ``weight``. -186 -187 Returns -188 ------- -189 segments : list -190 Segments as list of lists containing node IDs. List is -191 sorted by segment lengths. -192 lengths : list -193 Length for each segment according to ``weight``. Only provided -194 if `return_lengths` is True. -195 -196 """ -197 assert weight in ('weight', None), f'Unable to use weight "{weight}"' -198 -199 # Get graph representation -200 G = self.get_graph() -201 -202 # Get distances to root -203 dists = {} -204 for root in self.swc[self.swc.parent_id < 0].node_id.values: -205 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) -206 -207 # Sort leaf nodes -208 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values -209 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) -210 -211 seen: set = set() -212 sequences = [] -213 for nodeID in endNodeIDs: -214 sequence = [nodeID] -215 parents = list(G.successors(nodeID)) -216 while True: -217 if not parents: -218 break -219 parentID = parents[0] -220 sequence.append(parentID) -221 if parentID in seen: -222 break -223 seen.add(parentID) -224 parents = list(G.successors(parentID)) -225 -226 if len(sequence) > 1: -227 sequences.append(sequence) -228 -229 # Sort sequences by length -230 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] -231 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] -232 -233 if return_lengths: -234 return sequences, sorted(lengths, reverse=True) -235 else: -236 return sequences +@@ -1620,51 +1801,51 @@237 def get_segments(self, weight="weight", return_lengths=False): +238 """Generate a list of linear segments while maximizing segment lengths. +239 +240 Parameters +241 ---------- +242 weight : 'weight' | None, optional +243 If ``"weight"`` use physical, geodesic length to determine +244 segment length. If ``None`` use number of nodes (faster). +245 return_lengths : bool +246 If True, also return lengths of segments according to ``weight``. +247 +248 Returns +249 ------- +250 segments : list +251 Segments as list of lists containing node IDs. List is +252 sorted by segment lengths. +253 lengths : list +254 Length for each segment according to ``weight``. Only provided +255 if `return_lengths` is True. +256 +257 """ +258 assert weight in ("weight", None), f'Unable to use weight "{weight}"' +259 +260 # Get graph representation +261 G = self.get_graph() +262 +263 # Get distances to root +264 dists = {} +265 for root in self.swc[self.swc.parent_id < 0].node_id.values: +266 dists.update(nx.shortest_path_length(G, target=root, weight=weight)) +267 +268 # Sort leaf nodes +269 endNodeIDs = self.leafs[self.leafs.parent_id >= 0].node_id.values +270 endNodeIDs = sorted(endNodeIDs, key=lambda x: dists.get(x, 0), reverse=True) +271 +272 seen: set = set() +273 sequences = [] +274 for nodeID in endNodeIDs: +275 sequence = [nodeID] +276 parents = list(G.successors(nodeID)) +277 while True: +278 if not parents: +279 break +280 parentID = parents[0] +281 sequence.append(parentID) +282 if parentID in seen: +283 break +284 seen.add(parentID) +285 parents = list(G.successors(parentID)) +286 +287 if len(sequence) > 1: +288 sequences.append(sequence) +289 +290 # Sort sequences by length +291 lengths = [dists[s[0]] - dists[s[-1]] for s in sequences] +292 sequences = [x for _, x in sorted(zip(lengths, sequences), reverse=True)] +293 +294 if return_lengths: +295 return sequences, sorted(lengths, reverse=True) +296 else: +297 return sequencesReturns
238 def save_swc(self, filepath): -239 """Save skeleton in SWC format. -240 -241 Parameters -242 ---------- -243 filepath : path-like -244 Filepath to save SWC to. -245 -246 """ -247 header = dedent(f"""\ -248 # SWC format file -249 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html -250 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) -251 # PointNo Label X Y Z Radius Parent -252 # Labels: -253 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point -254 """) -255 -256 # Make copy of SWC table -257 swc = self.swc.copy() -258 -259 # Set all labels to undefined -260 swc['label'] = 0 -261 swc.loc[~swc.node_id.isin(swc.parent_id.values), 'label'] = 6 -262 n_childs = swc.groupby('parent_id').size() -263 bp = n_childs[n_childs > 1].index.values -264 swc.loc[swc.node_id.isin(bp), 'label'] = 5 -265 -266 # Add radius if missing -267 if 'radius' not in swc.columns: -268 swc['radius'] = 0 -269 -270 # Get things in order -271 swc = swc[['node_id', 'label', 'x', 'y', 'z', 'radius', 'parent_id']] -272 -273 # Adjust column titles -274 swc.columns = ['PointNo', 'Label', 'X', 'Y', 'Z', 'Radius', 'Parent'] -275 -276 with open(filepath, 'w') as file: -277 # Write header -278 file.write(header) -279 -280 # Write data -281 writer = csv.writer(file, delimiter=' ') -282 writer.writerows(swc.astype(str).values) +@@ -1691,28 +1872,28 @@299 def save_swc(self, filepath): +300 """Save skeleton in SWC format. +301 +302 Parameters +303 ---------- +304 filepath : path-like +305 Filepath to save SWC to. +306 +307 """ +308 header = dedent(f"""\ +309 # SWC format file +310 # based on specifications at http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html +311 # Created on {datetime.date.today()} using skeletor (https://github.com/navis-org/skeletor) +312 # PointNo Label X Y Z Radius Parent +313 # Labels: +314 # 0 = undefined, 1 = soma, 5 = fork point, 6 = end point +315 """) +316 +317 # Make copy of SWC table +318 swc = self.swc.copy() +319 +320 # Set all labels to undefined +321 swc["label"] = 0 +322 swc.loc[~swc.node_id.isin(swc.parent_id.values), "label"] = 6 +323 n_childs = swc.groupby("parent_id").size() +324 bp = n_childs[n_childs > 1].index.values +325 swc.loc[swc.node_id.isin(bp), "label"] = 5 +326 +327 # Add radius if missing +328 if "radius" not in swc.columns: +329 swc["radius"] = 0 +330 +331 # Get things in order +332 swc = swc[["node_id", "label", "x", "y", "z", "radius", "parent_id"]] +333 +334 # Adjust column titles +335 swc.columns = ["PointNo", "Label", "X", "Y", "Z", "Radius", "Parent"] +336 +337 with open(filepath, "w") as file: +338 # Write header +339 file.write(header) +340 +341 # Write data +342 writer = csv.writer(file, delimiter=" ") +343 writer.writerows(swc.astype(str).values)Parameters
284 def scene(self, mesh=False, **kwargs): -285 """Return a Scene object containing the skeleton. -286 -287 Returns -288 ------- -289 scene : trimesh.scene.scene.Scene -290 Contains the skeleton and optionally the mesh. -291 -292 """ -293 if mesh: -294 if isinstance(self.mesh, type(None)): -295 raise ValueError('Skeleton has no mesh.') -296 -297 self.mesh.visual.face_colors = [100, 100, 100, 100] -298 -299 # Note the copy(): without it the transform in show() changes -300 # the original meshes -301 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) -302 else: -303 sc = tm.Scene(self.skeleton.copy(), **kwargs) -304 -305 return sc +@@ -1739,30 +1920,30 @@345 def scene(self, mesh=False, **kwargs): +346 """Return a Scene object containing the skeleton. +347 +348 Returns +349 ------- +350 scene : trimesh.scene.scene.Scene +351 Contains the skeleton and optionally the mesh. +352 +353 """ +354 if mesh: +355 if isinstance(self.mesh, type(None)): +356 raise ValueError("Skeleton has no mesh.") +357 +358 self.mesh.visual.face_colors = [100, 100, 100, 100] +359 +360 # Note the copy(): without it the transform in show() changes +361 # the original meshes +362 sc = tm.Scene([self.mesh.copy(), self.skeleton.copy()], **kwargs) +363 else: +364 sc = tm.Scene(self.skeleton.copy(), **kwargs) +365 +366 return scReturns
307 def show(self, mesh=False, **kwargs): -308 """Render the skeleton in an opengl window. Requires pyglet. -309 -310 Parameters -311 ---------- -312 mesh : bool -313 If True, will render transparent mesh on top of the -314 skeleton. -315 -316 Returns -317 -------- -318 scene : trimesh.scene.Scene -319 Scene with skeleton in it. -320 -321 """ -322 scene = self.scene(mesh=mesh) -323 -324 # I encountered some issues if object space is big and the easiest -325 # way to work around this is to apply a transform such that the -326 # coordinates have -5 to +5 bounds -327 fac = 5 / np.fabs(self.skeleton.bounds).max() -328 scene.apply_transform(np.diag([fac, fac, fac, 1])) -329 -330 return scene.show(**kwargs) +@@ -1797,108 +1978,112 @@368 def show(self, mesh=False, **kwargs): +369 """Render the skeleton in an opengl window. Requires pyglet. +370 +371 Parameters +372 ---------- +373 mesh : bool +374 If True, will render transparent mesh on top of the +375 skeleton. +376 +377 Returns +378 -------- +379 scene : trimesh.scene.Scene +380 Scene with skeleton in it. +381 +382 """ +383 scene = self.scene(mesh=mesh) +384 +385 # I encountered some issues if object space is big and the easiest +386 # way to work around this is to apply a transform such that the +387 # coordinates have -5 to +5 bounds +388 fac = 5 / np.fabs(self.skeleton.bounds).max() +389 scene.apply_transform(np.diag([fac, fac, fac, 1])) +390 +391 return scene.show(**kwargs)Returns
332 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): -333 """Mend breaks in the skeleton using the original mesh. -334 -335 This works by comparing the connectivity of the original mesh with that -336 of the skeleton. If the shortest path between two adjacent vertices on the mesh -337 is shorter than the distance between the nodes in the skeleton, a new edge -338 is added to the skeleton. -339 -340 Parameters -341 ---------- -342 dist_mult : float, optional -343 Factor by which the new edge should be shorter than the -344 current shortest path between two nodes to be added. -345 Lower values = fewer false negatives; higher values = fewer -346 false positive edges. -347 dist_min : float, optional -348 Minimum distance between nodes to consider adding an edge. -349 Use this to avoid adding very short edges. -350 dist_max : float, optional -351 Maximum distance between nodes to consider adding an edge. -352 Use this to avoid adding very long edges. -353 -354 Returns -355 ------- -356 edges : (N, 2) array -357 Edges connecting the skeleton nodes. -358 vertices : (N, 3) array -359 Positions of the skeleton nodes. -360 -361 """ -362 # We need `.mesh_map` and `.mesh` to exist -363 if self.mesh_map is None: -364 raise ValueError('Skeleton must have a `mesh_map` to mend breaks.') -365 if self.mesh is None: -366 raise ValueError('Skeleton must have a `mesh` to mend breaks.') -367 -368 # Make a copy of the mesh edges -369 edges = self.mesh.edges.copy() -370 # Map mesh vertices to skeleton vertices -371 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] -372 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] -373 # Deduplicate -374 edges = np.unique(edges, axis=0) -375 # Remove self edges -376 edges = edges[edges[:,0] != edges[:, 1]] -377 -378 G = self.get_graph().to_undirected() -379 -380 # Remove edges that are already in the skeleton -381 edges = np.array([e for e in edges if not G.has_edge(*e)]) -382 -383 # Calculate distance between these new edge candidates -384 dists = np.sqrt(((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1)) -385 -386 # Sort by distance (lowest first) -387 edges = edges[np.argsort(dists)] -388 dists = dists[np.argsort(dists)] -389 -390 for e, d in zip(edges, dists): -391 # Check if the new path would be shorter than the current shortest path -392 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): -393 continue -394 # Check if the distance is within bounds -395 elif d < dist_min: -396 continue -397 elif d > dist_max: -398 continue -399 # Add edge -400 G.add_edge(*e, weight=d) -401 -402 # The above may have introduced small triangles which we should try to remove -403 # by removing the longest edge in a triangle. I have also spotted more -404 # complex cases of four or more nodes forming false-positive loops but -405 # these will be harder to detect and remove. -406 -407 # First collect neighbors for each node -408 later_nbrs = {} -409 for node, neighbors in G.adjacency(): -410 later_nbrs[node] = {n for n in neighbors if n not in later_nbrs and n != node} -411 -412 # Go over each node -413 triangles = set() -414 for node1, neighbors in later_nbrs.items(): -415 # Go over each neighbor -416 for node2 in neighbors: -417 # Check if there is one or more third nodes that are connected to both -418 third_nodes = neighbors & later_nbrs[node2] -419 for node3 in third_nodes: -420 # Add triangle (sort to deduplicate) -421 triangles.add(tuple(sorted([node1, node2, node3]))) -422 -423 # Remove longest edge in each triangle -424 for t in triangles: -425 e1, e2, e3 = t[:2], t[1:], t[::2] -426 # Make sure all edges still exist (we may have already removed edges -427 # that were part of a previous triangle) -428 if any(not G.has_edge(*e) for e in (e1, e2, e3)): -429 continue -430 # Remove the longest edge -431 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]['weight'])) -432 -433 return np.array(G.edges), self.vertices.copy() +393 def mend_breaks(self, dist_mult=5, dist_min=0, dist_max=np.inf): +394 """Mend breaks in the skeleton using the original mesh. +395 +396 This works by comparing the connectivity of the original mesh with that +397 of the skeleton. If the shortest path between two adjacent vertices on the mesh +398 is shorter than the distance between the nodes in the skeleton, a new edge +399 is added to the skeleton. +400 +401 Parameters +402 ---------- +403 dist_mult : float, optional +404 Factor by which the new edge should be shorter than the +405 current shortest path between two nodes to be added. +406 Lower values = fewer false negatives; higher values = fewer +407 false positive edges. +408 dist_min : float, optional +409 Minimum distance between nodes to consider adding an edge. +410 Use this to avoid adding very short edges. +411 dist_max : float, optional +412 Maximum distance between nodes to consider adding an edge. +413 Use this to avoid adding very long edges. +414 +415 Returns +416 ------- +417 edges : (N, 2) array +418 Edges connecting the skeleton nodes. +419 vertices : (N, 3) array +420 Positions of the skeleton nodes. +421 +422 """ +423 # We need `.mesh_map` and `.mesh` to exist +424 if self.mesh_map is None: +425 raise ValueError("Skeleton must have a `mesh_map` to mend breaks.") +426 if self.mesh is None: +427 raise ValueError("Skeleton must have a `mesh` to mend breaks.") +428 +429 # Make a copy of the mesh edges +430 edges = self.mesh.edges.copy() +431 # Map mesh vertices to skeleton vertices +432 edges[:, 0] = self.mesh_map[self.mesh.edges[:, 0]] +433 edges[:, 1] = self.mesh_map[self.mesh.edges[:, 1]] +434 # Deduplicate +435 edges = np.unique(edges, axis=0) +436 # Remove self edges +437 edges = edges[edges[:, 0] != edges[:, 1]] +438 +439 G = self.get_graph().to_undirected() +440 +441 # Remove edges that are already in the skeleton +442 edges = np.array([e for e in edges if not G.has_edge(*e)]) +443 +444 # Calculate distance between these new edge candidates +445 dists = np.sqrt( +446 ((self.vertices[edges[:, 0]] - self.vertices[edges[:, 1]]) ** 2).sum(axis=1) +447 ) +448 +449 # Sort by distance (lowest first) +450 edges = edges[np.argsort(dists)] +451 dists = dists[np.argsort(dists)] +452 +453 for e, d in zip(edges, dists): +454 # Check if the new path would be shorter than the current shortest path +455 if (d * dist_mult) < nx.shortest_path_length(G, e[0], e[1]): +456 continue +457 # Check if the distance is within bounds +458 elif d < dist_min: +459 continue +460 elif d > dist_max: +461 continue +462 # Add edge +463 G.add_edge(*e, weight=d) +464 +465 # The above may have introduced small triangles which we should try to remove +466 # by removing the longest edge in a triangle. I have also spotted more +467 # complex cases of four or more nodes forming false-positive loops but +468 # these will be harder to detect and remove. +469 +470 # First collect neighbors for each node +471 later_nbrs = {} +472 for node, neighbors in G.adjacency(): +473 later_nbrs[node] = { +474 n for n in neighbors if n not in later_nbrs and n != node +475 } +476 +477 # Go over each node +478 triangles = set() +479 for node1, neighbors in later_nbrs.items(): +480 # Go over each neighbor +481 for node2 in neighbors: +482 # Check if there is one or more third nodes that are connected to both +483 third_nodes = neighbors & later_nbrs[node2] +484 for node3 in third_nodes: +485 # Add triangle (sort to deduplicate) +486 triangles.add(tuple(sorted([node1, node2, node3]))) +487 +488 # Remove longest edge in each triangle +489 for t in triangles: +490 e1, e2, e3 = t[:2], t[1:], t[::2] +491 # Make sure all edges still exist (we may have already removed edges +492 # that were part of a previous triangle) +493 if any(not G.has_edge(*e) for e in (e1, e2, e3)): +494 continue +495 # Remove the longest edge +496 G.remove_edge(*max((e1, e2, e3), key=lambda e: G.edges[e]["weight"])) +497 +498 return np.array(G.edges), self.vertices.copy()