So I have been programming a top down zombie shooter and I made it in a city type area so I need to be able to generate buildings. I've made a class that makes a rectangular prism based on an x, y, and z position and the length width and height of the building. This has worked for now, but I added lighting to my shaders and need normals and texcoords and these buildings also always faced the same direction. so I wanted to make something more flexible. I wanted to make a function that makes an arbitrary quad that takes a normal vector, a position vector that lies on the center of the quad, and a width and height which correspond to the tangent and bitangent axis's respectively. I figure this is possible considering there is only one plane per vertex normal pair. My question is how would I do this.

I know the formula for deriving a plane from a normal but I cant figure out how to make the quad on it.