<> <> <> <> <<>> DIRECTORY Atom, G3dRender, Rope; G3dMappedAndSolidTexture: CEDAR DEFINITIONS ~ BEGIN <> PropList: TYPE ~ Atom.PropList; LORA: TYPE ~ LIST OF REF ANY; Context: TYPE ~ G3dRender.Context; Pair: TYPE ~ G3dRender.Pair; Patch: TYPE ~ G3dRender.Patch; SpotProc: TYPE ~ G3dRender.SpotProc; TextureMap: TYPE ~ G3dRender.TextureMap; TextureFunction: TYPE ~ G3dRender.TextureFunction; ROPE: TYPE ~ Rope.ROPE; <> AddSolidTexture: PROC [context: Context, shapeName: ROPE, name: ATOM]; <> AddMappedTexture: PROC [context: Context, shapeName: ROPE, texture: REF TextureMap]; <> SumAllMappedTextures: PROC [context: Context, shapeName: ROPE]; <> RemoveAllTexture: PROC [context: Context, shapeName: ROPE]; <> <> AdjustTexture: PROC [poly: REF Patch, texture: LORA, txtrRange: Pair]; <> <> GetTxtrAt: SpotProc; <> <> RegisterTextureFunction: PROC [name: ATOM, proc: SpotProc, props: PropList _ NIL]; <> GetRegisteredTextureFunction: PROC [name: ATOM] RETURNS[txtrFn: TextureFunction]; <> Chaos: PROC [x, y, z: REAL] RETURNS [REAL]; <> Noise: PROC [vx, vy, vz: REAL] RETURNS [REAL]; <> <> ScaleTxtrCoords: PROC [context: Context, shapeName: ROPE, scale, xRatio, yRatio: REAL _ 1.0]; <> <> <> SetPatchTextureCoords: PROC [ context: Context, shapeName: ROPE, corner0: Pair _ [0.,0.], corner1: Pair _ [0.,1.], corner2: Pair _ [1.,1.], corner3: Pair _ [1.,0.] ]; <> MakeTxtrCoordsFromVtxNos: PROC [ context: Context, shapeName: ROPE, vtcesInRow, numberOfRows: NAT, row0col0, rowNcol0, rowNcolM, row0colM: Pair]; <> <> MakeTxtrCoordsFromNormals: PROC [ context: Context, shapeName: ROPE, botLeft: Pair _ [0.0, 0.0], topLeft: Pair _ [0.0, 1.0], topRight: Pair _ [1.0, 1.0], botRight: Pair _ [1.0, 0.0], sw: Pair _ [180.0, -90.0], nw: Pair _ [180.0, 90.0], ne: Pair _ [-180.0, 90.0], se: Pair _ [-180.0, -90.0]]; <> <> TextureFromAIS: PROC [ context: Context, fileName: ROPE, type: ATOM _ $Intensity, factor: REAL _ 1.0] RETURNS[texture: REF TextureMap]; <> <> <<>> SumTexture: PROC [texture: REF TextureMap]; <> END.