@@ -153,7 +153,7 @@ class CVertexWelder {
153153 if (!polygon->valid ()) return false ;
154154
155155 const auto & positionView = polygon->getPositionView ();
156- if (IGeometryBase::getMatchingAABBFormat (positionView.composed .format ) = = positionView.composed .rangeFormat ) return false ;
156+ if (IGeometryBase::getMatchingAABBFormat (positionView.composed .format ) ! = positionView.composed .rangeFormat ) return false ;
157157 m_positionViewContext = {
158158 .channelCount = getFormatChannelCount (positionView.composed .format ),
159159 .byteSize = getTexelOrBlockBytesize (positionView.composed .format ),
@@ -181,6 +181,8 @@ class CVertexWelder {
181181 m_auxAttributeViewContexts.push_back (getViewContext (auxAttributeView));
182182 }
183183
184+ return true ;
185+
184186 }
185187
186188 inline bool operator ()(const ICPUPolygonGeometry* polygon, uint32_t index1, uint32_t index2) const override
@@ -213,9 +215,11 @@ class CVertexWelder {
213215 };
214216
215217 template <VertexWelderAccelerationStructure AccelStructureT>
216- static inline core::smart_refctd_ptr<ICPUPolygonGeometry> weldVertices (const ICPUPolygonGeometry* polygon, const AccelStructureT& as, const WeldPredicate& shouldWeldFn) {
218+ static inline core::smart_refctd_ptr<ICPUPolygonGeometry> weldVertices (const ICPUPolygonGeometry* polygon, const AccelStructureT& as, WeldPredicate& shouldWeldFn) {
217219 auto outPolygon = core::move_and_static_cast<ICPUPolygonGeometry>(polygon->clone (0u ));
218220
221+ if (!shouldWeldFn.init (polygon)) return nullptr ;
222+
219223 const auto & positionView = polygon->getPositionView ();
220224 const auto vertexCount = positionView.getElementCount ();
221225
0 commit comments