1- # pylint: disable=invalid-name, missing-docstring, no-member, too-many-lines, c-extension-no-member, bare-except
1+ # pylint: disable=invalid-name, missing-docstring, no-member, too-many-lines, c-extension-no-member, bare-except, not-callable
22
33from typing import Sequence
44import os
@@ -37,19 +37,22 @@ def simplify(cg, new_fragment, new_fragment_id: np.uint64 = None):
3737 Simplify with pyfqmr; input and output flat vertices and faces.
3838 """
3939
40- v = new_fragment ["vertices" ].reshape (- 1 , 3 )
41- f = new_fragment ["faces" ].reshape (- 1 , 3 )
42-
4340 l2factor = int (os .environ .get ("l2factor" , "2" ))
4441 factor = int (os .environ .get ("factor" , "4" ))
4542 aggressiveness = float (os .environ .get ("aggr" , "7.0" ))
4643
44+ v = new_fragment ["vertices" ].reshape (- 1 , 3 )
45+ f = new_fragment ["faces" ].reshape (- 1 , 3 )
46+
4747 layer = cg .get_chunk_layer (new_fragment_id )
4848 if layer == 2 :
4949 target_count = max (int (len (f ) / l2factor ), 4 )
5050 else :
5151 target_count = max (int (len (f ) / factor ), 4 )
5252
53+ scale = (2 ** (layer - 2 )) * np .array (cg .meta .graph_config .CHUNK_SIZE , dtype = int )
54+ v = v / scale
55+
5356 simplifier = pyfqmr .Simplify ()
5457 simplifier .setMesh (v , f )
5558 simplifier .simplify_mesh (
@@ -59,6 +62,7 @@ def simplify(cg, new_fragment, new_fragment_id: np.uint64 = None):
5962 verbose = False ,
6063 )
6164 v , f , _ = simplifier .getMesh ()
65+ v = v * scale
6266 new_fragment ["vertices" ] = v .flatten ()
6367 new_fragment ["faces" ] = f .flatten ()
6468 return new_fragment
0 commit comments