@ -1,50 +1,54 @@ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  D e t e c t s  w h e t h e r  t h i s  i s  a  t o p - l e v e l  p r o j e c t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					get_directory_property ( HAS_PARENT  PARENT_DIRECTORY )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( HAS_PARENT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( HAS_PARENT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    set ( RIGID_IPC_TOPLEVEL_PROJECT  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					else ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					else   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    set ( RIGID_IPC_TOPLEVEL_PROJECT  ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  C h e c k  r e q u i r e d  C M a k e  v e r s i o n  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( REQUIRED_CMAKE_VERSION  "3.14.0" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_TOPLEVEL_PROJECT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_TOPLEVEL_PROJECT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    cmake_minimum_required ( VERSION  ${ REQUIRED_CMAKE_VERSION } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					else ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					else   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    #  D o n ' t  u s e  c m a k e _ m i n i m u m _ r e q u i r e d  h e r e  t o  a v o i d  i m p l i c i t l y  o v e r r i d i n g  p a r e n t  p o l i c i e s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if ( ${ CMAKE_VERSION }  VERSION_LESS  ${ REQUIRED_CMAKE_VERSION } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if   ( ${ CMAKE_VERSION }  VERSION_LESS  ${ REQUIRED_CMAKE_VERSION } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        message ( FATAL_ERROR  "CMake required version to build Rigid IPC is ${REQUIRED_CMAKE_VERSION}" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  I n c l u d e  u s e r - p r o v i d e d  d e f a u l t  o p t i o n s  i f  a v a i l a b l e .  W e  d o  t h a t  b e f o r e  t h e  m a i n  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  ` project ( ) `  s o  t h a t  w e  c a n  d e f i n e  t h e  C / C + +  c o m p i l e r s  f r o m  t h e  o p t i o n  f i l e .  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( EXISTS  ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( EXISTS  ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    message ( STATUS  "Using local options file: ${CMAKE_CURRENT_SOURCE_DIR}/RigidIPCOptions.cmake" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    include ( ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  E d i t  s t a r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( CMAKE_EXPORT_COMPILE_COMMANDS  ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  E d i t  e n d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					project ( RigidIPC  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        D E S C R I P T I O N  " R o b u s t ,  i n t e r s e c t i o n - f r e e ,  s i m u l a t i o n s  o f  r i g i d  b o d i e s . "  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        L A N G U A G E S  C X X )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_UNIT_TESTS               "Build unit-tests"        ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_OPENGL                   "Build GUI"               ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_TOOLS                    "Build tools"             ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_PROFILING                "Profile functions"                                 OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_COMPARISONS              "Build comparisons"                                 OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_SIMD                     "Enable SIMD"                                       OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_PYTHON                   "Build Python bindings"                             OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_DERIVATIVE_CHECK        "Check derivatives using finite differences"         OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_UNIT_TESTS  "Build unit-tests"  ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_OPENGL  "Build GUI"  ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_TOOLS  "Build tools"  ${ RIGID_IPC_TOPLEVEL_PROJECT } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_PROFILING  "Profile functions"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_COMPARISONS  "Build comparisons"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_SIMD  "Enable SIMD"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_PYTHON  "Build Python bindings"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( RIGID_IPC_WITH_DERIVATIVE_CHECK  "Check derivatives using finite differences"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  S e t  d e f a u l t  m i n i m u m  C + +  s t a n d a r d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_TOPLEVEL_PROJECT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_TOPLEVEL_PROJECT )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    set ( CMAKE_CXX_STANDARD  14 )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    set ( CMAKE_CXX_STANDARD_REQUIRED  ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    set ( CMAKE_CXX_EXTENSIONS  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					list ( APPEND  CMAKE_MODULE_PATH  "${PROJECT_SOURCE_DIR}/cmake/rigid_ipc/" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					list ( APPEND  CMAKE_MODULE_PATH  "${PROJECT_SOURCE_DIR}/cmake/recipes/" )  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -63,21 +67,21 @@ mark_as_advanced(CLEAR CMAKE_BUILD_TYPE) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  l i b i g l  o p t i o n s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( LIBIGL_USE_STATIC_LIBRARY  "Use libigl as static library"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( LIBIGL_WITH_PREDICATES      "Use exact predicates"            ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( LIBIGL_WITH_PREDICATES  "Use exact predicates"  ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_OPENGL_GLFW_IMGUI  ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use OpenGL"  FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_OPENGL_GLFW         ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use GLFW"     FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_OPENGL              ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use IMGUI"    FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_PNG                 ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use PNG"      FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_OPENGL_GLFW  ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use GLFW"  FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_OPENGL  ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use IMGUI"  FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( LIBIGL_WITH_PNG  ${ RIGID_IPC_WITH_OPENGL }  CACHE  BOOL  "Use PNG"  FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  P o l y S o l v e  s e t t i n g s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_CHOLMOD            "Enable Cholmod library"              ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_UMFPACK            "Enable UmfPack library"              OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_SUPERLU            "Enable SuperLU library"              OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_MKL                "Enable MKL library"                  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_PARDISO            "Enable Pardiso library"              OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_HYPRE              "Enable hypre"                        OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_AMGCL              "Use AMGCL"                           OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_SPECTRA            "Enable computing spectrum"           OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_CHOLMOD  "Enable Cholmod library"  ON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_UMFPACK  "Enable UmfPack library"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_SUPERLU  "Enable SuperLU library"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_MKL  "Enable MKL library"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_PARDISO  "Enable Pardiso library"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_HYPRE  "Enable hypre"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_AMGCL  "Use AMGCL"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					option ( POLYSOLVE_WITH_SPECTRA  "Enable computing spectrum"  OFF )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( TIGHT_INCLUSION_WITH_NO_ZERO_TOI  OFF  CACHE  BOOL  "Enable refinement if CCD produces a zero ToI"  FORCE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -86,74 +90,74 @@ set(TIGHT_INCLUSION_WITH_NO_ZERO_TOI OFF CACHE BOOL "Enable refinement if CCD pr 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_library ( ipc_rigid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / a u t o d i f f / a u t o d i f f . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / s i n c . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / c c d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / l i n e a r / b r o a d _ p h a s e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / p i e c e w i s e _ l i n e a r / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i n t e r v a l / f i l i b _ r o u n d i n g . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i n t e r v a l / i n t e r v a l _ r o o t _ f i n d e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r i g i d / b r o a d _ p h a s e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r i g i d / r i g i d _ b o d y _ h a s h _ g r i d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r i g i d / r i g i d _ b o d y _ b v h . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r i g i d / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r i g i d / r i g i d _ t r a j e c t o r y _ a a b b . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / r e d o n / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / c c d / s a v e _ q u e r i e s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / g e o m e t r y / i n t e r s e c t i o n . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i o / s e r i a l i z e _ j s o n . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i o / r e a d _ r b _ s c e n e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i o / r e a d _ o b j . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i o / w r i t e _ o b j . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / i o / w r i t e _ g l t f . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p h y s i c s / m a s s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / m e s h _ s e l e c t o r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p h y s i c s / r i g i d _ b o d y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p h y s i c s / r i g i d _ b o d y _ a s s e m b l e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p h y s i c s / r i g i d _ b o d y _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / b a r r i e r / b a r r i e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / b a r r i e r / b a r r i e r _ c h o r n e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / o p t / d i s t a n c e _ b a r r i e r _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / o p t / c o l l i s i o n _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / o p t / o p t i m i z a t i o n _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / o p t / o p t i m i z a t i o n _ r e s u l t s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o b l e m s / b a r r i e r _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / s o l v e r s / n e w t o n _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / s o l v e r s / i p c _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / s o l v e r s / h o m o t o p y _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / s o l v e r s / s o l v e r _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  #  s r c / s o l v e r s / l i n e _ s e a r c h . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o b l e m s / r i g i d _ b o d y _ c o l l i s i o n _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o b l e m s / d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o b l e m s / s p l i t _ d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o b l e m s / p r o b l e m _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / t i m e _ s t e p p e r / s y m p l e t i c _ e u l e r _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / t i m e _ s t e p p e r / v e r l e t _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / t i m e _ s t e p p e r / e x p o n e n t i a l _ e u l e r _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / t i m e _ s t e p p e r / d m v _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / t i m e _ s t e p p e r / t i m e _ s t e p p e r _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / t e n s o r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / e i g e n _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / r e g u l a r _ 2 d _ g r i d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / u t i l s / g e t _ r s s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / S i m S t a t e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / l o g g e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  s r c / p r o f i l e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / a u t o d i f f / a u t o d i f f . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / s i n c . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / c c d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / l i n e a r / b r o a d _ p h a s e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / p i e c e w i s e _ l i n e a r / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i n t e r v a l / f i l i b _ r o u n d i n g . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i n t e r v a l / i n t e r v a l _ r o o t _ f i n d e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r i g i d / b r o a d _ p h a s e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r i g i d / r i g i d _ b o d y _ h a s h _ g r i d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r i g i d / r i g i d _ b o d y _ b v h . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r i g i d / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r i g i d / r i g i d _ t r a j e c t o r y _ a a b b . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / r e d o n / t i m e _ o f _ i m p a c t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / c c d / s a v e _ q u e r i e s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / g e o m e t r y / i n t e r s e c t i o n . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i o / s e r i a l i z e _ j s o n . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i o / r e a d _ r b _ s c e n e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i o / r e a d _ o b j . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i o / w r i t e _ o b j . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / i o / w r i t e _ g l t f . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p h y s i c s / m a s s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / m e s h _ s e l e c t o r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p h y s i c s / r i g i d _ b o d y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p h y s i c s / r i g i d _ b o d y _ a s s e m b l e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p h y s i c s / r i g i d _ b o d y _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / b a r r i e r / b a r r i e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / b a r r i e r / b a r r i e r _ c h o r n e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / o p t / d i s t a n c e _ b a r r i e r _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / o p t / c o l l i s i o n _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / o p t / o p t i m i z a t i o n _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / o p t / o p t i m i z a t i o n _ r e s u l t s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o b l e m s / b a r r i e r _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / s o l v e r s / n e w t o n _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / s o l v e r s / i p c _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / s o l v e r s / h o m o t o p y _ s o l v e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / s o l v e r s / s o l v e r _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         #  s r c / s o l v e r s / l i n e _ s e a r c h . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o b l e m s / r i g i d _ b o d y _ c o l l i s i o n _ c o n s t r a i n t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o b l e m s / d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o b l e m s / s p l i t _ d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o b l e m s / p r o b l e m _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / t i m e _ s t e p p e r / s y m p l e t i c _ e u l e r _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / t i m e _ s t e p p e r / v e r l e t _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / t i m e _ s t e p p e r / e x p o n e n t i a l _ e u l e r _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / t i m e _ s t e p p e r / d m v _ t i m e _ s t e p p e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / t i m e _ s t e p p e r / t i m e _ s t e p p e r _ f a c t o r y . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / t e n s o r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / e i g e n _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / r e g u l a r _ 2 d _ g r i d . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / u t i l s / g e t _ r s s . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / S i m S t a t e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / l o g g e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         s r c / p r o f i l e r . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_include_directories ( ipc_rigid  PUBLIC  src )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_library ( ipc::rigid  ALIAS  ipc_rigid )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -168,14 +172,14 @@ add_library(ipc::rigid ALIAS ipc_rigid) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					set ( RIGID_IPC_MESH_DIR  ${ CMAKE_CURRENT_SOURCE_DIR } /meshes )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_compile_definitions ( ipc_rigid  PUBLIC  RIGID_IPC_MESHES_DIR=\ "${RIGID_IPC_MESH_DIR}\" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_DERIVATIVE_CHECK )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  target_compile_definitions ( ipc_rigid  PUBLIC  RIGID_IPC_WITH_DERIVATIVE_CHECK )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_DERIVATIVE_CHECK )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     target_compile_definitions ( ipc_rigid  PUBLIC  RIGID_IPC_WITH_DERIVATIVE_CHECK )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_PROFILING )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  message ( STATUS  "Profiling Enabled" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  target_compile_definitions ( ipc_rigid  PUBLIC  RIGID_IPC_PROFILE_FUNCTIONS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_PROFILING )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     message ( STATUS  "Profiling Enabled" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     target_compile_definitions ( ipc_rigid  PUBLIC  RIGID_IPC_PROFILE_FUNCTIONS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  F o r  MSVC ,  d o  n o t  u s e  t h e  m i n  a n d  m a x  m a c r o s .  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_compile_definitions ( ipc_rigid  PUBLIC  NOMINMAX )  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -192,10 +196,10 @@ target_link_libraries(ipc_rigid PRIVATE ipc::rigid::warnings) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					include ( eigen )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					include ( libigl )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_link_libraries ( ipc_rigid  PUBLIC  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  E i g e n 3 : : E i g e n  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  i g l : : c o r e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  i g l : : p r e d i c a t e s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         E i g e n 3 : : E i g e n  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         i g l : : c o r e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         i g l : : p r e d i c a t e s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  J S O N  P a r s e r  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					include ( json )  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -250,26 +254,26 @@ target_link_libraries(ipc_rigid PUBLIC ghc::filesystem) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# #  S I M D  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_SIMD )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  #  F i g u r e  o u t  S S E  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  message ( STATUS  "Seaching for SSE..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  find_package ( SSE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  #  A p p l e  b r o k e  A V X  i n s t r u c t i o n s  w i t h  c l a n g :  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  #  h t t p s : / / g i t l a b . c o m / l i b e i g e n / e i g e n / - / c o m m i t / 7 1 a a 5 3 d d 6 d f d c 4 9 7 3 2 4 d 9 e 8 7 f 5 9 c 4 b a 8 2 0 1 9 1 8 5 6  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  if ( NOT  APPLE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    #  F i g u r e  o u t  A V X  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    message ( STATUS  "Searching for AVX..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    find_package ( AVX )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    #  F i g u r e  o u t  F M A  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    message ( STATUS  "Searching for FMA..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    find_package ( FMA )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  else ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    message ( WARNING  "Disabling AVX support: clang compiler shipped with XCode 11.[012] generates broken assembly with -macosx-version-min=10.15 and AVX enabled." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  #  A d d  S S E ,  A V X ,  a n d  F M A  f l a g s  t o  c o m p i l e r  f l a g s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  string ( REPLACE  " "  ";"  SIMD_FLAGS  "${SSE_FLAGS} ${AVX_FLAGS} ${FMA_FLAGS}" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  target_compile_options ( ipc_rigid  PUBLIC  ${ SIMD_FLAGS } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_SIMD )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #  F i g u r e  o u t  S S E  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     message ( STATUS  "Seaching for SSE..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     find_package ( SSE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #  A p p l e  b r o k e  A V X  i n s t r u c t i o n s  w i t h  c l a n g :  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #  h t t p s : / / g i t l a b . c o m / l i b e i g e n / e i g e n / - / c o m m i t / 7 1 a a 5 3 d d 6 d f d c 4 9 7 3 2 4 d 9 e 8 7 f 5 9 c 4 b a 8 2 0 1 9 1 8 5 6  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     if   ( NOT  APPLE )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         #  F i g u r e  o u t  A V X  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         message ( STATUS  "Searching for AVX..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         find_package ( AVX )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         #  F i g u r e  o u t  F M A  l e v e l  s u p p o r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         message ( STATUS  "Searching for FMA..." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         find_package ( FMA )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     else   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					         message ( WARNING  "Disabling AVX support: clang compiler shipped with XCode 11.[012] generates broken assembly with -macosx-version-min=10.15 and AVX enabled." )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     #  A d d  S S E ,  A V X ,  a n d  F M A  f l a g s  t o  c o m p i l e r  f l a g s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     string ( REPLACE  " "  ";"  SIMD_FLAGS  "${SSE_FLAGS} ${AVX_FLAGS} ${FMA_FLAGS}" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     target_compile_options ( ipc_rigid  PUBLIC  ${ SIMD_FLAGS } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  U s e  C + + 1 7  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_compile_features ( ipc_rigid  PUBLIC  cxx_std_17 )  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -279,45 +283,48 @@ target_compile_features(ipc_rigid PUBLIC cxx_std_17) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_executable ( rigid_ipc_sim  src/main.cpp )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_OPENGL )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_OPENGL )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    target_sources ( rigid_ipc_sim  PUBLIC  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      s r c / v i e w e r / i m g u i _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      s r c / v i e w e r / i g l _ v i e w e r _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      s r c / v i e w e r / U I S i m S t a t e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      s r c / v i e w e r / U I M e n u . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            s r c / v i e w e r / i m g u i _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            s r c / v i e w e r / i g l _ v i e w e r _ e x t . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            s r c / v i e w e r / U I S i m S t a t e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            s r c / v i e w e r / U I M e n u . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            #  E d i t  s t a r t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            s r c / v i e w e r / U I S t a t i c S i m S t a t e . c p p  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            #  E d i t  e n d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif  ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_link_libraries ( rigid_ipc_sim  PUBLIC  ipc::rigid )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					include ( cli11 )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					target_link_libraries ( rigid_ipc_sim  PUBLIC  CLI11::CLI11 )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_OPENGL )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_OPENGL )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    target_compile_definitions ( rigid_ipc_sim  PUBLIC  RIGID_IPC_WITH_OPENGL )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    include ( libigl )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    target_link_libraries ( rigid_ipc_sim  PUBLIC  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        i g l : : o p e n g l  i g l : : o p e n g l _ g l f w  i g l : : o p e n g l _ g l f w _ i m g u i  i g l : : p n g )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             i g l : : o p e n g l  i g l : : o p e n g l _ g l f w  i g l : : o p e n g l _ g l f w _ i m g u i  i g l : : p n g )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    #  C h a r l i e  T a n g o r a ' s  g i f - h  l i b r a r y  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    include ( gif_h )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    target_link_libraries ( rigid_ipc_sim  PRIVATE  gif_h::gif_h )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  T o o l s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_TOOLS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  add_subdirectory ( src/tools )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_TOOLS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     add_subdirectory ( src/tools )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  T e s t s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  E n a b l e  u n i t  t e s t i n g  a t  t h e  r o o t  l e v e l  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_UNIT_TESTS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_UNIT_TESTS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    include ( CTest )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    enable_testing ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -327,19 +334,23 @@ if(RIGID_IPC_WITH_UNIT_TESTS) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    include ( "${catch2_SOURCE_DIR}/contrib/Catch.cmake" )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    add_subdirectory ( tests )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  C o m p a r i s o n s  t o  o t h e r  m e t h o d s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_COMPARISONS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  add_subdirectory ( comparisons )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if   ( RIGID_IPC_WITH_COMPARISONS )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     add_subdirectory ( comparisons )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif   ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#  P y t h o n  b i n d i n g s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if ( RIGID_IPC_WITH_PYTHON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  add_subdirectory ( python )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					if  ( RIGID_IPC_WITH_PYTHON )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    add_subdirectory ( python )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					endif  ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_subdirectory ( src )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_subdirectory ( engine )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					add_subdirectory ( static_sim )