anchor.diff:      
       return false;
     }
  +
  +  @override
  +  set visible(bool v) {
  +    super.visible = v;
  +    if (v) {
  +      _4IdrawColor.a = 255;
  +      _4IfillColor.a = 255;
  +    }
  +    else {
  +      _4IdrawColor.a = 0;
  +      _4IfillColor.a = 0;
  +    }
  +
  +    _drawColor = _4IdrawColor.toString();
  +    _fillColor = _4IfillColor.toString();
  +  }
  +  
  +  set drawColor(Ranger.Color4<int> color) {
  +    _4IdrawColor.setWith(color);
  +    _drawColor = _4IdrawColor.toString();
  +  }
  +  Ranger.Color4<int> get drawColor => _4IdrawColor;
  +  
  +  set fillColor(Ranger.Color4<int> color) {
  +    _4IfillColor.setWith(color);
  +    _fillColor = _4IfillColor.toString();
  +  }
  +  Ranger.Color4<int> get fillColor => _4IfillColor;
     
     void select() {
       uniScale = this.nodeToWorldScale();
  
positive.code: part of ranger_rocket;
  
  abstract class PolygonNode extends Ranger.Node {
    bool solid = true;
    bool outlined = false;
    double outlineThickness = 3.0;
  
negative.code:   void draw(Ranger.DrawContext context) {
      context.save();
      
      context.fillColor = _fillColor;
      context.drawColor = _drawColor;
      
      if (solid && _4IfillColor.a > 0)
        context.drawPoly(polygon.points, Ranger.DrawContext.CLOSED, Ranger.DrawContext.SOLID);
  
      if (outlined && _4IdrawColor.a > 0) {
        double invScale = 1.0 / calcUniformScaleComponent() * outlineThickness;
        context.lineWidth = invScale;
        context.drawPoly(polygon.points, Ranger.DrawContext.CLOSED, Ranger.DrawContext.OUTLINED);
      }
  
  