Foundations of Computer-Aided Design