Constraint−based modeling of three−dimensional shapes