You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							295 lines
						
					
					
						
							7.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							295 lines
						
					
					
						
							7.1 KiB
						
					
					
				
								; ***************************************************************
							 | 
						|
								; * Eigen Visualizer
							 | 
						|
								; *
							 | 
						|
								; * Author: Hauke Heibel <hauke.heibel@gmail.com>
							 | 
						|
								; *
							 | 
						|
								; * Support the enhanced debugging of the following Eigen
							 | 
						|
								; * types (*: any, +:fixed dimension) :
							 | 
						|
								; *
							 | 
						|
								; * - Eigen::Matrix<*,4,1,*,*,*> and Eigen::Matrix<*,1,4,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,3,1,*,*,*> and Eigen::Matrix<*,1,3,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,2,1,*,*,*> and Eigen::Matrix<*,1,2,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,-1,-1,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,+,-1,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,-1,+,*,*,*>
							 | 
						|
								; * - Eigen::Matrix<*,+,+,*,*,*>
							 | 
						|
								; *
							 | 
						|
								; * Matrices are displayed properly independantly of the memory
							 | 
						|
								; * alignment (RowMajor vs. ColMajor).
							 | 
						|
								; *
							 | 
						|
								; * This file is distributed WITHOUT ANY WARRANTY. Please ensure
							 | 
						|
								; * that your original autoexp.dat file is copied to a safe 
							 | 
						|
								; * place before proceeding with its modification.
							 | 
						|
								; ***************************************************************
							 | 
						|
								
							 | 
						|
								[Visualizer]
							 | 
						|
								
							 | 
						|
								; Fixed size 4-vectors
							 | 
						|
								Eigen::Matrix<*,4,1,*,*,*>|Eigen::Matrix<*,1,4,*,*,*>{
							 | 
						|
								   children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        [internals]: [$c,!],
							 | 
						|
								         x : ($c.m_storage.m_data.array)[0],
							 | 
						|
								         y : ($c.m_storage.m_data.array)[1],
							 | 
						|
								         z : ($c.m_storage.m_data.array)[2],
							 | 
						|
								         w : ($c.m_storage.m_data.array)[3]
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        "[",
							 | 
						|
								        4,
							 | 
						|
								        "](",
							 | 
						|
								        #array(expr: $e.m_storage.m_data.array[$i], size: 4),
							 | 
						|
								        ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Fixed size 3-vectors
							 | 
						|
								Eigen::Matrix<*,3,1,*,*,*>|Eigen::Matrix<*,1,3,*,*,*>{
							 | 
						|
								   children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        [internals]: [$c,!],
							 | 
						|
								         x : ($c.m_storage.m_data.array)[0],
							 | 
						|
								         y : ($c.m_storage.m_data.array)[1],
							 | 
						|
								         z : ($c.m_storage.m_data.array)[2]
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        "[",
							 | 
						|
								        3,
							 | 
						|
								        "](",
							 | 
						|
								        #array(expr: $e.m_storage.m_data.array[$i], size: 3),
							 | 
						|
								        ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Fixed size 2-vectors
							 | 
						|
								Eigen::Matrix<*,2,1,*,*,*>|Eigen::Matrix<*,1,2,*,*,*>{
							 | 
						|
								   children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        [internals]: [$c,!],
							 | 
						|
								         x : ($c.m_storage.m_data.array)[0],
							 | 
						|
								         y : ($c.m_storage.m_data.array)[1]
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        "[",
							 | 
						|
								        2,
							 | 
						|
								        "](",
							 | 
						|
								        #array(expr: $e.m_storage.m_data.array[$i], size: 2),
							 | 
						|
								        ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Fixed size 1-vectors
							 | 
						|
								Eigen::Matrix<*,1,1,*,*,*>|Eigen::Matrix<*,1,1,*,*,*>{
							 | 
						|
								   children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        [internals]: [$c,!],
							 | 
						|
								         x : ($c.m_storage.m_data.array)[0]
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								        "[",
							 | 
						|
								        1,
							 | 
						|
								        "](",
							 | 
						|
								        #array(expr: $e.m_storage.m_data.array[$i], size: 1),
							 | 
						|
								        ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Dynamic matrices (ColMajor and RowMajor support)
							 | 
						|
								Eigen::Matrix<*,-1,-1,*,*,*>{
							 | 
						|
								  children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								         [internals]: [$c,!],
							 | 
						|
								         rows: $c.m_storage.m_rows,
							 | 
						|
								         cols: $c.m_storage.m_cols,
							 | 
						|
								         ; Check for RowMajorBit
							 | 
						|
								         #if ($c.Flags & 0x1) (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.m_storage.m_cols + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], 
							 | 
						|
								                size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols
							 | 
						|
								             )
							 | 
						|
								         ) #else (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[$i],
							 | 
						|
								                size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols
							 | 
						|
								             )
							 | 
						|
								         )
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								     #(
							 | 
						|
								         "[",
							 | 
						|
								           $c.m_storage.m_rows,
							 | 
						|
								         ",",
							 | 
						|
								           $c.m_storage.m_cols,
							 | 
						|
								         "](",
							 | 
						|
								           #array(
							 | 
						|
								            expr :    [($c.m_storage.m_data)[$i],g],
							 | 
						|
								            size :    $c.m_storage.m_rows*$c.m_storage.m_cols
							 | 
						|
								           ),
							 | 
						|
								         ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Fixed rows, dynamic columns matrix (ColMajor and RowMajor support)
							 | 
						|
								Eigen::Matrix<*,*,-1,*,*,*>{
							 | 
						|
								  children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								         [internals]: [$c,!],
							 | 
						|
								         rows: $c.RowsAtCompileTime,
							 | 
						|
								         cols: $c.m_storage.m_cols,
							 | 
						|
								         ; Check for RowMajorBit
							 | 
						|
								         #if ($c.Flags & 0x1) (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[($i % $c.RowsAtCompileTime)*$c.m_storage.m_cols + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)],
							 | 
						|
								                size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols
							 | 
						|
								             )
							 | 
						|
								         ) #else (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[$i],
							 | 
						|
								                size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols
							 | 
						|
								             )
							 | 
						|
								         )
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								     #(
							 | 
						|
								         "[",
							 | 
						|
								           $c.RowsAtCompileTime,
							 | 
						|
								         ",",
							 | 
						|
								           $c.m_storage.m_cols,
							 | 
						|
								         "](",
							 | 
						|
								           #array(
							 | 
						|
								            expr :    [($c.m_storage.m_data)[$i],g],
							 | 
						|
								            size :    $c.RowsAtCompileTime*$c.m_storage.m_cols
							 | 
						|
								           ),
							 | 
						|
								         ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Dynamic rows, fixed columns matrix (ColMajor and RowMajor support)
							 | 
						|
								Eigen::Matrix<*,-1,*,*,*,*>{
							 | 
						|
								  children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								         [internals]: [$c,!],
							 | 
						|
								         rows: $c.m_storage.m_rows,
							 | 
						|
								         cols: $c.ColsAtCompileTime,
							 | 
						|
								         ; Check for RowMajorBit
							 | 
						|
								         #if ($c.Flags & 0x1) (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.ColsAtCompileTime + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], 
							 | 
						|
								                size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime
							 | 
						|
								             )
							 | 
						|
								         ) #else (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data)[$i],
							 | 
						|
								                size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime
							 | 
						|
								             )
							 | 
						|
								         )
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								     #(
							 | 
						|
								         "[",
							 | 
						|
								           $c.m_storage.m_rows,
							 | 
						|
								         ",",
							 | 
						|
								           $c.ColsAtCompileTime,
							 | 
						|
								         "](",
							 | 
						|
								           #array(
							 | 
						|
								            expr :    [($c.m_storage.m_data)[$i],g],
							 | 
						|
								            size :    $c.m_storage.m_rows*$c.ColsAtCompileTime
							 | 
						|
								           ),
							 | 
						|
								         ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								; Fixed size matrix (ColMajor and RowMajor support)
							 | 
						|
								Eigen::Matrix<*,*,*,*,*,*>{
							 | 
						|
								  children
							 | 
						|
								   (
							 | 
						|
								      #(
							 | 
						|
								         [internals]: [$c,!],
							 | 
						|
								         rows: $c.RowsAtCompileTime,
							 | 
						|
								         cols: $c.ColsAtCompileTime,
							 | 
						|
								         ; Check for RowMajorBit
							 | 
						|
								         #if ($c.Flags & 0x1) (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data.array)[($i % $c.RowsAtCompileTime)*$c.ColsAtCompileTime + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], 
							 | 
						|
								                size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime
							 | 
						|
								             )
							 | 
						|
								         ) #else (
							 | 
						|
								             #array(
							 | 
						|
								                rank: 2,
							 | 
						|
								                base: 0,
							 | 
						|
								                expr: ($c.m_storage.m_data.array)[$i],
							 | 
						|
								                size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime
							 | 
						|
								             )
							 | 
						|
								         )
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								
							 | 
						|
								   preview
							 | 
						|
								   (
							 | 
						|
								     #(
							 | 
						|
								         "[",
							 | 
						|
								           $c.RowsAtCompileTime,
							 | 
						|
								         ",",
							 | 
						|
								           $c.ColsAtCompileTime,
							 | 
						|
								         "](",
							 | 
						|
								           #array(
							 | 
						|
								            expr :    [($c.m_storage.m_data.array)[$i],g],
							 | 
						|
								            size :    $c.RowsAtCompileTime*$c.ColsAtCompileTime
							 | 
						|
								           ),
							 | 
						|
								         ")"
							 | 
						|
								      )
							 | 
						|
								   )
							 | 
						|
								}
							 |