 rtcSetGeometryBuildQuality(geom,quality);
 rtcSetGeometryPrimitiveCount(geom,numPrimitives);
 rtcSetGeometryTimeStepCount(geom,numTimeSteps);
+}@@
+
+
+@@{
+rtcSetBoundsFunction(EXPR scene,EXPR geomID,EXPR func)
+=>
+rtcSetBoundsFunctionX(rtcGetGeometry(scene,geomID),func,NULL)
+}@@
+
+@@{
+rtcSetBoundsFunction2(EXPR scene,EXPR geomID,EXPR func,EXPR userPtr)
+=>
+rtcSetBoundsFunctionX(rtcGetGeometry(scene,geomID),func,userPtr)
+}@@
+
+@@{
+rtcSetBoundsFunction3(EXPR scene,EXPR geomID,EXPR func,EXPR userPtr)
+=>
+rtcSetBoundsFunctionX(rtcGetGeometry(scene,geomID),func,userPtr)
+}@@
+
+@@{
+rtcSetBoundsFunctionX(EXPR geom,EXPR func,EXPR userPtr)
+=>
+rtcSetGeometryBoundsFunction(geom,func,userPtr)
+}@@
+
+@@{
+rtcSetIntersectFunction1Mp(EXPR scene,EXPR geomID,EXPR func);
+=>
+COMMENT rtcSetIntersectFunction1Mp(EXPR scene,EXPR geomID,EXPR func);
+}@@
+
+@@{
+REGEXPR(name,rtcSetIntersectFunction.*)(
+=>
+rtcSetGeometryIntersectFunction(
+}@@
+
+@@{
+rtcSetGeometryIntersectFunction (EXPR scene, EXPR geomID, EXPR func)
+=>
+rtcSetGeometryIntersectFunction (rtcGetGeometry(scene,geomID), func)
+}@@
+
+@@{
+rtcSetOccludedFunction1Mp(EXPR scene,EXPR geomID,EXPR func);
+=>
+COMMENT rtcSetOccludedFunction1Mp(EXPR scene,EXPR geomID,EXPR func);
+}@@
+
+@@{
+REGEXPR(name,rtcSetOccludedFunction.*)(
+=>
+rtcSetGeometryOccludedFunction(
+}@@
+
+@@{
+rtcSetGeometryOccludedFunction (EXPR scene, EXPR geomID, EXPR func)
+=>
+rtcSetGeometryOccludedFunction (rtcGetGeometry(scene,geomID), func)
 }@@
 
 

  args.primIDs = primID_in;
  args.u = u_in;
  args.v = v_in;
  args.numUVs = numUVs_in;
  args.buffer = buffer_in;
  args.P = P_o;
  args.dPdu = dPdu_o;
  args.dPdv = dPdv_o;
  args.ddPdudu = ddPdudu_o;
  args.ddPdvdv = ddPdvdv_o;
  args.ddPdudv = ddPdudv_o;
  args.numFloats = numFloats_in;
  rtcInterpolateN(&args)
}
}@@



////////////////////////////////////////////////////////////////////////////////////////
// rtcore_geometry_user.h

}@@

@@{
rtcUpdate(EXPR scene,EXPR geomID)
=>
rtcCommitGeometry(rtcGetGeometry(scene,geomID))
}@@

@@{
rtcUpdateBuffer(EXPR scene,EXPR geomID,EXPR type)
=>
rtcUpdateGeometryBuffer(rtcGetGeometry(scene,geomID),type);
rtcCommitGeometry(rtcGetGeometry(scene,geomID)) /* FIXME: do commit once after all updates */
}@@

@@{
rtcDisable(EXPR scene,EXPR geomID)
=>
rtcDisableGeometry(rtcGetGeometry(scene,geomID))
}@@

@@{
