Handle object lights with radius 0
This commit is contained in:
		
							parent
							
								
									63133da6a4
								
							
						
					
					
						commit
						e004292e53
					
				|  | @ -1,4 +1,4 @@ | ||||||
| using System.Numerics; | using System.Numerics; | ||||||
| using KeepersCompound.LGS.Database; | using KeepersCompound.LGS.Database; | ||||||
| using KeepersCompound.LGS.Database.Chunks; | using KeepersCompound.LGS.Database.Chunks; | ||||||
| using TinyEmbree; | using TinyEmbree; | ||||||
|  | @ -108,19 +108,28 @@ class Program | ||||||
|                 else if (brush.media == BrList.Brush.Media.Object) |                 else if (brush.media == BrList.Brush.Media.Object) | ||||||
|                 { |                 { | ||||||
|                     var id = (int)brush.brushInfo; |                     var id = (int)brush.brushInfo; | ||||||
|                     var light = hierarchy.GetProperty<PropLight>(id, "P$Light"); |                     var propLight = hierarchy.GetProperty<PropLight>(id, "P$Light"); | ||||||
|                     var lightColor = hierarchy.GetProperty<PropLightColor>(id, "P$LightColo"); |                     var propLightColor = hierarchy.GetProperty<PropLightColor>(id, "P$LightColo"); | ||||||
| 
 | 
 | ||||||
|                     if (light != null) |                     if (propLight != null) | ||||||
|                     { |                     { | ||||||
|                         lightColor ??= new PropLightColor { Hue = 0, Saturation = 0 }; |                         propLightColor ??= new PropLightColor { Hue = 0, Saturation = 0 }; | ||||||
|                         lights.Add(new Light | 
 | ||||||
|  |                         var light = new Light | ||||||
|                         { |                         { | ||||||
|                             position = brush.position, |                             position = brush.position, | ||||||
|                             color = HsbToRgb(lightColor.Hue, lightColor.Saturation, light.Brightness), |                             color = HsbToRgb(propLightColor.Hue, propLightColor.Saturation, propLight.Brightness), | ||||||
|                             radius = light.Radius, |                             radius = propLight.Radius, | ||||||
|                             r2 = light.Radius * light.Radius, |                             r2 = propLight.Radius * propLight.Radius, | ||||||
|                         }); |                         }; | ||||||
|  | 
 | ||||||
|  |                         if (propLight.Radius == 0) | ||||||
|  |                         { | ||||||
|  |                             light.radius = float.MaxValue; | ||||||
|  |                             light.r2 = float.MaxValue; | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         lights.Add(light); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue