What functions we need for this class and all derived classes:
1. given point in xyz space, compute xyz point on surface
2. given point in xyz on surface, compute uv co-ordinate
3. given point in uv, compute xyz co-ordinate on surface
functions 2 and 3 are already virtual functions associated with GFace so let's make sure we implement them correctly.
Specific to the derived classes, we're going to also need functions which can be used to easily adjust the parameters of the functions.
plus, we're going to have to implement all that stuff in GFace eventually.
*/
SVector3scalePoint(SVector3p,SVector3s);
SVector3rotatePoint(SVector3p,SVector3r);
classprojectionFace:publicGFace
{
protected:
//Surface *s; //what is this?
};
SVector3rotation;//this vector holds the euler angles at which the surface is rotated
SVector3translation;//this vector holds the location of the reference point in xyz space
SVector3scaleFactor;//this vector holds the scaling factors w.r.t x,y,z
public:
/*fourierFace::fourierFace(GModel *m, int num)
: GFace(m, num)
{
for(int i = 0; i < 4; i++){ _v[i] = 0; _e[i] = 0; }
_discrete = 1;
}*/
projectionFace(GModel*m,intnum):GFace(m,num)
{
}
~projectionFace();
voidrotate(SVector3rot);//rotates the surface by the euler angles rot
voidtranslate(SVector3trans);//translates the surface by trans
voidscale(SVector3sc);//scales the surface along the (local?) x,y,z axes by sc
/*
This is all from gmshFace.h...I'm not sure whether or not I should be subclassing gmshFace or GFace right now. let's not screw around until I figure that out...