<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Definitions SYSTEM "widlprocxml.dtd">
<Definitions>
  <webidl>interface Point {  };

interface Circle {
  attribute float cx;
  attribute float cy;
  attribute float radius;

  static readonly attribute long triangulationCount;
  static <ref>Point</ref> triangulate(<ref>Circle</ref> c1, <ref>Circle</ref> c2, <ref>Circle</ref> c3);
};</webidl>
  <Interface name="Point" id="::Point">
    <webidl>interface Point {  };</webidl>
  </Interface>
  <Interface name="Circle" id="::Circle">
    <webidl>interface Circle {
  attribute float cx;
  attribute float cy;
  attribute float radius;

  static readonly attribute long triangulationCount;
  static <ref>Point</ref> triangulate(<ref>Circle</ref> c1, <ref>Circle</ref> c2, <ref>Circle</ref> c3);
};</webidl>
    <Attribute name="cx" id="::Circle::cx">
      <webidl>  attribute float cx;</webidl>
      <Type type="float"/>
    </Attribute>
    <Attribute name="cy" id="::Circle::cy">
      <webidl>  attribute float cy;</webidl>
      <Type type="float"/>
    </Attribute>
    <Attribute name="radius" id="::Circle::radius">
      <webidl>  attribute float radius;</webidl>
      <Type type="float"/>
    </Attribute>
    <Attribute static="static" readonly="readonly" name="triangulationCount" id="::Circle::triangulationCount">
      <webidl>  static readonly attribute long triangulationCount;</webidl>
      <Type type="long"/>
    </Attribute>
    <Operation static="static" name="triangulate" id="::Circle::triangulate">
      <webidl>  static <ref>Point</ref> triangulate(<ref>Circle</ref> c1, <ref>Circle</ref> c2, <ref>Circle</ref> c3);</webidl>
      <Type name="Point"/>
      <ArgumentList>
        <Argument name="c1">
          <Type name="Circle"/>
        </Argument>
        <Argument name="c2">
          <Type name="Circle"/>
        </Argument>
        <Argument name="c3">
          <Type name="Circle"/>
        </Argument>
      </ArgumentList>
    </Operation>
  </Interface>
</Definitions>
