public WideVisionCone(ICharacterRepresentation rep, float length, float horizontalAngle, float maxHeight)
            : base(rep, length, horizontalAngle)
        {

            this.MaxHeight = maxHeight;
                     
        }
        public WideVisionCone(ICharacterRepresentation rep, float length, float angle)
            : base(rep, length, angle)
        {

            this.maxHeight = this.length * FastMath.Tan(angle);

        }
 public VisionCone(ICharacterRepresentation rep, float length, float angle)
     : base(rep.getEyeLevel(), length, angle)
 {
     this.rep = rep;
     this.AutoTransformEnabled = false;
     this.AlphaBlendEnabled = true;
     this.sqRange = new float[2];
     this.sqRange[(int)eRange.SHORT_RANGE] = GeneralMethods.optimizedPow2(length * 1 / 2);
     this.sqRange[(int)eRange.LONG_RANGE] = GeneralMethods.optimizedPow2(length);
     this.cosAngle = FastMath.Cos(angle);
     this.Color1 = System.Drawing.Color.Aquamarine;
     this.Color2 = System.Drawing.Color.Aquamarine;
     
              
 }
 //Sobreescribible para que los hijos puedan usar otra representacion
 protected virtual void loadCharacterRepresentation(Vector3 position)
 {
     this.representation = new SkeletalRepresentation(position);
 }