#VRML2NodeCatalog # This file describes PhBRML extension nodes to VRML'97. # It is processed through nodegen in order to create basic C++ code # for these nodes. The contents of this file were # literally copied from the specifications # http://www.cg.tuwien.ac.at/~philippe/PhBRML/nodes.html # + manually added specification of parent node classes and # S|MFNode field values ##################################################################### # Standard nodes: delete the resulting .[CH] files. Make sure the # descriptions here are in sync to those in standard.nodes. Transform { } TextureTransform { } Bindable { eventIn SFBool set_bind eventOut SFBool isBound } Children { } # Appearance base exists both in standard.nodes and here: delete one of the # two generated implementations. AppearanceBase { } ##################################################################### # PhBRML node base-classes PhBSurface { } PhBMedium { } PhBDistortion { } PhBTextureProjection { } PhBBackgroundProjection { } PhBSpectrum { } PhBEmitter { } PhBTexture { } PhBTextureFilter { } PhBSDF { } PhBScatterer { } PhB3DTexture { } PhBPhaseFunction { } PhBBackground [ Bindable ] { eventIn SFBool set_bind eventOut SFBool isBound } ################################################################ # PhBRML node leaf classes PhBAppearance [ AppearanceBase ] { exposedField SFNode [ PhBSurface ] surface NULL exposedField SFNode [ PhBMedium ] medium NULL exposedField SFNode [ PhBDistortion ] bumpMap NULL exposedField SFNode [ PhBDistortion ] displacementMap NULL exposedField SFNode [ PhBTextureProjection ] textureProjection NULL exposedField SFNode [ TextureTransform ] textureTransform NULL exposedField SFNode [ PhB3DTextureTransform ] textureTransform3D NULL } PhBHomogeneousSurface [ PhBSurface ] { exposedField MFNode [ PhBEDF ] edf [ ] exposedField MFNode [ PhBSDF ] bsdf [ ] } PhBHeterogeneousSurface [ PhBSurface ] { exposedField MFNode [ PhBSDF ] bsdf [ ] } PhBEDF { exposedField SFFloat intensity 1. # (-infty,infty) exposedField SFNode [ PhBSpectrum ] spectrum NULL exposedField SFNode [ PhBEmitter ] emitter NULL } PhBProceduralEmitter [ PhBEmitter ] { # eventIn SFVec3f direction # [-1,1] # eventIn SFVec2f sampleNum # [0,1] # eventIn SFInt32 glossinessRange # [0,7] field MFString url [ ] # eventOut SFFloat value # [0,infty) # eventOut SFFloat pdf # [0,infty) # eventOut SFVec3f sampleDir # [-1,1] # eventOut SFFloat emittance # [0,infty) } PhBDiffuseEmitter [ PhBEmitter ] { # field SFFloat normalisation 1. # [0,infty) } PhBPhongEmitter [ PhBEmitter ] { exposedField SFFloat sharpness 0. # [0,infty) # field SFFloat normalisation 1. # [0,infty) } PhBSampledIsotropicEmitter [ PhBEmitter ] { exposedField MFFloat samples [ ] # [0,infty) exposedField SFFloat minAngle 0. # [0,pi] exposedField SFFloat maxAngle 3.141592 # [0,pi] # field SFFloat normalisation 1. # [0,infty) } PhBTextureEmitter [ PhBEmitter ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFInt32 channel 1 # [1,infty) # field SFFloat normalisation 1. # [0,infty) } PhBSimpleBSDF [ PhBSDF ] { exposedField SFFloat intensity 1. # (-infty,infty) exposedField SFNode [ PhBSpectrum ] spectrum NULL exposedField SFNode [ PhBScatterer ] scatterer NULL } PhBFresnelBSDF [ PhBSDF ] { exposedField SFFloat intensity 1. # (-infty,infty) exposedField SFNode [ PhBSpectrum ] spectrum NULL exposedField SFNode [ PhBScatterer ] scatterer NULL } PhBProceduralScatterer [ PhBScatterer ] { # eventIn SFVec3f inDir # [-1,1] # eventIn SFVec3f outDir # [-1,1] # eventIn SFVec2f sampleNum # [0,1] # eventIn SFInt32 glossinessRange # [0,7] field MFString url [ ] # eventOut SFFloat value # [0,infty) # eventOut SFFloat pdf # [0,infty) # eventOut SFVec3f sampleDir # [-1,1] # eventOut SFFloat reflectance # [0,infty) # eventOut SFFloat transmittance # [0,infty) } PhBDiffuseReflector [ PhBScatterer ] { # field SFFloat normalisation 1. # [0,infty) } PhBPerfectSpecularReflector [ PhBScatterer ] { # field SFFloat normalisation 1. # [0,infty) } PhBPhongReflector [ PhBScatterer ] { exposedField SFFloat sharpness 0. # [0,infty) # field SFFloat normalisation 1. # [0,infty) } PhBWardReflector [ PhBScatterer ] { exposedField SFFloat standardDeviationX 1. # (0, infty) exposedField SFFloat standardDeviationY 1. # (0, infty) # field SFFloat normalisation 1. # [0, infty) } PhBSchlickReflector [ PhBScatterer ] { exposedField SFFloat roughness 1. # (0,infty) exposedField SFFloat isotropy 1. # (0,infty) exposedField SFBool selfShadowing TRUE # TRUE or FALSE } PhBLafortuneReflector [ PhBScatterer ] { exposedField SFVec3f C -1 -1 1 # (-infty,infty) exposedField SFFloat n 10. # (0,infty) } PhBAshikminReflector [ PhBScatterer ] { # aka Shirley reflector exposedField SFFloat nv 1 # [0, infty) exposedField SFFloat nu 1 # [0, infty) } PhBNeumannReflector [ PhBScatterer ] { # aka Stretched Phong reflector exposedField SFFloat sharpness 0. # [0, infty) } PhBDiffuseRefractor [ PhBScatterer ] { # field SFFloat normalisation 1. # [0,infty) } PhBPerfectSpecularRefractor [ PhBScatterer ] { # field SFFloat normalisation 1. # [0,infty) } PhBPhongRefractor [ PhBScatterer ] { exposedField SFFloat sharpness 0. # [0,infty) # field SFFloat normalisation 1. # [0,infty) } PhBTexturedSurface [ PhBSurface ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField MFNode [ PhBSurface ] surfaces [ ] exposedField SFNode [ TextureTransform ] textureTransform NULL exposedField SFNode [ PhBTextureProjection ] textureProjection NULL } PhB3DTexturedSurface [ PhBSurface ] { exposedField SFNode [ PhB3DTexture ] texture NULL exposedField MFNode [ PhBSurface ] surfaces [ ] exposedField SFNode [ PhB3DTextureTransform ] textureTransform3D NULL } PhBInterpolatedSurface [ PhBSurface ] { exposedField SFFloat fraction 0. exposedField MFFloat key [ ] exposedField MFNode [ PhBSurface ] keySurfaces [ ] } PhBHomogeneousMedium [ PhBMedium ]{ exposedField SFVec2f indexOfRefraction 1. 0. exposedField SFFloat scatteringCrossSection 0. # [0,infty) exposedField SFFloat absorptionCrossSection 0. # [0,infty) exposedField MFNode [ PhBPhF ] phaseFunction [ ] exposedField SFNode [ PhBSpectrum ] selfEmittedFluxDensity NULL } PhBPhF { exposedField SFFloat intensity 1. # (-infty,infty) exposedField SFNode [ PhBSpectrum ] spectrum NULL exposedField SFNode [ PhBPhaseFunction ] phaseFunction NULL } PhBIsotropicPhaseFunction [ PhBPhaseFunction ] { # field SFFloat normalisation 1. # [0,infty) } PhBHenyeyGreensteinPhaseFunction [ PhBIsotropicPhaseFunction ] { exposedField SFFloat g 0 # (-1, 1) } PhBSchlickPhaseFunction [ PhBIsotropicPhaseFunction ] { exposedField SFFloat k 0 # (-1, 1) } PhBProceduralPhaseFunction [ PhBPhaseFunction ] { # eventIn SFFloat alpha # eventIn SFFloat sampleNum field MFString url [ ] # eventOut SFFloat value # eventOut SFFloat pdf # eventOut SFFloat sampleAlpha # eventOut SFFloat normalisation } PhBTexturedMedium [ PhBMedium ] { exposedField SFNode [ PhB3DTexture ] texture NULL exposedField MFNode [ PhBMedium ] media [ ] exposedField SFNode [ PhB3DTextureTransform ] textureTransform3D NULL } PhBInterpolatedMedium [ PhBMedium ] { exposedField SFFloat fraction 0. exposedField MFFloat key [ ] exposedField MFNode [ PhBMedium ] keyMedia [ ] } PhBSurfaceDistortion [ PhBDistortion ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL } PhBBumpMap [ PhBSurfaceDistortion ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL exposedField SFFloat height 1. } PhBNormalMap [ PhBSurfaceDistortion ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL } PhBBrushMap [ PhBSurfaceDistortion ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL } PhBShadingFrameDistortion [ PhBSurfaceDistortion ] { exposedField SFNode [ PhBTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL } PhBVolumeDistortion [ PhBDistortion ] { exposedField SFNode [ PhB3DTexture ] texture NULL exposedField SFNode [ Transform ] transform NULL } PhBProceduralTexture [ PhBTexture ] { # eventIn SFVec2f textureCoordinate field MFString url [ ] # eventOut MFFloat textureValues } PhBNoiseTexture [ PhBTexture ] { exposedField SFFloat k 1 } PhBBilinearInterpolation [ PhBTexture ] { exposedField SFNode [ PhBImageTextureBase ] texture NULL } PhBImageTextureBase [ PhBTexture ] { field MFString url [] # exposedField SFNode [ PhBTextureFilter ] filter NULL exposedField SFBool clamping FALSE exposedField SFBool repeating TRUE } PhBImageTexture [ PhBImageTextureBase ] { field MFString url [] # exposedField SFNode [ PhBTextureFilter ] filter NULL exposedField SFBool clamping FALSE exposedField SFBool repeating TRUE } PhBPixelTexture [ PhBImageTextureBase ] { field SFInt32 channels 1 field SFInt32 width 0 field SFInt32 height 0 field MFFloat pixels [] # exposedField SFNode [ PhBTextureFilter ] filter NULL exposedField SFBool clamping FALSE exposedField SFBool repeating TRUE } PhBToggleTexture [ PhBImageTextureBase ] { field MFString url [] # exposedField SFNode [ PhBTextureFilter ] filter NULL exposedField SFBool clamping FALSE exposedField SFBool repeating TRUE } PhBProcedural3DTexture [ PhB3DTexture ] { # eventIn SFVec3f textureCoordinate field MFString url [ ] # eventOut MFFloat textureValues } PhB3DCheckerTexture [ PhB3DTexture ] { } PhB3DSpiralTexture [ PhB3DTexture ] { } PhB3DNoiseTexture [ PhB3DTexture ] { exposedField SFFloat k 1 } PhBProceduralTextureProjection [ PhBTextureProjection ] { # eventIn SFVec3f coordinate field MFString url [ ] # eventOut SFVec2f textureCoordinate } PhBLandscapePhotoBackground [ PhBBackgroundProjection ] { } PhBSphereTextureProjection [ PhBTextureProjection ] { exposedField SFFloat radius 1 # [0, infty) } PhBBoxTextureProjection [ PhBTextureProjection ] { exposedField SFVec3f size 2 2 2 # (0, infty) } PhBConeTextureProjection [ PhBTextureProjection ] { exposedField SFFloat bottomRadius 1 # (0, infty) exposedField SFFloat height 2 # (0, infty) field SFBool side TRUE field SFBool bottom TRUE } PhBCylinderTextureProjection [ PhBTextureProjection ] { exposedField SFFloat height 2 # (0, infty) exposedField SFFloat radius 1 # (0, infty) field SFBool bottom TRUE field SFBool side TRUE field SFBool top TRUE } PhB3DTextureTransform { exposedField SFVec3f center 0 0 0 # (-infty,infty) exposedField SFRotation rotation 0 0 1 0 # [-1,1],(-infty,infty) exposedField SFVec3f scale 1 1 1 # (0,infty) exposedField SFRotation scaleOrientation 0 0 1 0 # [-1,1],(-infty,infty exposedField SFVec3f translation 0 0 0 # (0,infty) } PhBTexturedBackground [ Children Bindable PhBBackground ] { eventIn SFBool set_bind eventOut SFBool isBound exposedField SFNode [ PhBTexture ] texture NULL exposedField MFNode [ PhBSpectrum ] spectralBasis [ ] exposedField MFFloat spectralWeights [ ] exposedField SFRotation viewOrientation 0 0 1 0 exposedField SFNode [ TextureTransform ] textureTransform NULL exposedField SFNode [ PhBBackgroundProjection ] textureProjection NULL } PhBHomogeneousBackground [ Children PhBBackground ] { eventIn SFBool set_bind eventOut SFBool isBound exposedField MFNode [ PhBSpectrum ] spectralBasis [ ] exposedField MFFloat spectralWeights [ ] } PhBBackgroundLight [ Children PhBBackground ] { eventIn SFBool set_bind eventOut SFBool isBound exposedField MFNode [ PhBSpectrum ] spectralBasis [ ] exposedField MFFloat spectralWeights [ ] exposedField SFRotation orientation 0 0 1 0 exposedField SFFloat angle .01 # [0, 2pi) } PhBProceduralBackground [ Children Bindable PhBBackground ] { eventIn SFBool set_bind eventOut SFBool isBound field MFString url [ ] } PhBAtmosphere [ Children Bindable ] { eventIn SFBool set_bind eventOut SFBool isBound exposedField SFNode [ PhBMedium ] medium NULL } PhBLxySpectrum [ PhBSpectrum ] { exposedField SFVec2f xy 0.3333333 0.3333333 # [0,1] exposedField SFFloat luminance 1. # [0,infty) } PhBXYZSpectrum [ PhBSpectrum ] { exposedField SFVec3f xyz 1. 1. 1. # [0,infty) } PhBMonochromaticSpectrum [ PhBSpectrum ] { exposedField SFFloat wavelength 550. # [0,infty) exposedField SFFloat luminance 1. # [0,infty) } PhBBlackBodySpectrum [ PhBSpectrum ] { exposedField SFFloat temperature 0. # [0,infty) exposedField SFFloat luminance 1. # [0,infty) } PhBSampledSpectrum [ PhBSpectrum ] { exposedField MFFloat samples [ ] exposedField SFFloat scale 1. # [0,infty) exposedField SFFloat min 380. # [380.,770] exposedField SFFloat max 770. # [380.,770] } PhBTabulatedSpectrum [ PhBSpectrum ] { exposedField MFFloat wavelengths [ ] # [380.,770.] exposedField MFFloat values [ ] # [0,infty) exposedField SFFloat scale 1. # [0,infty) } PhBProceduralSpectrum [ PhBSpectrum ] { # eventIn SFFloat wavelength # [380.,770.] field MFString url [ ] # eventOut SFFloat spectralValue # [0,infty) } PhBMixedSpectrum [ PhBSpectrum ] { exposedField MFNode [ PhBSpectrum ] spectra [ ] exposedField MFFloat weight [ ] } PhBInterpolatedSpectrum [ PhBSpectrum ] { exposedField SFFloat fraction 0. exposedField MFFloat key [ ] exposedField MFNode [ PhBSpectrum ] keySpectra [ ] } PhBRGBSpectrum [ PhBSpectrum ] { exposedField SFColor rgb 0 0 0 # [0,infty) } PhBMonitorCalibration [ Children Bindable ] { eventIn SFBool set_bind eventOut SFBool isBound exposedField SFNode [ PhBSpectrum ] red NULL exposedField SFNode [ PhBSpectrum ] green NULL exposedField SFNode [ PhBSpectrum ] blue NULL exposedField SFNode [ PhBSpectrum ] white NULL exposedField SFColor gamma 1 1 1 # (0,infty) exposedField SFFloat maxLuminance 100 # (0,infty) exposedField SFFloat maxContrast 50 # (0,infty) }