Rahatara commited on
Commit
f1a45c5
·
verified ·
1 Parent(s): f795533

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -10
app.py CHANGED
@@ -9,7 +9,7 @@ def apply_masked_visuals(section):
9
  mesh = trimesh.load('train.glb', force='mesh')
10
  im = Image.open('rust_steel.png').convert('RGB')
11
 
12
- # Calculate bounding box coordinates
13
  bounds = mesh.bounds
14
  min_bounds, max_bounds = bounds[0], bounds[1]
15
  mid_x = (max_bounds[0] + min_bounds[0]) / 2
@@ -30,17 +30,15 @@ def apply_masked_visuals(section):
30
  # Select the indices for the specified section
31
  selected_indices = sections[section]
32
 
33
- # Check if the mesh has existing visuals
34
- if mesh.visual.kind == 'texture':
35
- visual = mesh.visual.copy()
36
- visual.update_vertices(mask=np.isin(range(len(mesh.vertices)), selected_indices))
37
- else:
38
- visual = trimesh.visual.ColorVisuals(vertex_colors=np.ones((len(mesh.vertices), 4)) * 255)
39
 
40
- # Prepare the new visual properties (UV or color updates)
41
- uv = np.copy(visual.uv) if visual.kind == 'texture' else np.random.rand(len(mesh.vertices), 2)
 
 
42
  new_uv = np.copy(uv)
43
- new_uv[selected_indices, :] = np.random.rand(len(selected_indices), 2)
44
 
45
  # Create a new material with the image texture
46
  material = trimesh.visual.texture.SimpleMaterial(image=im)
 
9
  mesh = trimesh.load('train.glb', force='mesh')
10
  im = Image.open('rust_steel.png').convert('RGB')
11
 
12
+ # Calculate the bounding box coordinates
13
  bounds = mesh.bounds
14
  min_bounds, max_bounds = bounds[0], bounds[1]
15
  mid_x = (max_bounds[0] + min_bounds[0]) / 2
 
30
  # Select the indices for the specified section
31
  selected_indices = sections[section]
32
 
33
+ # Ensure that all indices are valid
34
+ valid_indices = selected_indices[selected_indices < len(mesh.vertices)]
 
 
 
 
35
 
36
+ # Create or re-initialize the UV array
37
+ uv = np.random.rand(len(mesh.vertices), 2)
38
+
39
+ # Generate new UV coordinates only for the selected section
40
  new_uv = np.copy(uv)
41
+ new_uv[valid_indices, :] = np.random.rand(len(valid_indices), 2)
42
 
43
  # Create a new material with the image texture
44
  material = trimesh.visual.texture.SimpleMaterial(image=im)