home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / include / k3d / k3dsdk / stream_ri.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-11-07  |  10.7 KB  |  166 lines

  1. #ifndef K3DSDK_STREAM_RI_H
  2. #define K3DSDK_STREAM_RI_H
  3.  
  4. // K-3D
  5. // Copyright (c) 1995-2004, Timothy M. Shead
  6. //
  7. // Contact: tshead@k-3d.com
  8. //
  9. // This program is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. //
  14. // This program is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. // General Public License for more details.
  18. //
  19. // You should have received a copy of the GNU General Public
  20. // License along with this program; if not, write to the Free Software
  21. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22.  
  23. /** \file
  24.     \author Tim Shead (tshead@k-3d.com)
  25. */
  26.  
  27. #include "istream_ri.h"
  28. #include <set>
  29.  
  30. namespace k3d
  31. {
  32.  
  33. namespace ri
  34. {
  35.  
  36. /////////////////////////////////////////////////////////////////////////////
  37. // stream
  38.  
  39. /// Provides a boilerplate implementation of k3d::ri::istream that writes RIB to a stream
  40. class stream :
  41.     public istream
  42. {
  43. public:
  44.     stream(std::ostream& Stream);
  45.     ~stream();
  46.  
  47.     bool set_inline_types(const bool Inline);
  48.     void use_shader(const path& Path);
  49.  
  50.     const light_handle RiAreaLightSourceV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  51.     void RiPointsV(const unsigned_integer VertexCount, const parameter_list& Parameters = parameter_list());
  52.     void RiAtmosphereV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  53.     void RiAttributeBegin();
  54.     void RiAttributeEnd();
  55.     void RiAttributeV(const string& Name, const parameter_list& Parameters = parameter_list());
  56.     void RiBasis(const matrix& UBasis, const unsigned_integer UStep, const matrix& VBasis, const unsigned_integer VStep);
  57.     void RiBasis(const string& UBasis, const unsigned_integer UStep, const string& VBasis, const unsigned_integer VStep);
  58.     void RiBlobbyV(const unsigned_integer NLeaf, const unsigned_integers& Codes, const reals& Floats, const strings& Strings, const parameter_list& Parameters = parameter_list());
  59.     void RiBound(const boost::array<real, 6>& Bound);
  60.     void RiClipping(const real Hither, const real Yon);
  61.     void RiColor(const color& Color);
  62.     void RiColorSamples(const unsigned_integer ParameterCount, const reals& nRGB, const reals& RGBn);
  63.     void RiComment(const string& Comment);
  64.     void RiConcatTransform(const matrix& Transform);
  65.     void RiConeV(const real Height, const real Radius, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  66.     void RiCoordSysTransform(const string& Space);
  67.     void RiCoordinateSystem(const string& Space);
  68.     void RiCropWindow(const real XMin, const real XMax, const real YMin, const real YMax);
  69.     void RiCurvesV(const string& Type, const unsigned_integers& VertexCounts, const string& Wrap, const parameter_list& Parameters = parameter_list());
  70.     void RiCylinderV(const real Radius, const real ZMin, const real ZMax, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  71.     void RiDeclare(const string& Name, const string& Type);
  72.     void RiDeformationV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  73.     void RiDepthOfField(const real FStop, const real FocalLength, const real FocalDistance);
  74.     void RiDetail(const boost::array<real, 6>& Bound);
  75.     void RiDetailRange(const real MinVis, const real LowTran, const real UpTran, const real MaxVis);
  76.     void RiDiskV(real Height, real Radius, real ThetaMax, const parameter_list& Parameters = parameter_list());
  77.     void RiDisplacementV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  78.     void RiDisplayV(const string& Name, const string& Type, const string& Mode, const parameter_list& Parameters = parameter_list());
  79.     void RiErrorHandler(const string& Style);
  80.     void RiExposure(const real Gain, const real Gamma);
  81.     void RiExteriorV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  82.     void RiFormat(const unsigned_integer XResolution, const unsigned_integer YResolution, const real AspectRatio);
  83.     void RiFrameAspectRatio(const real AspectRatio);
  84.     void RiFrameBegin(const unsigned_integer FrameNumber);
  85.     void RiFrameEnd();
  86.     void RiGeneralPolygonV(const unsigned_integers& VertexCounts, const parameter_list& Parameters = parameter_list());
  87.     void RiGeometricApproximation(const string& Type, const real Value);
  88.     void RiGeometricRepresentation(const string& Type);
  89.     void RiGeometryV(const string& Type, const parameter_list& Parameters = parameter_list());
  90.     void RiHiderV(const string& Type, const parameter_list& Parameters = parameter_list());
  91.     void RiHyperboloidV(const point& Point1, const point& Point2, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  92.     void RiIdentity();
  93.     void RiIlluminate(const light_handle LightHandle, const bool OnOff);
  94.     void RiImagerV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  95.     void RiInteriorV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  96.     const light_handle RiLightSourceV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  97.     void RiMakeCubeFaceEnvironmentV(const string& px, const string& nx, const string& py, const string& ny, const string& pz, const string& nz, const string& texturename, const real fov, const string& swrap, const string& twrap, const string& filterfunc, const real swidth, const real twidth, const parameter_list& Parameters = parameter_list());
  98.     void RiMakeLatLongEnvironmentV(const string& picturename, const string& texturename, const string& filterfunc, const real swidth, const real twidth, const parameter_list& Parameters = parameter_list());
  99.     void RiMakeShadowV(const string& picturename, const string& texturename, const parameter_list& Parameters = parameter_list());
  100.     void RiMakeTextureV(const string& picturename, const string& texturename, const string& swrap, const string& twrap, const string& filterfunc, const real swidth, const real twidth, const parameter_list& Parameters = parameter_list());
  101.     void RiMatte(const bool OnOff);
  102.     void RiMotionBeginV(const sample_times_t& Times);
  103.     void RiMotionEnd();
  104.     void RiNewline();
  105.     void RiNuPatchV(const unsigned_integer UCount, const unsigned_integer UOrder, const reals& UKnot, const real UMin, const real UMax, const unsigned_integer VCount, const unsigned_integer VOrder, const reals& VKnot, const real VMin, const real VMax, const parameter_list& Parameters = parameter_list());
  106.     const object_handle RiObjectBegin();
  107.     void RiObjectEnd();
  108.     void RiObjectInstance(const object_handle Object);
  109.     void RiOpacity(const color& Opacity);
  110.     void RiOptionV(const string& Name, const parameter_list& Parameters = parameter_list());
  111.     void RiOrientation(const string& Orientation);
  112.     void RiParaboloidV(const real RMax, const real ZMin, const real ZMax, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  113.     void RiPatchMeshV(const string& Type, const unsigned_integer UCount, const string& UWrap, const unsigned_integer VCount, const string& VWrap, const parameter_list& Parameters = parameter_list());
  114.     void RiPatchV(const string& Type, const parameter_list& Parameters = parameter_list());
  115.     void RiPerspective(const real FieldOfView);
  116.     void RiPixelFilter(const string& FilterName, const real XWidth, const real YWidth);
  117.     void RiPixelSamples(const real XSamples, const real YSamples);
  118.     void RiPixelVariance(const real Variation);
  119.     void RiPointsGeneralPolygonsV(const unsigned_integers& LoopCounts, const unsigned_integers& VertexCounts, const unsigned_integers& VertexIDs, const parameter_list& Parameters = parameter_list());
  120.     void RiPointsPolygonsV(const unsigned_integers& VertexCounts, const unsigned_integers& VertexIDs, const parameter_list& Parameters = parameter_list());
  121.     void RiPolygonV(const unsigned_integer VertexCount, const parameter_list& Parameters = parameter_list());
  122.     void RiProcDelayedReadArchive(const path& Archive, const bound& BoundingBox);
  123.     void RiProjectionV(const string& Name, const parameter_list& Parameters = parameter_list());
  124.     void RiQuantize(const string& Type, const integer One, const integer QMin, const integer QMax, const real Amplitude);
  125.     void RiReadArchive(const path& Archive);
  126.     void RiRelativeDetail(const real RelativeDetail);
  127.     void RiReverseOrientation();
  128.     void RiRotate(const real angle, const real DX, const real DY, const real DZ);
  129.     void RiScale(const real DX, const real DY, const real DZ);
  130.     void RiScreenWindow(const real Left, const real Right, const real Bottom, const real Top);
  131.     void RiShadingInterpolation(const string& Type);
  132.     void RiShadingRate(const real Size);
  133.     void RiShutter(const real SMin, const real SMax);
  134.     void RiSides(const unsigned_integer Sides);
  135.     void RiSkew(const real Angle, const real DX1, const real DY1, const real DZ1, const real DX2, const real DY2, const real DZ2);
  136.     void RiSolidBegin(const string& Type);
  137.     void RiSolidEnd();
  138.     void RiSphereV(const real Radius, const real ZMin, const real ZMax, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  139.     void RiStructure(const string& Structure);
  140.     void RiSubdivisionMeshV(const string& Scheme, const unsigned_integers& VertexCounts, const unsigned_integers& VertexIDs, const strings& Tags, const unsigned_integers& ArgCounts, const integers& IntegerArgs, const reals& FloatArgs, const parameter_list& Parameters = parameter_list());
  141.     void RiSurfaceV(const path& Path, const string& Name, const parameter_list& Parameters = parameter_list());
  142.     void RiTextureCoordinates(const real S1, const real T1, const real S2, const real T2, const real S3, const real T3, const real S4, const real T4);
  143.     void RiTorusV(const real MajorRadius, const real MinorRadius, const real PhiMin, const real PhiMax, const real ThetaMax, const parameter_list& Parameters = parameter_list());
  144.     void RiTransform(const matrix& Transform);
  145.     void RiTransformBegin();
  146.     void RiTransformEnd();
  147.     void RiTranslate(const real DX, const real DY, const real DZ);
  148.     void RiTrimCurve(const unsigned_integers& CurveCounts, const unsigned_integers& Orders, const reals& Knots, const reals& Minimums, const reals& Maximums, const unsigned_integers& PointCounts, const reals& U, const reals& V, const reals& W);
  149.     void RiWorldBegin();
  150.     void RiWorldEnd();
  151.  
  152.     void RiShaderLayerV(const std::string& type, const path& Path, const std::string& name, const std::string& layername, const parameter_list& Parameters = parameter_list());
  153.     void RiConnectShaderLayers(const std::string& type, const std::string& layer1, const std::string& variable1, const std::string& layer2, const std::string& variable2);
  154.  
  155. private:
  156.     class implementation;
  157.     implementation* const m_implementation;
  158. };
  159.  
  160. } // namespace ri
  161.  
  162. } // namespace k3d
  163.  
  164. #endif // !K3DSDK_STREAM_RI_H
  165.  
  166.