Skip to content
Snippets Groups Projects
  • Seebs's avatar
    Improve normal calculations · f2ef87f1
    Seebs authored
    Soooo. It turns out that the bunch of smallish (~4-5% of runtime)
    loads associated with Len(), Unit(), Rotated(), and so on... Were
    actually more like 15% or more of computational effort. I first
    figured this out by creating:
    
    	func (u Vec) Normal(v Vec) Vec
    
    which gives you a vector normal to u->v. That consumed a lot
    of CPU time, and was followed by .Unit().Scaled(imd.thickness / 2),
    which consumed a bit more CPU time.
    
    After some poking, and in the interests of avoiding UI cruft,
    the final selection is
    	func (u Vec) Normal() Vec
    
    This returns the vector rotated 90 degrees, which turns out to
    be the most common problem.
    f2ef87f1