Functions For Reading RIB Files

The RIB Reader library requires a table of function pointers that identify all the functions of the RenderMan Interface and the extensions that Pixar has added. The order of the table is shown below in an example table called gRibRITable.

The order of an RI table is mostly alphabetical except that functions with no RIB binding have been appended to the end of the table.

To access a particular position in the table use the constants that are prefixed with kRIB_ followed by the RIB binding name of the Ri call with all capital letters. For example the RiBegin-like function pointer in gRibRITable is gRibRITable[kRIB_BEGIN].

A RI function listed in the RI table can call another RI function of the same type and form a chain of RI functions. This chaining is normally done by a library that replaces an entry in a RI table with a function that alters some incoming data and then calls the function that was replaced in the RI table. Chaining of functions provides a method for several libraries to be hooked together and subclass RI functions.

/* 
 *   Table to include in RibOpen() call unless you make your own.
 */
PRIB_RIPROC gRibRITable[] = {
   (PRIB_RIPROC)RiAreaLightSourceV,
   (PRIB_RIPROC)RiAtmosphereV,
   (PRIB_RIPROC)RiAttributeV,
   (PRIB_RIPROC)RiAttributeBegin,
   (PRIB_RIPROC)RiAttributeEnd,
   (PRIB_RIPROC)RiBasis,
   (PRIB_RIPROC)RiBound,
   (PRIB_RIPROC)RiClipping,
   (PRIB_RIPROC)RiColor,
   (PRIB_RIPROC)RiColorSamples,
   (PRIB_RIPROC)RiConcatTransform,
   (PRIB_RIPROC)RiConeV,
   (PRIB_RIPROC)RiCoordinateSystem,
   (PRIB_RIPROC)RiCoordSysTransform,
   (PRIB_RIPROC)RiCropWindow,
   (PRIB_RIPROC)RiCurvesV,
   (PRIB_RIPROC)RiCylinderV,
   (PRIB_RIPROC)RiDeclare,
   (PRIB_RIPROC)RiDeformationV,
   (PRIB_RIPROC)RiDepthOfField,
   (PRIB_RIPROC)RiDetail,
   (PRIB_RIPROC)RiDetailRange,
   (PRIB_RIPROC)RiDiskV,
   (PRIB_RIPROC)RiDisplacementV,
   (PRIB_RIPROC)RiDisplayV,
   (PRIB_RIPROC)RiErrorHandler,
   (PRIB_RIPROC)RiExposure,
   (PRIB_RIPROC)RiExteriorV,
   (PRIB_RIPROC)RiFormat,
   (PRIB_RIPROC)RiFrameAspectRatio,
   (PRIB_RIPROC)RiFrameBegin,
   (PRIB_RIPROC)RiFrameEnd,
   (PRIB_RIPROC)RiGeneralPolygonV,
   (PRIB_RIPROC)RiGeometricApproximation,
   (PRIB_RIPROC)RiGeometryV,
   (PRIB_RIPROC)RiHiderV,
   (PRIB_RIPROC)RiHyperboloidV,
   (PRIB_RIPROC)RiIdentity,
   (PRIB_RIPROC)RiIlluminate,
   (PRIB_RIPROC)RiImagerV,
   (PRIB_RIPROC)RiInteriorV,
   (PRIB_RIPROC)RiLightSourceV,
   (PRIB_RIPROC)RiMakeBumpV,
   (PRIB_RIPROC)RiMakeCubeFaceEnvironmentV,
   (PRIB_RIPROC)RiMakeLatLongEnvironmentV,
   (PRIB_RIPROC)RiMakeShadowV,
   (PRIB_RIPROC)RiMakeTextureV,
   (PRIB_RIPROC)RiMatte,
   (PRIB_RIPROC)RiMotionBeginV,
   (PRIB_RIPROC)RiMotionEnd,
   (PRIB_RIPROC)RiNuPatchV,
   (PRIB_RIPROC)RiObjectBegin,
   (PRIB_RIPROC)RiObjectEnd,
   (PRIB_RIPROC)RiObjectInstance,
   (PRIB_RIPROC)RiOpacity,
   (PRIB_RIPROC)RiOptionV,
   (PRIB_RIPROC)RiOrientation,
   (PRIB_RIPROC)RiParaboloidV,
   (PRIB_RIPROC)RiPatchV,
   (PRIB_RIPROC)RiPatchMeshV,
   (PRIB_RIPROC)RiPerspective,
   (PRIB_RIPROC)RiPixelFilter,
   (PRIB_RIPROC)RiPixelSamples,
   (PRIB_RIPROC)RiPixelVariance,
   (PRIB_RIPROC)RiPointsV,
   (PRIB_RIPROC)RiPointsGeneralPolygonsV,
   (PRIB_RIPROC)RiPointsPolygonsV,
   (PRIB_RIPROC)RiPolygonV,
   (PRIB_RIPROC)RiProcedural,
   (PRIB_RIPROC)RiProjectionV,
   (PRIB_RIPROC)RiQuantize,
   (PRIB_RIPROC)RiReadArchiveV,
   (PRIB_RIPROC)RiRelativeDetail,
   (PRIB_RIPROC)RiReverseOrientation,
   (PRIB_RIPROC)RiRotate,
   (PRIB_RIPROC)RiScale,
   (PRIB_RIPROC)RiScreenWindow,
   (PRIB_RIPROC)RiShadingInterpolation,
   (PRIB_RIPROC)RiShadingRate,
   (PRIB_RIPROC)RiShutter,
   (PRIB_RIPROC)RiSides,
   (PRIB_RIPROC)RiSkew,
   (PRIB_RIPROC)RiSolidBegin,
   (PRIB_RIPROC)RiSolidEnd,
   (PRIB_RIPROC)RiSphereV,
   (PRIB_RIPROC)RiSurfaceV,
   (PRIB_RIPROC)RiTextureCoordinates,
   (PRIB_RIPROC)RiTorusV,
   (PRIB_RIPROC)RiTransform,
   (PRIB_RIPROC)RiTransformBegin,
   (PRIB_RIPROC)RiTransformEnd,
   (PRIB_RIPROC)RiTranslate,
   (PRIB_RIPROC)RiTrimCurve,
   (PRIB_RIPROC)RiWorldBegin,
   (PRIB_RIPROC)RiWorldEnd,
   (PRIB_RIPROC)Rib_version,
/* No RIB statements for the following: */
   (PRIB_RIPROC)RiBegin,
   (PRIB_RIPROC)RiEnd,
   (PRIB_RIPROC)RiArchiveRecord,
   (PRIB_RIPROC)RiTransformPoints,
   (PRIB_RIPROC)RiErrorAbort,
   (PRIB_RIPROC)RiErrorIgnore,
   (PRIB_RIPROC)RiErrorPrint,
   (PRIB_RIPROC)RiBoxFilter,
   (PRIB_RIPROC)RiCatmullRomFilter,
   (PRIB_RIPROC)RiGaussianFilter,
   (PRIB_RIPROC)RiSincFilter,
   (PRIB_RIPROC)RiTriangleFilter,
   (PRIB_RIPROC)RiProcDelayedReadArchive,
   (PRIB_RIPROC)RiProcDynamicLoad,
   (PRIB_RIPROC)RiProcRunProgram
};


[Affine Toolkit]
[RIB Utilities] [Bitmap Utilities] [Handy Little Utilities]
[Libraries] [Using the Libraries]