Class Tag - the model of 3D-Plane
* Class Tag, the model of (partial) plane on the 3D space,
* spanned from it's stern and star to it's bow and port
* created by Classiclll, 7/28/2008
Tag(Loc s, Loc b, Loc r) // only constructor you can use, and
Tag(Tag frm) // constructor you can use
Loc at(float s, float b) // location at (s,b),
// at(0,0):stern, at(0,me.length):bow, at(me.width,0):star
Tag move(Loc to) // move stern to "to"
Tag shift(Loc diff) // shift stern by "diff"
Tag shiftI(Loc diff) // inverse shift
Tag scale(float factor) // scale the size of me by factor
Tag scaleI(float factor) // inverse scaling
Tag rotate(Loc ax, float ang) // rotate my direction around the axs
Tag rotate(Rod ax, float ang) // rotate my direction around the ax
Tag rotate(Loc dir, float ang) // rotate me around the directonal vector
Tag rotate(Rod ax, float ang) // rotate me around the ax (Rod, model of 3D line)
Rod intersect(Tag to) // intersect line with me and to
Loc intersect(Rod ln) // intersect point with me and ln
float angle(Tag to) // angle between each normal vector, me and to
float dist(Loc pt) // distance between "me" and "pt", = length of ortho(pt)
Rod ortho(Loc pt) // the orthogonal rod connecting from "pt" to "me"
boolean having(Loc pt) // is "me" having "pt" on myself ?
float length() // length of me
float width() // width of me
Loc stern() // location of the stern of me, the base position
Loc bow() // location of the bow of me
Loc starBoard() // location of the star of me
Loc fore() // foward direction of me, the unit vector
Loc star() // right direction of me, the unit vector
Loc normal() // upword direction of me, the unit vector
Rod keel() // line model of me's front/end, the Rod
Boolean equals(Object to)
String toString()