home *** CD-ROM | disk | FTP | other *** search
- class Splines3d.Bezier
- {
- var p0;
- var cp0;
- var cp1;
- var p1;
- var AX;
- var BX;
- var CX;
- var AY;
- var BY;
- var CY;
- var AZ;
- var BZ;
- var CZ;
- function Bezier(p0, cp0, cp1, p1)
- {
- this.p0 = p0;
- this.cp0 = cp0;
- this.cp1 = cp1;
- this.p1 = p1;
- this.update();
- }
- function getPoint(i)
- {
- var _loc2_ = i * i;
- var _loc4_ = _loc2_ * i;
- return new Vector(this.AX * _loc4_ + this.BX * _loc2_ + this.CX * i + this.p0.x,this.AY * _loc4_ + this.BY * _loc2_ + this.CY * i + this.p0.y,this.AZ * _loc4_ + this.BZ * _loc2_ + this.CZ * i + this.p0.z);
- }
- function update()
- {
- this.CX = 3 * (this.cp0.x - this.p0.x);
- this.CY = 3 * (this.cp0.y - this.p0.y);
- this.CZ = 3 * (this.cp0.z - this.p0.z);
- this.BX = 3 * (this.cp1.x - this.cp0.x) - this.CX;
- this.BY = 3 * (this.cp1.y - this.cp0.y) - this.CY;
- this.BZ = 3 * (this.cp1.z - this.cp0.z) - this.CZ;
- this.AX = this.p1.x - this.p0.x - this.CX - this.BX;
- this.AY = this.p1.y - this.p0.y - this.CY - this.BY;
- this.AZ = this.p1.z - this.p0.z - this.CZ - this.BZ;
- }
- function toString()
- {
- return "Bezier Curve";
- }
- }
-