home *** CD-ROM | disk | FTP | other *** search
- class Course extends Array
- {
- var lastVector;
- var defaultColor;
- var outsideColor;
- var flipped;
- static var CLOSED = 1;
- static var OPEN = 0;
- function Course(startPoint)
- {
- super();
- this.lastVector = startPoint;
- this.defaultColor = new RGB(255,255,255);
- this.outsideColor = new RGB(255,255,255);
- }
- function setOutsideColor(rgb)
- {
- this.outsideColor.r = rgb.r;
- this.outsideColor.g = rgb.g;
- this.outsideColor.b = rgb.b;
- }
- function setDefaultColor(color)
- {
- this.defaultColor.r = color.r;
- this.defaultColor.g = color.g;
- this.defaultColor.b = color.b;
- }
- function replaceDefaultColor(color)
- {
- this.defaultColor = color;
- }
- function appendCurve(cp0, cp1, p1, radius, propFlags, color, style)
- {
- var _loc2_ = new CourseBezier(this.lastVector,cp0,cp1,p1);
- this.push(_loc2_);
- this.lastVector = p1;
- if(style)
- {
- _loc2_.style = style;
- }
- _loc2_.color = !color ? this.defaultColor : color;
- _loc2_.radius = radius;
- _loc2_.arcClosed = propFlags & Course.CLOSED;
- return _loc2_;
- }
- function appendLine(p1, radius, propFlags, color, style)
- {
- var _loc2_ = new CourseLine(this.lastVector,p1);
- this.push(_loc2_);
- this.lastVector = p1;
- if(style)
- {
- _loc2_.style = style;
- }
- _loc2_.color = !color ? this.defaultColor : color;
- _loc2_.radius = radius;
- _loc2_.arcClosed = propFlags & Course.CLOSED;
- return _loc2_;
- }
- function getCourseSegment(world, i)
- {
- var _loc2_ = this[Math.floor(i)];
- var _loc3_ = this[Math.floor(i) - 1];
- var _loc6_ = this.getPoint(i);
- if(_loc3_)
- {
- var _loc7_ = _loc3_.radius + (_loc2_.radius - _loc3_.radius) * (i % 1);
- var _loc4_ = new CourseSector(world,_loc6_.x,_loc6_.y,_loc6_.z,_loc7_);
- _loc4_.color = _loc3_.color != _loc2_.color ? new RGB(Math.round(_loc3_.color.r + (_loc2_.color.r - _loc3_.color.r) * (i % 1)),Math.round(_loc3_.color.g + (_loc2_.color.g - _loc3_.color.g) * (i % 1)),Math.round(_loc3_.color.b + (_loc2_.color.b - _loc3_.color.b) * (i % 1))) : _loc2_.color;
- _loc4_.xScale = _loc3_.xScale + (_loc2_.xScale - _loc3_.xScale) * (i % 1);
- _loc4_.yScale = _loc3_.yScale + (_loc2_.yScale - _loc3_.yScale) * (i % 1);
- }
- else
- {
- _loc4_ = new CourseSector(world,_loc6_.x,_loc6_.y,_loc6_.z,_loc2_.radius);
- _loc4_.xScale = _loc2_.xScale;
- _loc4_.yScale = _loc2_.yScale;
- _loc4_.color = _loc2_.color;
- }
- _loc4_.outsideColor = this.outsideColor;
- _loc4_.arcClosed = _loc2_.arcClosed;
- _loc4_.worldIndex = i;
- if(_loc2_.assetName != null)
- {
- _loc4_.assetName = _loc2_.assetName;
- }
- return _loc4_;
- }
- function getRadius(i)
- {
- var _loc3_ = this[Math.floor(i)];
- var _loc2_ = this[Math.floor(i) - 1];
- if(_loc2_)
- {
- return _loc2_.radius + (_loc3_.radius - _loc2_.radius) * (i % 1);
- }
- return _loc3_.radius;
- }
- function getYScale(i)
- {
- var _loc3_ = this[Math.floor(i)];
- var _loc2_ = this[Math.floor(i) - 1];
- if(_loc2_)
- {
- return _loc2_.yScale + (_loc3_.yScale - _loc2_.yScale) * (i % 1);
- }
- return _loc3_.yScale;
- }
- function getXScale(i)
- {
- var _loc3_ = this[Math.floor(i)];
- var _loc2_ = this[Math.floor(i) - 1];
- if(_loc2_)
- {
- return _loc2_.xScale + (_loc3_.xScale - _loc2_.xScale) * (i % 1);
- }
- return _loc3_.xScale;
- }
- function getRGB(i)
- {
- var _loc3_ = this[Math.floor(i)];
- var _loc2_ = this[Math.floor(i) - 1];
- if(_loc2_.color == _loc3_.color)
- {
- return _loc3_.color;
- }
- if(_loc2_)
- {
- return new RGB(Math.round(_loc2_.color.r + (_loc3_.color.r - _loc2_.color.r) * (i % 1)),Math.round(_loc2_.color.g + (_loc3_.color.g - _loc2_.color.g) * (i % 1)),Math.round(_loc2_.color.b + (_loc3_.color.b - _loc2_.color.b) * (i % 1)));
- }
- return _loc3_.color;
- }
- function getPoint(index)
- {
- var _loc2_ = this[Math.floor(index)].getPoint(index % 1);
- if(this.flipped)
- {
- _loc2_.x *= -1;
- }
- return _loc2_;
- }
- function getAssetName(i)
- {
- return this[Math.floor(i)].assetName;
- }
- function toString()
- {
- return "Course";
- }
- }
-