@@ -180,12 +180,67 @@ internal static (IPointCloudNode, bool) CollapseLeafNodes(this IPointCloudNode s
180180 for ( var i = 0 ; i < psla . Count ; i ++ )
181181 {
182182 var p = psla [ i ] ;
183- if ( p . X <= bb . Min . X ) { if ( ! p . X . ApproximateEquals ( bb . Min . X , eps . X ) ) throw new Exception ( $ "Invariant 4840fe92-02df-4b9a-8233-18edb12656f9.") ; p . X = bb . Min . X + eps . X ; }
184- if ( p . Y <= bb . Min . Y ) { if ( ! p . Y . ApproximateEquals ( bb . Min . Y , eps . Y ) ) throw new Exception ( $ "Invariant 942019a9-cb0d-476c-bfb8-69a2bde8debf.") ; p . Y = bb . Min . Y + eps . Y ; }
185- if ( p . Z <= bb . Min . Z ) { if ( ! p . Z . ApproximateEquals ( bb . Min . Z , eps . Z ) ) throw new Exception ( $ "Invariant 68fd4c9e-6de1-4a43-91ae-fec4a9fb28df.") ; p . Z = bb . Min . Z + eps . Z ; }
186- if ( p . X >= bb . Max . X ) { if ( ! p . X . ApproximateEquals ( bb . Max . X , eps . X ) ) throw new Exception ( $ "Invariant a24f717c-19d9-46eb-9cf5-b1f6d928963a.") ; p . X = bb . Max . X - eps . X ; }
187- if ( p . Y >= bb . Max . Y ) { if ( ! p . Y . ApproximateEquals ( bb . Max . Y , eps . Y ) ) throw new Exception ( $ "Invariant fd8aaa89-43d3-428c-9d95-a62bf5a41b07.") ; p . Y = bb . Max . Y - eps . Y ; }
188- if ( p . Z >= bb . Max . Z ) { if ( ! p . Z . ApproximateEquals ( bb . Max . Z , eps . Z ) ) throw new Exception ( $ "Invariant 9905f569-16d0-4e46-8ae2-147aeb6e7acc.") ; p . Z = bb . Max . Z - eps . Z ; }
183+ if ( p . X <= bb . Min . X )
184+ {
185+ if ( ! p . X . ApproximateEquals ( bb . Min . X , eps . X ) ) Report . Warn (
186+ $ "[WARNING] Invariant p.X <= bb.Min.X ({ p . X } <= { bb . Min . X } , eps.X = { bb . Min . X + eps . X } ). " +
187+ $ "Bounding box is { bb } . " +
188+ $ "Shifting p={ p } to p.X={ bb . Min . X } . " +
189+ $ "Warning 4840fe92-02df-4b9a-8233-18edb12656f9."
190+ ) ;
191+ p . X = bb . Min . X + eps . X ;
192+ }
193+ if ( p . Y <= bb . Min . Y )
194+ {
195+ if ( ! p . Y . ApproximateEquals ( bb . Min . Y , eps . Y ) ) Report . Warn (
196+ $ "[WARNING] Invariant p.Y <= bb.Min.Y ({ p . Y } <= { bb . Min . Y } , eps.Y = { bb . Min . Y + eps . Y } ). " +
197+ $ "Bounding box is { bb } ." +
198+ $ "Shifting p={ p } to p.Y={ bb . Min . Y } . " +
199+ $ "Warning 942019a9-cb0d-476c-bfb8-69a2bde8debf."
200+ ) ;
201+ p . Y = bb . Min . Y + eps . Y ;
202+ }
203+ if ( p . Z <= bb . Min . Z )
204+ {
205+ if ( ! p . Z . ApproximateEquals ( bb . Min . Z , eps . Z ) ) Report . Warn (
206+ $ "[WARNING] Invariant p.Z <= bb.Min.Z ({ p . Z } <= { bb . Min . Z } , eps.Z = { bb . Min . Z + eps . Z } ). " +
207+ $ "Bounding box is { bb } . " +
208+ $ "Shifting p={ p } to p.Z={ bb . Min . Z } . " +
209+ $ "Warning 68fd4c9e-6de1-4a43-91ae-fec4a9fb28df."
210+ ) ;
211+ p . Z = bb . Min . Z + eps . Z ;
212+ }
213+ if ( p . X >= bb . Max . X )
214+ {
215+ if ( ! p . X . ApproximateEquals ( bb . Max . X , eps . X ) ) Report . Warn (
216+ $ "[WARNING] Invariant p.X >= bb.Max.X ({ p . X } >= { bb . Max . X } , eps.X = { bb . Max . X - eps . X } ). " +
217+ $ "Bounding box is { bb } . " +
218+ $ "Shifting p={ p } to p.X={ bb . Max . X } . " +
219+ $ "Warning a24f717c-19d9-46eb-9cf5-b1f6d928963a."
220+ ) ;
221+ p . X = bb . Max . X - eps . X ;
222+ }
223+ if ( p . Y >= bb . Max . Y )
224+ {
225+ if ( ! p . Y . ApproximateEquals ( bb . Max . Y , eps . Y ) ) Report . Warn (
226+ $ "[WARNING] Invariant p.Y >= bb.Max.Y ({ p . Y } >= { bb . Max . Y } , eps.Y = { bb . Max . Y - eps . Y } ). " +
227+ $ "Bounding box is { bb } . " +
228+ $ "Shifting p={ p } to p.Y={ bb . Max . Y } . " +
229+ $ "Warning fd8aaa89-43d3-428c-9d95-a62bf5a41b07."
230+ ) ;
231+ p . Y = bb . Max . Y - eps . Y ;
232+ }
233+ if ( p . Z >= bb . Max . Z )
234+ {
235+ if ( ! p . Z . ApproximateEquals ( bb . Max . Z , eps . Z ) ) Report . Warn (
236+ $ "[WARNING] Invariant p.Z >= bb.Max.Z ({ p . Z } >= { bb . Max . Z } , eps.Z = { bb . Max . Z - eps . Z } ). " +
237+ $ "Bounding box is { bb } . " +
238+ $ "Shifting p={ p } to p.Z={ bb . Max . Z } . " +
239+ $ "Warning 9905f569-16d0-4e46-8ae2-147aeb6e7acc."
240+ ) ;
241+ p . Z = bb . Max . Z - eps . Z ;
242+ }
243+
189244 psla [ i ] = p ;
190245 }
191246 var bbNew = new Box3d ( psla ) ;
0 commit comments