@@ -201,7 +201,7 @@ def create_node_no_repeative(nodes, type, name):
201201 return new_node
202202
203203
204- def get_aa_box (vertices ):
204+ def get_aa_box (vertices , matrix_local = Matrix . Identity ( 4 ) ):
205205 minX = sys .float_info .max
206206 maxX = sys .float_info .min
207207
@@ -212,13 +212,23 @@ def get_aa_box(vertices):
212212 maxZ = sys .float_info .min
213213
214214 for vertex in vertices :
215- minX = min (vertex .co .x , minX )
216- maxX = max (vertex .co .x , maxX )
217215
218- minY = min (vertex .co .y , minY )
219- maxY = max (vertex .co .y , maxY )
216+ coord = Vector (vertex .co )
220217
221- minZ = min (vertex .co .z , minZ )
222- maxZ = max (vertex .co .z , maxZ )
218+ minX = min ((matrix_local @ coord ).x , minX )
219+ maxX = max ((matrix_local @ coord ).x , maxX )
220+ minY = min ((matrix_local @ coord ).y , minY )
221+ maxY = max ((matrix_local @ coord ).y , maxY )
222+ minZ = min ((matrix_local @ coord ).z , minZ )
223+ maxZ = max ((matrix_local @ coord ).z , maxZ )
223224
224225 return Vector ((maxX - minX , maxY - minY , maxZ - minZ ))
226+
227+ def get_aa_center (vertices , matrix_local = Matrix .Identity (4 )):
228+ vertex_sum = Vector ((0 , 0 , 0 ))
229+ vertex_count = len (vertices )
230+ for vertex in vertices :
231+ vertex_sum += matrix_local @ vertex .co
232+
233+ centroid_local = vertex_sum / vertex_count if vertex_count > 0 else Vector ((0 ,0 ,0 ))
234+ return centroid_local
0 commit comments