private void drawTickMarks(final GraphicsContext CTX) {        
        CTX.clearRect(0, 0, size, size);
        double  sinValue;        
        double  cosValue;
        double  startAngle     = getSkinnable().getStartAngle();                
        Point2D center         = new Point2D(size * 0.5, size * 0.5);
        double  stdLineWidth   = size * 0.003;
        double  rangeLineWidth = size * 0.007;
        for (double angle = 0, counter = getSkinnable().getMinValue() ; Double.compare(counter, getSkinnable().getMaxValue()) <= 0 ; angle -= angleStep / 3, counter+= 0.33333) {
            sinValue = Math.sin(Math.toRadians(angle + startAngle));
            cosValue = Math.cos(Math.toRadians(angle + startAngle));

            Point2D innerPoint = new Point2D(center.getX() + size * 0.368 * sinValue, center.getY() + size * 0.368 * cosValue);            
            Point2D outerPoint = new Point2D(center.getX() + size * 0.457 * sinValue, center.getY() + size * 0.457 * cosValue);            

            CTX.setStroke(getSkinnable().getTickMarkFill());                        
            if (getSkinnable().isTargetEnabled() && 
                counter > getSkinnable().getValue() && counter < getSkinnable().getTarget() ||
                counter > getSkinnable().getTarget() && counter < getSkinnable().getValue()) {
                CTX.setLineWidth(rangeLineWidth);
            } else {
                CTX.setLineWidth(stdLineWidth);    
            }
            CTX.setLineCap(StrokeLineCap.ROUND);
            CTX.strokeLine(innerPoint.getX(), innerPoint.getY(), outerPoint.getX(), outerPoint.getY());                            
        }
    }