00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _OSGIMAGEFUNCTIONS_H_
00037 #define _OSGIMAGEFUNCTIONS_H_
00038 #ifdef __sgi
00039 #pragma once
00040 #endif
00041
00042 #include <OSGConfig.h>
00043 #include <OSGSystemDef.h>
00044 #include <OSGBaseTypes.h>
00045 #include <OSGVector.h>
00046 #include <OSGColor.h>
00047 #include <OSGImage.h>
00048
00049 #include <vector>
00050 #include <string>
00051 #include <iostream>
00052
00053
00054 OSG_BEGIN_NAMESPACE
00055
00056 enum SliceDataType {
00057 INVALID_SDT = 0,
00058 DEPTH_SDT,
00059 FRAME_SDT,
00060 SIDE_SDT
00061 };
00062
00063 OSG_SYSTEMLIB_DLLMAPPING
00064 bool createComposedImage ( std::vector<ImagePtr> srcImageVec,
00065 ImagePtr dstImage,
00066 SliceDataType sliceDataType = DEPTH_SDT );
00067
00068
00069 OSG_SYSTEMLIB_DLLMAPPING
00070 bool createNormalMapFromBump ( ImagePtr srcImage,
00071 ImagePtr dstImage,
00072 Vec3f normalMapScale);
00073
00074 OSG_SYSTEMLIB_DLLMAPPING
00075 bool createNormalVolume ( ImagePtr srcImage,
00076 ImagePtr dstImage,
00077 const std::string &outputFormat );
00078
00079 OSG_SYSTEMLIB_DLLMAPPING
00080 bool create2DPreIntegrationLUT ( ImagePtr dstImage,
00081 ImagePtr srcImage,
00082 Real32 thickness = 1.0 );
00083 OSG_SYSTEMLIB_DLLMAPPING
00084 bool splitRGBA ( ImagePtr rgba,
00085 ImagePtr rgb,
00086 ImagePtr alpha);
00087
00088 OSG_SYSTEMLIB_DLLMAPPING
00089 bool mergeRGBA ( ImagePtr rgb,
00090 ImagePtr alpha,
00091 ImagePtr rgba);
00092
00093 OSG_SYSTEMLIB_DLLMAPPING
00094 bool blendImage ( ImagePtr canvas,
00095 ImagePtr brush,
00096 Vec3f position,
00097 Color4f color,
00098 Real32 alphaScale = 1,
00099 Real32 paintZ = 0 );
00100
00101 OSG_SYSTEMLIB_DLLMAPPING
00102 bool createPhongTexture ( ImagePtr image,
00103 UInt32 size = 512,
00104 Real32 specular_exponent = 10,
00105 Real32 ka = 0,
00106 Real32 kd = 0,
00107 Real32 ks = 1);
00108
00109 OSG_SYSTEMLIB_DLLMAPPING
00110 bool createPhongVolume ( ImagePtr image,
00111 Color3f diffuseColor,
00112 Color3f specularColor,
00113 UInt32 lutSize,
00114 UInt32 lutScalar,
00115 Real32 lutIncr );
00116
00117 OSG_SYSTEMLIB_DLLMAPPING
00118 bool createNormalizationCubeMap ( std::vector<ImagePtr> imageVec,
00119 UInt32 size );
00120
00121 OSG_SYSTEMLIB_DLLMAPPING
00122 bool createNoise ( ImagePtr image,
00123 Image::PixelFormat pixelformat = Image::OSG_RGBA_PF,
00124 UInt16 numOctaves = 6,
00125 UInt16 size = 128,
00126 UInt8 dim = 2,
00127 bool splitOctaves = false);
00128
00129 OSG_END_NAMESPACE
00130
00131 #include <OSGImageFunctions.inl>
00132
00133 #endif