Signed Distance Fields

github crates.io docs.rs

You can combine, transform and even develop completly new SDFs that can be rendered with one of this libraries multiple renderes

Examples

Primitives

``` $ cargo run --example primitives Circle:

                                          ++++++++                                              
                                 ++++++++++++++++++++++++++                                     
                            +++++++----------------------+++++++                                
                         +++++-------                  -------+++++                             
                      ++++-----                              -----++++                          
                   ++++----                                      ----++++                       
                 ++++----                                          ----++++                     
               ++++---                                                ---++++                   
              +++---                                                    ---+++                  
             +++---                                                      ---+++                 
           +++---                                                          ---+++               
          +++---                                                            ---+++              
         +++---                                                              ---+++             
         ++---                                                                ---++             
        +++--                                                                  --+++            
       +++---                                                                  ---+++           
       +++--                                                                    --+++           
       ++---                                                                    ---++           
       ++--                                                                      --++           
      +++--                                                                      --+++          
      +++--                                                                      --+++          
       ++--                                                                      --++           
       ++---                                                                    ---++           
       +++--                                                                    --+++           
       +++---                                                                  ---+++           
        +++--                                                                  --+++            
         ++---                                                                ---++             
         +++---                                                              ---+++             
          +++---                                                            ---+++              
           +++---                                                          ---+++               
             +++---                                                      ---+++                 
              +++---                                                    ---+++                  
               ++++---                                                ---++++                   
                 ++++----                                          ----++++                     
                   ++++----                                      ----++++                       
                      ++++-----                              -----++++                          
                         +++++-------                  -------+++++                             
                            +++++++----------------------+++++++                                
                                 ++++++++++++++++++++++++++                                     
                                          ++++++++

Rectangle:

                          ++++++++++++++++++++++++++++++++++++++++                              
                          +--------------------------------------+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +--------------------------------------+                              
                          ++++++++++++++++++++++++++++++++++++++++

Line:

         ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++             
         ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Straight:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Plane:



















































```

Operators

Transform

``` $ cargo run --example operators_transform None:

                          ++++++++++++++++++++++++++++++++++++++++                              
                          +--------------------------------------+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +---                                ---+                              
                          +--------------------------------------+                              
                          ++++++++++++++++++++++++++++++++++++++++

Translate:

  +++++++++++++++++++++++++++++++++++++++                                                       
 ++-------------------------------------+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+                                                       
 ++--                                ---+

Rotate:

                                                                           ++                   
                                                                    +++++----+                  
                                                              ++++-----------++                 
                                                       ++++---------       ---+                 
                                                ++++---------               --++                
                                         ++++---------                      ---+                
                                  +++++--------                              ---+               
                           +++++---------                                     --++              
                     ++++---------                                            ---+              
              ++++---------                                                    --++             
       ++++---------                                                           ---+             
    +--------                                                                   ---+            
     +--                                                                         --++           
     +---                                                                        ---+           
      +---                                                                        --++          
      ++--                                                                        ---+          
       +---                                                                        ---+         
       ++--                                                                         --+         
        +---                                                                   --------+        
         +---                                                           ---------++++           
         ++--                                                    ---------++++                  
          +---                                            ---------++++                         
          ++--                                     ---------+++++                               
           +---                              --------+++++                                      
            +---                      ---------++++                                             
            ++--               ---------++++                                                    
             +---       ---------++++                                                           
             ++-----------++++                                                                  
              +----+++++                                                                        
               ++

Scale:

      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++          
      +++-----                                                                -----+++

Matrix:

++-+++++
+-- --------++++
+--- --------++++
+--- --------+++
++-- ---+
+-- ---+
+-- --+
+--- --++
+--- ---+
++-- ---+
+-- --+
+--- --+
+--- --++
++-- ---+
+-- ---+
+-- --+
+--- --++
+--- ---+
++-- ---+
+-- --+
+--- --+
+--- --++
+++-------- ---+
++++-------- ---+
++++-------- --+
+++++-++

```

Boolean

``` $ cargo run --example operators_boolean a:

                                    ++++++++++++++++++++                                        
                                +++++------------------+++++                                    
                             ++++------              ------++++                                 
                           +++-----                      -----+++                               
                         +++----                            ----+++                             
                       +++----                                ----+++                           
                      +++---                                    ---+++                          
                     +++---                                      ---+++                         
                    +++---                                        ---+++                        
                    ++---                                          ---++                        
                   +++--                                            --+++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   +++--                                            --+++                       
                    ++---                                          ---++                        
                    +++---                                        ---+++                        
                     +++---                                      ---+++                         
                      +++---                                    ---+++                          
                       +++----                                ----+++                           
                         +++----                            ----+++                             
                           +++-----                      -----+++                               
                             ++++------              ------++++                                 
                                +++++------------------+++++                                    
                                    ++++++++++++++++++++

b:

        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++            
        +--------------------------------------------------------------------------+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--------------------------------------------------------------------------+            
        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

a ∪ b:

                                    ++++++++++++++++++++                                        
                                +++++------------------+++++                                    
                             ++++------              ------++++                                 
                           +++-----                      -----+++                               
                         +++----                            ----+++                             
                       +++----                                ----+++                           
        +++++++++++++++++---                                    ---+++++++++++++++++            
        +------------------                                      ------------------+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +--                                                                      --+            
        +------------------                                      ------------------+            
        +++++++++++++++++---                                    ---+++++++++++++++++            
                       +++----                                ----+++                           
                         +++----                            ----+++                             
                           +++-----                      -----+++                               
                             ++++------              ------++++                                 
                                +++++------------------+++++                                    
                                    ++++++++++++++++++++

a ∩ b:

                      ++++++++++++++++++++++++++++++++++++++++++++++++                          
                     +++--------------------------------------------+++                         
                    +++---                                        ---+++                        
                    ++---                                          ---++                        
                   +++--                                            --+++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   ++---                                            ---++                       
                   +++--                                            --+++                       
                    ++---                                          ---++                        
                    +++---                                        ---+++                        
                     +++--------------------------------------------+++                         
                      ++++++++++++++++++++++++++++++++++++++++++++++++

a\b:

        --------------------                                    --------------------            
        -+++++++++++++++---                                      ---+++++++++++++++-            
        -++         +++---                                        ---+++         ++-            
        -++         ++---                                          ---++         ++-            
        -++        +++--                                            --+++        ++-            
        -++        ++---                                            ---++        ++-            
        -++        ++---                                            ---++        ++-            
        -++        ++---                                            ---++        ++-            
        -++        ++---                                            ---++        ++-            
        -++        +++--                                            --+++        ++-            
        -++         ++---                                          ---++         ++-            
        -++         +++---                                        ---+++         ++-            
        -+++++++++++++++---                                      ---+++++++++++++++-            
        --------------------                                    --------------------

```