RDG-Networks 0.3.7__tar.gz → 0.3.8__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/PKG-INFO +1 -1
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/PKG-INFO +1 -1
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/SOURCES.txt +1 -1
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/entry_points.txt +1 -1
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/__init__.py +6 -6
- rdg_networks-0.3.8/RDG_networks/thickness/__init__.py +19 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/thickness/generate_line_segments_thickness.py +11 -20
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/thickness/generate_line_segments_thickness_static.py +1 -1
- rdg_networks-0.3.7/RDG_networks/thickness/generate_line_segments_thickness_orientation.py → rdg_networks-0.3.8/RDG_networks/thickness/orientate_network.py +53 -85
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/setup.py +2 -2
- rdg_networks-0.3.7/RDG_networks/thickness/__init__.py +0 -19
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/LICENSE.txt +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/dependency_links.txt +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/requires.txt +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_Networks.egg-info/top_level.txt +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/Classes.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/draw_segments.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/generate_line_network.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/generate_line_segments.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/generate_line_segments_dynamic.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/generate_line_segments_static.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/get_intersection_segments.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/sample_in_polygon.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/save_to_stl.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/thickness/Classes.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/thickness/sample_in_polygon.py +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/README.md +0 -0
- {rdg_networks-0.3.7 → rdg_networks-0.3.8}/setup.cfg +0 -0
@@ -20,6 +20,6 @@ RDG_networks/save_to_stl.py
|
|
20
20
|
RDG_networks/thickness/Classes.py
|
21
21
|
RDG_networks/thickness/__init__.py
|
22
22
|
RDG_networks/thickness/generate_line_segments_thickness.py
|
23
|
-
RDG_networks/thickness/generate_line_segments_thickness_orientation.py
|
24
23
|
RDG_networks/thickness/generate_line_segments_thickness_static.py
|
24
|
+
RDG_networks/thickness/orientate_network.py
|
25
25
|
RDG_networks/thickness/sample_in_polygon.py
|
@@ -6,10 +6,10 @@ generate_line_segments = RDG_networks.generate_line_segments:main
|
|
6
6
|
generate_line_segments_dynamic = RDG_networks.generate_line_segments_dynamic:main
|
7
7
|
generate_line_segments_static = RDG_networks.generate_line_segments_static:main
|
8
8
|
generate_line_segments_thickness = RDG_networks.thickness.generate_line_segments_thickness:main
|
9
|
-
generate_line_segments_thickness_orientation = RDG_networks.thickness.generate_line_segments_dynamic_orientation:main
|
10
9
|
generate_line_segments_thickness_static = RDG_networks.generate_line_segments_thickness_static:main
|
11
10
|
get_alignment_mean = RDG_networks.thickness.get_alignment_mean:main
|
12
11
|
get_intersection_segments = RDG_networks.get_intersection_segments:main
|
12
|
+
orientate_network = RDG_networks.thickness.orientate_network:main
|
13
13
|
rotate_network = RDG_networks.thickness.rotate_network:main
|
14
14
|
save_to_stl = RDG_networks.save_to_stl:main
|
15
15
|
translate_network = RDG_networks.thickness.translate_network:main
|
@@ -8,17 +8,17 @@ from .generate_line_segments_dynamic import generate_line_segments_dynamic
|
|
8
8
|
from .generate_line_segments_static import generate_line_segments_static
|
9
9
|
from .draw_segments import draw_segments
|
10
10
|
from .thickness.generate_line_segments_thickness import generate_line_segments_thickness
|
11
|
-
from .thickness.
|
11
|
+
from .thickness.orientate_network import orientate_network
|
12
12
|
from .thickness.generate_line_segments_thickness_static import generate_line_segments_thickness_static
|
13
|
-
from .thickness.
|
14
|
-
from .thickness.
|
15
|
-
from .thickness.
|
16
|
-
from .thickness.
|
13
|
+
from .thickness.orientate_network import translate_network
|
14
|
+
from .thickness.orientate_network import clip_network
|
15
|
+
from .thickness.orientate_network import rotate_network
|
16
|
+
from .thickness.orientate_network import get_alignment_mean
|
17
17
|
from .save_to_stl import save_to_stl
|
18
18
|
|
19
19
|
__all__ = ['generate_line_segments',
|
20
20
|
'generate_line_segments_thickness',
|
21
|
-
'
|
21
|
+
'orientate_network',
|
22
22
|
'translate_network',
|
23
23
|
'clip_network',
|
24
24
|
'rotate_network',
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# __init__.py
|
2
|
+
|
3
|
+
from .generate_line_segments_thickness import generate_line_segments_thickness
|
4
|
+
from .orientate_network import orientate_network
|
5
|
+
from .generate_line_segments_thickness_static import generate_line_segments_thickness_static
|
6
|
+
from .orientate_network import translate_network
|
7
|
+
from .orientate_network import clip_network
|
8
|
+
from .orientate_network import rotate_network
|
9
|
+
from .orientate_network import get_alignment_mean
|
10
|
+
|
11
|
+
__all__ = [
|
12
|
+
'generate_line_segments_thickness',
|
13
|
+
'orientate_network',
|
14
|
+
'generate_line_segments_thickness_static',
|
15
|
+
'translate_network',
|
16
|
+
'clip_network',
|
17
|
+
'rotate_network',
|
18
|
+
'get_alignment_mean'
|
19
|
+
]
|
{rdg_networks-0.3.7 → rdg_networks-0.3.8}/RDG_networks/thickness/generate_line_segments_thickness.py
RENAMED
@@ -142,10 +142,10 @@ def pick_item_with_probability(
|
|
142
142
|
def get_location_and_direction(
|
143
143
|
polygon_arr: Dict[str, Dict[str, object]],
|
144
144
|
thickness: float,
|
145
|
+
angle: float,
|
145
146
|
nucleation_point: Tuple[float, float] = None,
|
146
147
|
min_distance: float = 0,
|
147
|
-
max_attempts: int = 1000
|
148
|
-
angles: Union[str, List[float]] = 'uniform'
|
148
|
+
max_attempts: int = 1000
|
149
149
|
) -> Union[Tuple[str, Dict[str, object], Tuple[float, float], np.ndarray, np.ndarray], bool]:
|
150
150
|
"""
|
151
151
|
Attempts to find a valid location and direction within a polygon for placing a new segment. The direction can either be randomly
|
@@ -159,8 +159,8 @@ def get_location_and_direction(
|
|
159
159
|
The thickness of the segment that needs to fit inside the polygon.
|
160
160
|
max_attempts (int, optional):
|
161
161
|
The maximum number of attempts to find a valid location and direction. Defaults to 1000.
|
162
|
-
|
163
|
-
A
|
162
|
+
angle (float):
|
163
|
+
A float indicating the angle of the new segment.
|
164
164
|
nucleation_point (Tuple[float, float], optional):
|
165
165
|
predified nucleation point for the segment. Defaults to None.
|
166
166
|
min_distance (float, optional):
|
@@ -178,16 +178,8 @@ def get_location_and_direction(
|
|
178
178
|
- The angle of the segment.
|
179
179
|
- Returns `False` if no valid location and direction are found after the maximum attempts.
|
180
180
|
"""
|
181
|
-
|
182
|
-
|
183
|
-
if angles == 'uniform':
|
184
|
-
angle_new = random.uniform(-np.pi, np.pi)
|
185
|
-
direction = (np.cos(angle_new), np.sin(angle_new))
|
186
|
-
direction = direction / np.linalg.norm(direction) # Normalize the direction vector
|
187
|
-
else:
|
188
|
-
angle_new = random.choice(angles)
|
189
|
-
direction = (np.cos(angle_new), np.sin(angle_new))
|
190
|
-
direction = np.array(direction) / np.linalg.norm(direction)
|
181
|
+
direction = (np.cos(angle), np.sin(angle))
|
182
|
+
direction = np.array(direction) / np.linalg.norm(direction)
|
191
183
|
|
192
184
|
# Try to find a valid location and direction up to max_attempts
|
193
185
|
attempt = 0
|
@@ -215,7 +207,7 @@ def get_location_and_direction(
|
|
215
207
|
|
216
208
|
# Check if both endpoints of the segment are inside the polygon
|
217
209
|
if is_inside_polygon(polygon['vertices'], p1) and is_inside_polygon(polygon['vertices'], p2):
|
218
|
-
return polygon_id, polygon, location_new, direction, perpendicular,
|
210
|
+
return polygon_id, polygon, location_new, direction, perpendicular, angle
|
219
211
|
|
220
212
|
attempt += 1
|
221
213
|
|
@@ -451,7 +443,7 @@ def add_line_segment(
|
|
451
443
|
segments_dict: Dict[int, LineSegment],
|
452
444
|
polygon_arr: Dict[str, Dict[str, object]],
|
453
445
|
segment_thickness_dict: Dict[int, Polygon],
|
454
|
-
|
446
|
+
angle: float,
|
455
447
|
thickness: float = 0,
|
456
448
|
nucleation_point: Tuple[float, float] = None,
|
457
449
|
min_distance: float = 0,
|
@@ -480,7 +472,7 @@ def add_line_segment(
|
|
480
472
|
"""
|
481
473
|
|
482
474
|
# Get a valid location and direction, or return False if none is found
|
483
|
-
loc = get_location_and_direction(polygon_arr, thickness, nucleation_point, min_distance, max_attempts=max_attempts
|
475
|
+
loc = get_location_and_direction(polygon_arr, angle=angle, thickness=thickness, nucleation_point=nucleation_point, min_distance=min_distance, max_attempts=max_attempts)
|
484
476
|
if loc:
|
485
477
|
polygon_id, polygon, location_new, direction_new, perpendicular, angle_new = loc
|
486
478
|
else:
|
@@ -560,8 +552,7 @@ def generate_line_segments_thickness(
|
|
560
552
|
Args:
|
561
553
|
size (int): The number of line segments to generate.
|
562
554
|
thickness_arr (List[float]): A list containing the thickness values for each segment to be generated.
|
563
|
-
angles (str):
|
564
|
-
List[float]: list of angles in radians.
|
555
|
+
angles (str): Angle used in the generation of the segments.
|
565
556
|
config (List[List[float]]): A list of configurations for the nucleation points and angles.
|
566
557
|
epsilon (float): the minimum distance between two line.
|
567
558
|
box_size (float): the size of the box.
|
@@ -615,7 +606,7 @@ def generate_line_segments_thickness(
|
|
615
606
|
thickness=thickness_arr[i],
|
616
607
|
min_distance = epsilon,
|
617
608
|
nucleation_point = nucleation_point,
|
618
|
-
|
609
|
+
angle=angles[i],
|
619
610
|
box_size=box_size)
|
620
611
|
if output:
|
621
612
|
segments_dict, polygon_arr, segment_thickness_dict, location, angle = output
|
@@ -105,7 +105,7 @@ def seeds(number_of_lines, radius = 0.015, number_of_trials = 10000):
|
|
105
105
|
if trial <= number_of_trials:
|
106
106
|
nucleation_points += [new_points]
|
107
107
|
angles = [0, np.pi/4, np.pi/2, 3*np.pi/4]
|
108
|
-
angle_new = random.uniform(0, 2*np.pi)
|
108
|
+
angle_new = random.uniform(0, 2*np.pi)
|
109
109
|
angle += [angle_new]
|
110
110
|
Line[line_id] = [ new_points ,angle_new]
|
111
111
|
line_id += 1
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import numpy as np
|
2
|
+
import math
|
2
3
|
from typing import List, Dict, Tuple
|
3
4
|
from shapely.geometry import Polygon as Polygon_Shapely
|
4
5
|
from shapely.geometry import LineString, box
|
5
|
-
from concurrent.futures import ProcessPoolExecutor
|
6
6
|
from .Classes import LineSegment, Polygon
|
7
7
|
|
8
8
|
def rotate(point, center, rotation_matrix):
|
@@ -13,7 +13,9 @@ def rotate(point, center, rotation_matrix):
|
|
13
13
|
rotation_matrix: 2x2 numpy array representing the rotation matrix
|
14
14
|
"""
|
15
15
|
translated_point = point - center
|
16
|
-
|
16
|
+
|
17
|
+
# rotated_point = np.dot(rotation_matrix, translated_point)
|
18
|
+
rotated_point = rotation_matrix@translated_point
|
17
19
|
final_point = rotated_point + center
|
18
20
|
|
19
21
|
return final_point
|
@@ -30,16 +32,22 @@ def angle_between(v1, v2):
|
|
30
32
|
|
31
33
|
def get_alignment_mean(line_vector_arr, director):
|
32
34
|
"""Get the mean alignment."""
|
33
|
-
S_all =
|
35
|
+
S_all = 0
|
36
|
+
total_mass = 0
|
34
37
|
for item in line_vector_arr:
|
35
38
|
line_vector = item['line_vector']
|
39
|
+
vector_diff = np.array(line_vector[1]) - np.array(line_vector[0])
|
40
|
+
|
36
41
|
area = item['area']
|
37
|
-
|
38
|
-
S_all
|
42
|
+
align = math.cos(angle_between(vector_diff, director))**2
|
43
|
+
S_all += align*area
|
44
|
+
total_mass += area
|
39
45
|
|
40
|
-
|
46
|
+
output = S_all / total_mass
|
41
47
|
|
42
|
-
|
48
|
+
return output
|
49
|
+
|
50
|
+
def compute_alignment(
|
43
51
|
angle: float,
|
44
52
|
segment_thickness_dict: dict[str, Polygon],
|
45
53
|
director: np.ndarray,
|
@@ -69,7 +77,7 @@ def compute_alignment_for_angle(
|
|
69
77
|
tuple[float, float]
|
70
78
|
A tuple where the first element is the input angle and the second element is the computed alignment value.
|
71
79
|
"""
|
72
|
-
box_center =
|
80
|
+
box_center = np.array((box_measurements[0]) + np.array(box_measurements[2])) / 2
|
73
81
|
|
74
82
|
# Rotate network
|
75
83
|
segment_thickness_dict_new = rotate_network(segment_thickness_dict, rotate_angle=angle, box_center=box_center)
|
@@ -79,13 +87,38 @@ def compute_alignment_for_angle(
|
|
79
87
|
|
80
88
|
line_vectors = [
|
81
89
|
{'line_vector': [seg.middle_segment.start, seg.middle_segment.end], 'area': seg.area()}
|
82
|
-
for seg in segment_thickness_dict_new.values()
|
90
|
+
for seg in segment_thickness_dict_new.values() if seg.middle_segment is not None
|
83
91
|
]
|
84
92
|
|
85
93
|
alignment = get_alignment_mean(line_vectors, director)
|
86
|
-
|
94
|
+
|
87
95
|
return angle, alignment
|
88
96
|
|
97
|
+
def get_max_alignment(
|
98
|
+
segment_thickness_dict: dict,
|
99
|
+
director: np.ndarray,
|
100
|
+
box_measurements: list[float],
|
101
|
+
grid_points: int = 360
|
102
|
+
) -> float:
|
103
|
+
"""Find the angle with the maximum alignment using parallel processing."""
|
104
|
+
# Create a list of angles to evaluate
|
105
|
+
angles = np.linspace(0, np.pi, grid_points)
|
106
|
+
|
107
|
+
results = []
|
108
|
+
for a in angles:
|
109
|
+
result = compute_alignment(a, segment_thickness_dict, director, box_measurements)
|
110
|
+
results.append(result)
|
111
|
+
|
112
|
+
# Find the angle with the maximum alignment
|
113
|
+
max_alignment = 0
|
114
|
+
max_angle = None
|
115
|
+
for angle, alignment in results:
|
116
|
+
if alignment > max_alignment:
|
117
|
+
max_alignment = alignment
|
118
|
+
max_angle = angle
|
119
|
+
|
120
|
+
return max_angle
|
121
|
+
|
89
122
|
def rotate_network(
|
90
123
|
segment_thickness_dict: dict[str, Polygon],
|
91
124
|
rotate_angle: float,
|
@@ -256,74 +289,12 @@ def translate_network(
|
|
256
289
|
|
257
290
|
return segment_thickness_dict_new
|
258
291
|
|
259
|
-
def
|
260
|
-
"""Get the mean alignment."""
|
261
|
-
S_all = []
|
262
|
-
for item in line_vector_arr:
|
263
|
-
line_vector = item['line_vector']
|
264
|
-
area = item['area']
|
265
|
-
P2 = 0.5*(3*(np.cos(angle_between(line_vector, director)))**2-1)
|
266
|
-
S_all.append(P2*area)
|
267
|
-
|
268
|
-
return float(np.mean(S_all))
|
269
|
-
|
270
|
-
def compute_alignment_for_angle(
|
271
|
-
segment_thickness_dict: dict,
|
272
|
-
angle: float,
|
273
|
-
box_center,
|
274
|
-
director: np.ndarray,
|
275
|
-
) -> tuple[float, float]:
|
276
|
-
"""Compute the alignment for a given angle."""
|
277
|
-
|
278
|
-
# Rotate the segment network for the given angle
|
279
|
-
segment_thickness_dict_rotated = rotate_network(segment_thickness_dict, rotate_angle=angle, box_center=box_center)
|
280
|
-
|
281
|
-
# Create line vectors from the rotated segments
|
282
|
-
line_vectors = []
|
283
|
-
for s in segment_thickness_dict_rotated.values():
|
284
|
-
line_vectors.append({'line_vector': np.array([s.middle_segment.start, s.middle_segment.end]), 'area': s.area()})
|
285
|
-
|
286
|
-
# Compute the alignment for the current angle
|
287
|
-
alignment = get_alignment_mean(line_vectors, director)
|
288
|
-
return angle, alignment
|
289
|
-
|
290
|
-
def get_max_alignment_angle(
|
291
|
-
segment_thickness_dict: dict,
|
292
|
-
director: np.ndarray,
|
293
|
-
box_measurements: list[float],
|
294
|
-
grid_points: int = 360
|
295
|
-
) -> float:
|
296
|
-
"""Find the angle with the maximum alignment using parallel processing."""
|
297
|
-
|
298
|
-
# Create a list of angles to evaluate
|
299
|
-
angles = np.linspace(0, 2 * np.pi, grid_points)
|
300
|
-
|
301
|
-
# Use ProcessPoolExecutor for parallel computation of alignment
|
302
|
-
with ProcessPoolExecutor() as executor:
|
303
|
-
# Submit tasks to the pool for each angle
|
304
|
-
results = list(executor.map(
|
305
|
-
compute_alignment_for_angle,
|
306
|
-
[segment_thickness_dict] * len(angles), # Same segment dictionary for all angles
|
307
|
-
angles, # Different angles
|
308
|
-
[box_measurements] * len(angles), # Same box measurements for all angles
|
309
|
-
[director] * len(angles) # Same director for all angles
|
310
|
-
))
|
311
|
-
|
312
|
-
# Find the angle with the maximum alignment
|
313
|
-
max_alignment = 0
|
314
|
-
max_angle = 0
|
315
|
-
for angle, alignment in results:
|
316
|
-
if alignment > max_alignment:
|
317
|
-
max_alignment = alignment
|
318
|
-
max_angle = angle
|
319
|
-
|
320
|
-
return max_angle
|
321
|
-
|
322
|
-
def generate_line_segments_thickness_orientation(
|
292
|
+
def orientate_network(
|
323
293
|
data_dict: Dict[str, dict],
|
324
294
|
orientation: List[int],
|
325
295
|
grid_points: int = 360,
|
326
|
-
box_measurements: List[Tuple[float, float]] = [(0, 0), (0, 1), (1, 1), (1, 0)]
|
296
|
+
box_measurements: List[Tuple[float, float]] = [(0, 0), (0, 1), (1, 1), (1, 0)],
|
297
|
+
director: np.ndarray = np.array([0, 1])
|
327
298
|
) -> List[Dict[str, dict]]:
|
328
299
|
"""
|
329
300
|
Generates a set of networks of line segments with different thicknesses and orientations, and clips them to fit
|
@@ -354,36 +325,33 @@ def generate_line_segments_thickness_orientation(
|
|
354
325
|
|
355
326
|
# Extract the segment thickness dictionary from the input data
|
356
327
|
segment_thickness_dict = data_dict['segment_thickness_dict']
|
357
|
-
|
358
|
-
# Define the director vector along the y-axis
|
359
|
-
director = np.array([0, 1])
|
360
328
|
|
361
329
|
# Find the angle that aligns the network most with the y-axis
|
362
|
-
max_angle =
|
363
|
-
|
330
|
+
max_angle = get_max_alignment(segment_thickness_dict, director, box_measurements, grid_points)
|
331
|
+
|
364
332
|
# Store the initial unmodified configuration
|
365
333
|
output = [{'orientation': 'original', 'data_dict': data_dict}]
|
366
334
|
|
367
335
|
# Loop through each given orientation, rotate, clip, and translate the network
|
368
336
|
for o in orientation:
|
369
337
|
# Compute the rotation angle for the current orientation relative to max alignment
|
370
|
-
rotate_angle =
|
338
|
+
rotate_angle = -max_angle + o
|
371
339
|
|
372
340
|
# Rotate the network by the computed angle
|
373
|
-
|
341
|
+
segment_thickness_dict_rotated = rotate_network(segment_thickness_dict, rotate_angle=rotate_angle, box_center=box_center)
|
374
342
|
|
375
343
|
# Clip the rotated network to fit within the bounding box
|
376
|
-
|
344
|
+
segment_thickness_dict_clipped = clip_network(segment_thickness_dict_rotated, box_measurements=box_measurements)
|
377
345
|
|
378
346
|
# Translate the clipped network to start at the origin (0,0)
|
379
347
|
translation_vector = -np.array(box_measurements[0])
|
380
|
-
|
348
|
+
segment_thickness_dict_translated = translate_network(segment_thickness_dict_clipped, translation_vector)
|
381
349
|
|
382
350
|
# Prepare a new data dictionary with the transformed segment information
|
383
351
|
data_dict_new = {
|
384
352
|
'segments_dict': None,
|
385
353
|
'polygon_arr': None,
|
386
|
-
'segment_thickness_dict':
|
354
|
+
'segment_thickness_dict': segment_thickness_dict_translated,
|
387
355
|
'jammed': None,
|
388
356
|
'generated_config': None
|
389
357
|
}
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name='RDG-Networks',
|
5
|
-
version='0.3.
|
5
|
+
version='0.3.8',
|
6
6
|
author='Niek Mooij',
|
7
7
|
author_email='mooij.niek@gmail.com',
|
8
8
|
description='Most of the code from the RDG Networks project',
|
@@ -26,7 +26,7 @@ setup(
|
|
26
26
|
'generate_line_segments=RDG_networks.generate_line_segments:main',
|
27
27
|
'generate_line_segments_thickness=RDG_networks.thickness.generate_line_segments_thickness:main',
|
28
28
|
|
29
|
-
'
|
29
|
+
'orientate_network=RDG_networks.thickness.orientate_network:main',
|
30
30
|
|
31
31
|
'translate_network=RDG_networks.thickness.translate_network:main',
|
32
32
|
'clip_network=RDG_networks.thickness.clip_network:main',
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# __init__.py
|
2
|
-
|
3
|
-
from .generate_line_segments_thickness import generate_line_segments_thickness
|
4
|
-
from .generate_line_segments_thickness_orientation import generate_line_segments_thickness_orientation
|
5
|
-
from .generate_line_segments_thickness_static import generate_line_segments_thickness_static
|
6
|
-
from .generate_line_segments_thickness_orientation import translate_network
|
7
|
-
from .generate_line_segments_thickness_orientation import clip_network
|
8
|
-
from .generate_line_segments_thickness_orientation import rotate_network
|
9
|
-
from .generate_line_segments_thickness_orientation import get_alignment_mean
|
10
|
-
|
11
|
-
__all__ = [
|
12
|
-
'generate_line_segments_thickness',
|
13
|
-
'generate_line_segments_thickness_orientation',
|
14
|
-
'generate_line_segments_thickness_static',
|
15
|
-
'translate_network',
|
16
|
-
'clip_network',
|
17
|
-
'rotate_network',
|
18
|
-
'get_alignment_mean'
|
19
|
-
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|