From e9507dca06c5b928ec9be68f8622f8af1c86806f Mon Sep 17 00:00:00 2001 From: Anton Sarg Date: Thu, 13 Nov 2025 23:03:24 +0100 Subject: [PATCH 1/4] Add required <> to templates --- .../Sources/include/PoissonRecon/FEMTree.h | 4 ++-- .../include/PoissonRecon/MarchingCubes.h | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h index a15a2544..c666a4aa 100644 --- a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h +++ b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h @@ -1923,12 +1923,12 @@ class FEMTree if( node ) { int d , off[Dim] ; node->depthAndOffset( d , off ); - BaseFEMIntegrator::template ParentOverlapBounds( UIntPack< FEMDegrees1 ... >() , UIntPack< FEMDegrees2 ... >() , d , off , start , end ); + BaseFEMIntegrator::template ParentOverlapBounds<>( UIntPack< FEMDegrees1 ... >() , UIntPack< FEMDegrees2 ... >() , d , off , start , end ); } } template< unsigned int ... FEMDegrees1 , unsigned int ... FEMDegrees2 > static void _SetParentOverlapBounds( UIntPack< FEMDegrees1 ... > , UIntPack< FEMDegrees2 ... > , int cIdx , int start[Dim] , int end[Dim] ) { - BaseFEMIntegrator::template ParentOverlapBounds( UIntPack< FEMDegrees1 ... >() , UIntPack< FEMDegrees2 ... >() , cIdx , start , end ); + BaseFEMIntegrator::template ParentOverlapBounds<>( UIntPack< FEMDegrees1 ... >() , UIntPack< FEMDegrees2 ... >() , cIdx , start , end ); } template< unsigned int ... FEMSigs > diff --git a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/MarchingCubes.h b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/MarchingCubes.h index a4b0e5ac..b81b6e1f 100644 --- a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/MarchingCubes.h +++ b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/MarchingCubes.h @@ -574,7 +574,7 @@ namespace HyperCube { unsigned int coIndex; e.factor( dir , coIndex ); - if( dir==CROSS ) Cube< D-1 >::template _FactorOrientation( typename Cube< D-1 >::template Element< D-2 >( coIndex ) , dim , dir ); + if( dir==CROSS ) Cube< D-1 >::template _FactorOrientation<>( typename Cube< D-1 >::template Element< D-2 >( coIndex ) , dim , dir ); else dim = D-1; } template< unsigned int D > template< unsigned int _D > @@ -660,9 +660,9 @@ namespace HyperCube { Direction eDir , dDir ; unsigned int eCoIndex , dCoIndex; e.factor( eDir , eCoIndex ) , d.factor( dDir , dCoIndex ); - if ( eDir==CROSS ){ return 1 + Cube< D-1 >::template CellOffset( typename Cube< D-1 >::template Element< K-1 >( eCoIndex ) , d ) * 3; } - else if( eDir==BACK ){ return 0 + ( dDir==BACK ? 0 : 1 ) + Cube< D-1 >::template CellOffset( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ) * 3; } - else if( eDir==FRONT ){ return 1 + ( dDir==BACK ? 0 : 1 ) + Cube< D-1 >::template CellOffset( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ) * 3; } + if ( eDir==CROSS ){ return 1 + Cube< D-1 >::template CellOffset<>( typename Cube< D-1 >::template Element< K-1 >( eCoIndex ) , d ) * 3; } + else if( eDir==BACK ){ return 0 + ( dDir==BACK ? 0 : 1 ) + Cube< D-1 >::template CellOffset<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ) * 3; } + else if( eDir==FRONT ){ return 1 + ( dDir==BACK ? 0 : 1 ) + Cube< D-1 >::template CellOffset<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ) * 3; } return 0; } template< unsigned int D > template< unsigned int K , unsigned int _D > @@ -693,9 +693,9 @@ namespace HyperCube { Direction eDir , dDir ; unsigned int eCoIndex , dCoIndex; e.factor( eDir , eCoIndex ) , d.factor( dDir , dCoIndex ); - if ( eDir==CROSS ) return Element< K >( eDir , Cube< D-1 >::template IncidentElement( typename Cube< D-1 >::template Element< K-1 >( eCoIndex ) , d ).index ); - else if( eDir==dDir ) return Element< K >( Opposite( eDir ) , Cube< D-1 >::template IncidentElement( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); - else return Element< K >( eDir , Cube< D-1 >::template IncidentElement( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); + if ( eDir==CROSS ) return Element< K >( eDir , Cube< D-1 >::template IncidentElement<>( typename Cube< D-1 >::template Element< K-1 >( eCoIndex ) , d ).index ); + else if( eDir==dDir ) return Element< K >( Opposite( eDir ) , Cube< D-1 >::template IncidentElement<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); + else return Element< K >( eDir , Cube< D-1 >::template IncidentElement<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); } template< unsigned int D > template< unsigned int K , unsigned int _D > #ifdef _MSC_VER @@ -706,8 +706,8 @@ namespace HyperCube { Direction eDir , dDir ; unsigned int eCoIndex , dCoIndex; e.factor( eDir , eCoIndex ) , d.factor( dDir , dCoIndex ); - if( eDir==dDir ) return Element< K >( Opposite( eDir ) , Cube< D-1 >::template IncidentElement( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); - else return Element< K >( eDir , Cube< D-1 >::template IncidentElement( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); + if( eDir==dDir ) return Element< K >( Opposite( eDir ) , Cube< D-1 >::template IncidentElement<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); + else return Element< K >( eDir , Cube< D-1 >::template IncidentElement<>( typename Cube< D-1 >::template Element< K >( eCoIndex ) , typename Cube< D-1 >::template IncidentCubeIndex< K >( dCoIndex ) ).index ); } From 766ca121d63ebfa7703f1616033b9eb50a149536 Mon Sep 17 00:00:00 2001 From: Anton Sarg Date: Thu, 13 Nov 2025 23:04:52 +0100 Subject: [PATCH 2/4] Call rows() member function instead of referencing it --- .../Sources/include/PoissonRecon/SparseMatrix.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/SparseMatrix.inl b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/SparseMatrix.inl index d7a6d1c4..6343db0f 100644 --- a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/SparseMatrix.inl +++ b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/SparseMatrix.inl @@ -462,7 +462,7 @@ SparseMatrix< T , IndexType , 0 > SparseMatrix< T , IndexType , 0 >::Transpose( A.resize( aRows ); for( size_t i=0 ; iN ]++; - for( size_t i=0 ; i SparseMatrix< T , IndexType , 0 >::Transpose( A.resize( aRows ); for( size_t i=0 ; iN ]++; - for( size_t i=0 ; i Date: Thu, 13 Nov 2025 23:05:47 +0100 Subject: [PATCH 3/4] Use arrow operator for nested pointer members --- .../PoissonRecon/Sources/include/PoissonRecon/FEMTree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h index c666a4aa..2df753b1 100644 --- a/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h +++ b/CppDependencies/PoissonRecon/Sources/include/PoissonRecon/FEMTree.h @@ -409,7 +409,7 @@ struct DenseNodeData< Data , UIntPack< FEMSigs ... > > : public _SparseOrDenseNo Data& operator[]( const RegularTreeNode< Dim , FEMTreeNodeData >* node ) { return _data[ node->nodeData.nodeIndex ]; } Data* operator()( const RegularTreeNode< Dim , FEMTreeNodeData >* node ) { return ( node==NULL || node->nodeData.nodeIndex>=(int)_sz ) ? NULL : &_data[ node->nodeData.nodeIndex ]; } const Data* operator()( const RegularTreeNode< Dim , FEMTreeNodeData >* node ) const { return ( node==NULL || node->nodeData.nodeIndex>=(int)_sz ) ? NULL : &_data[ node->nodeData.nodeIndex ]; } - int index( const RegularTreeNode< Dim , FEMTreeNodeData >* node ) const { return ( !node || node->nodeData.nodeIndex<0 || node->nodeData.nodeIndex>=(int)this->_data.size() ) ? -1 : node->nodeData.nodeIndex; } + int index( const RegularTreeNode< Dim , FEMTreeNodeData >* node ) const { return ( !node || node->nodeData.nodeIndex<0 || node->nodeData.nodeIndex>=(int)this->_data->size() ) ? -1 : node->nodeData.nodeIndex; } Pointer( Data ) operator()( void ) { return _data; } ConstPointer( Data ) operator()( void ) const { return ( ConstPointer( Data ) )_data; } protected: From c1ef94170970dad0c45de8bb5fb2812b24a3a646 Mon Sep 17 00:00:00 2001 From: Anton Sarg Date: Thu, 13 Nov 2025 23:08:01 +0100 Subject: [PATCH 4/4] Add #include for std::vector usage --- .../Sources/include/StandardCyborgFusion/SceneKit+Lines.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/StandardCyborgFusion/Sources/include/StandardCyborgFusion/SceneKit+Lines.hpp b/StandardCyborgFusion/Sources/include/StandardCyborgFusion/SceneKit+Lines.hpp index 6ec433f4..ad4a310f 100644 --- a/StandardCyborgFusion/Sources/include/StandardCyborgFusion/SceneKit+Lines.hpp +++ b/StandardCyborgFusion/Sources/include/StandardCyborgFusion/SceneKit+Lines.hpp @@ -10,6 +10,7 @@ #import #import #import +#include using namespace standard_cyborg;