Can't draw custom figures for Shape.figure

Hello,

I would like to draw custom figure and follow documentation to do that. Here is code:

go.Shape.defineFigureGenerator("RoundedTopRectangle", function(shape, w, h) {
// this figure takes one parameter, the size of the corner
var p1 = 5;  // default corner size
if (shape !== null) {
  var param1 = shape.parameter1;
  if (!isNaN(param1) && param1 >= 0) p1 = param1;  // can't be negative or NaN
}
p1 = Math.min(p1, w / 2);
p1 = Math.min(p1, h / 2);  // limit by whole height or by half height?
var geo = new go.Geometry();
// a single figure consisting of straight lines and quarter-circle arcs
geo.add(new go.PathFigure(0, p1)
         .add(new go.PathSegment(go.PathSegment.Arc, 180, 90, p1, p1, p1, p1))
         .add(new go.PathSegment(go.PathSegment.Line, w - p1, 0))
         .add(new go.PathSegment(go.PathSegment.Arc, 270, 90, w - p1, p1, p1, p1))
         .add(new go.PathSegment(go.PathSegment.Line, w, h))
         .add(new go.PathSegment(go.PathSegment.Line, 0, h).close()));
// don't intersect with two top corners
geo.spot1 = new go.Spot(0, 0, 0.3 * p1, 0.3 * p1);
geo.spot2 = new go.Spot(1, 1, -0.3 * p1, 0);
return geo;

});

But here is error
Uncaught TypeError: geo.add is not a function
What’s wrong ? Could you help me ?

Thanks,
Alex.

Geometry.add is a convenience function that we introduced in version 1.5. This is how it is defined:

Geometry.prototype.add = function(figure) {
  this.figures.add(figure);
  return this;
};

But you should not be modifying the prototypes of any of the classes in GoJS.

So I suggest that you upgrade to version 1.5.2. (Actually, we’ll be releasing 1.5.3 very soon, probably later today.)

Thanks a lot. It works !