HexaGaussRuleInfo[{rule_,numer_},point_] := Module [
  {x,h,m,p1,p2,p3,p12,i,j,jj,k,m,w1,w2,w3,
  info={{Null,Null,Null},0}},
  If [ Length[rule] == 3, {p1,p2,p3} = rule, p1=p2=p3=rule];
  If [ Length[point] == 3, {i,j,k}=point, m = point;
      p12=p1*p2, k=Floor[(m-1)/p12]+1; jj=m-p12*(k-1);
      j=Floor[(jj-1)/p1]+1; i=jj-p1*(j-1)];
      {x,w1} = LineGaussRuleInfo[{p1,numer},i];
      {h,w2} = LineGaussRuleInfo[{p2,numer},j];
      {m,w3} = LineGaussRuleInfo[{p3,numer},k];
      info = {{x,h,m},w1*w2*w3};
      If [ numer, Return[N[info,20]], Return[Simplify[info]]];
];