TABLE OF CONTENTS


ScPovPlot3D/BPatchSurf.inc [ Modules ]

[ Top ] [ Modules ]

PURPOSE

New templates for drawing smoothed by Bezier spline surfaces:

     
     
     
            

Fig.[BPatchSurf]. New, 3D surface modelling system. There is still a lot TODO: more automation and so on


VERSION

3.1.0.3, tested on PovRay 3.7.

AUTHOR

Janusz Opiła Ph.D.

   jmo{at}agh.edu.pl, janusz.opila{at}gmail.com
   Dept. of Applied Informatics, 
   https://www.facebook.com/KatedraInformatykiStosowanejWZAGH/
   http://kis.zarz.agh.edu.pl/
   AGH University of Science & Technology, Cracow, Poland
   Maintained by Janusz Opiła Ph.D.
   Homepage: http://scpovplot3d.sourceforge.net   

HISTORY

3.1.0.3 replaced in line 1085: <xx,yy,zz> -> <xx,yy,VScale*zz+VShift>

HISTORY

2021-06-10 - minor improvements in comments

COPYRIGHT

  GNU GPL v.3 License
  (c) 2012-now by Janusz Opiła Ph.D.         
  AGH University of Science and Technology

BPatchSurf.inc/DrawAllPatches [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this helper macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure. This macro applies default texture to the surface, so one don't need another

SYNOPSIS

#macro DrawAllPatches()  // default pigment gradient

INPUTS

  None

SEE ALSO

one should also refer to:

   FunctionSurface (), EvalPatchedSurface (), DrawPatch (), DrawAllPatchesGeo (), 
   DrawAllPatchesWithTexture (), DrawAllPatchesWithMap ()


BPatchSurf.inc/DrawAllPatches_UV() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

This macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure :) The macro applies UV texture to the whole surface.

SYNOPSIS

DrawAllPatches_UV(ImageConstants _type, string filename _file)

INPUTS

  ImageConstants _type - indicates format of the bitmap passed to the macro as uv_mapping{}.
  _type = [ _JPG | _BMP | _GIF | _PNG |_TGA | _SYS |_EXR |_HDR |_IFF |_PGM |_PPM |_TIF ]
  string filename - Name of map for the surface
                  - Consult source file for details.

EXAMPLE

DrawAllPatches_UV( _PNG, "GriddVividRed.png") // covers surface with copies of "GriddVividRed.png" file

SEE ALSO

one should also refer to:

   FunctionSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UV(), DrawPatch_UV_multi(),
   DrawPatch(), DrawAllPatches(), DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/DrawAllPatches_UV_multi() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this macro renders all bezier_patch{}'es in this surface and applies UV texture to a every single patch by iterative formula

SYNOPSIS

DrawAllPatches_UV_multi(ImageConstants _type, string _file, uinteger _max)

INPUTS

  ImageConstants _type    - indicates format of the bitmap passed to the macro as uv_map{}
  _type = [ _JPG | _BMP | _GIF | _PNG |_TGA | _SYS |_EXR |_HDR |_IFF |_PGM |_PPM |_TIF |_TIF ]
  string   _file - constant part of image file name
  uinteger _max     - automatically generated suffix goes from '0' up to '_max-1'. Suffix is then concatenated
                    - with _file and extension defined by _type. Thus final image name is defined.
                    - This image will be used as uv_map for consecutive patches. Calls macro DrawPatch_UV_multi().
                    - _max = 2..100/ parameter of mod(N, _max) operation. Consult source file for details.

EXAMPLE

DrawAllPatches_UV_multi(_JPG, "Next", 7)
// renders all patches and uses files Next00.jpg through Next06.jpg as maps for consecutive patches

SEE ALSO

one should also refer to:

   FunctionSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UV(), DrawPatch(),
   DrawAllPatches(), DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/DrawAllPatches_UVpng() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

This macro renders single bezier_patch{} depicted by given indices. Its simplicity results from sophisticated data structure. This macro applies UV'ed texture to the surface given in _UV_png (PNG format) file.

SYNOPSIS

DrawAllPatches_UVpng(_png_file )

INPUTS

  string_fn _UV_png - filename of (square) PNG raster bitmap

SEE ALSO

one should also refer to:

   FunctionSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UVpng(),
   DrawAllPatches(), DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/DrawAllPatchesGeo [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure. This macro applies NO texture to the surface, so one MUST aplly it by hand

SYNOPSIS

#macro DrawAllPatchesGeo() //geometry only !!!

INPUTS

  None

SEE ALSO

one should also check:

   FunctionSurface (), EvalPatchedSurface (), DrawPatch (), DrawAllPatches (), 
   DrawAllPatchesWithTexture (), DrawPatch_UVpng


BPatchSurf.inc/DrawAllPatchesWithMap [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure. This macro applies default texture map to the surface, so one don't need another

SYNOPSIS

#macro DrawAllPatchesWithMap( _ThisMap)

INPUTS

  colormapdef _ThisMap - any valid color_map{} definition, uses passed color_map{} object,
                         one from ColorMaps.inc or another self defined

SEE ALSO

one should also refer to:

   FunctionSurface (), EvalPatchedSurface (), DrawPatch (), DrawAllPatches (), 
   DrawAllPatchesGeo (), DrawAllPatchesWithTexture ()


BPatchSurf.inc/DrawAllPatchesWithTexture [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this helper macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure. This macro applies default texture to the surface, so one don't need another

SYNOPSIS

#macro DrawAllPatchesWithTexture( _MyTexture)  // default pigment gradient

INPUTS

  texturedef _MyTexture - any valid texture definition

SEE ALSO

one should also refer to:

   FunctionSurface (), EvalPatchedSurface (), DrawPatch (), DrawAllPatches (), 
   DrawAllPatchesGeo (), DrawAllPatchesWithMap ()


BPatchSurf.inc/DrawPatch [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this helper macro renders single bezier_patch{}

SYNOPSIS

#macro DrawPatch(ipy, ipx)

INPUTS

  uinteger ipy, uinteger ipx - two unsigned integer numbers, indices to array which contains definition of all patches

SEE ALSO

one should also refer to:

   FunctionSurface (), DrawPatch_UV (), EvalPatchedSurface (), DrawAllPatchesGeo (), 
   DrawAllPatchesWithTexture (), DrawAllPatchesWithMap (), source code of this module


BPatchSurf.inc/DrawPatch_UV() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this macro renders all bezier_patch{}'es in single surface its simplicity results from sophisticated data structure. This macro applies NO texture to the surface, so one MUST aplly it by hand

SYNOPSIS

DrawPatch_UV(uinteger ipy, uinteger ipx, ImageConstants _type, string filename _UV_png)

INPUTS

  uinteger ipy   - and  ..
  uinteger ipx   - two unsigned integer numbers, indices to array which contains definition of all patches
  ImageConstants _type    - indicates format of the bitmap passed to the macro as uv_map{}
  _type = [ _JPG | _BMP | _GIF | _PNG |_TGA | _SYS |_EXR |_HDR |_IFF |_PGM |_PPM |_TIF |_TIF ]
  string filename _UV_png - valid filename of bitmap of type declared above
  this bitmap should be perpendicular, preferably rectangular, some images are distributed with the package
  as G00.jpg to G10.jpg as well as Gridd*.jpg files in "./img" subfolder

SEE ALSO

one should also refer to:

   FunctionSurface(), DrawPatch(), EvalPatchedSurface(), DrawPatch(), DrawAllPatches(), 
   DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/DrawPatch_UV_multi() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

this macro renders single bezier_patch{} and applies UV texture to it

SYNOPSIS

#macro DrawPatch_UV_multi(ipy, ipx, _type, _UV_core, _max)

INPUTS

  uinteger ipy   - and  ..
  uinteger ipx   - two unsigned integer numbers, indices to array which contains definition of all patches
  ImageConstants _type    - indicates format of the bitmap passed to the macro as uv_map{}
  _type = [ _JPG | _BMP | _GIF | _PNG |_TGA | _SYS |_EXR |_HDR |_IFF |_PGM |_PPM |_TIF |_TIF ]
  string   _UV_core - constant part of image file
  uinteger _max     - automatically generated suffix goes from '0' up to '_max-1'. Suffix is then concatenated
                    - with _UV_core and extension defined by _type. Thus final image name is defined.
                    - This image will be used as uv_map for the given by ipx&ipy indices patch.
                    - Consult source file for details.

EXAMPLE

DrawPatch_UV_multi(3, 5, _JPG, "Next", 7)
// renders patch 3rd/5th with uv image named: "Next01.jpg"

SEE ALSO

one should also refer to:

   FunctionSurface (), DrawPatch (), DrawPatch_UV (), EvalPatchedSurface (), DrawPatch (), 
   DrawAllPatches (), DrawAllPatchesGeo (), DrawAllPatchesWithTexture ()


BPatchSurf.inc/DrawPatch_UVpng [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

This macro renders single bezier_patch{} depicted by given indices. Its simplicity results from sophisticated data structure. This macro applies UV'ed texture to the surface given in _UV_png (PNG format) file.

SYNOPSIS

#macro DrawPatch_UVpng(ipy, ipx, _UV_png)

INPUTS

  integer ipy - 
  integer ipx - indices to given bezier patch item 
  string_fn _UV_png - filename of PNG raster bitmap

SEE ALSO

one should also refer to:

   FunctionSurface (), EvalPatchedSurface (), DrawPatch (), DrawAllPatches_UVpng (),
   DrawAllPatches (), DrawAllPatchesGeo (), DrawAllPatchesWithTexture ()


BPatchSurf.inc/FunctionSurface, EvalFuncPatchedSurf [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

Draws surface defined by z=Func(x,y) Function, defined in real world parameters

SYNOPSIS

FunctionSurface(pfunction Func, float x1, float x2, integer Nxx, float y1, float y2, integer Nyy )

INPUTS

  pfunction Func -> inline f(x,y) => #declare abc=Function(x,y){x-y} Function declared in real x,y,z coordinates
  float x1, float x2, integer Nxx => x-min, x-max, num. of cardinal (exact value) points
  float y1, float y2, integer Nyy => the same but for y axis

EXAMPLE

#declare SinCos3 = Function(i, j){ 2*sin(pi/2*i)+cos(pi/3*j)+i*j/400 }
FunctionSurface(SinCos3, 0, 4*pi, 20, 0, 4*pi, 20) // prepare SinCos3(x,y) surface over rectangle
                                                   // extending from 0 to 4*Pi on X and Y axis
DrawAllPatches()                    // and then render it

SEE ALSO

one should also refer to:

   MatrixFileSurface (), EvalPatchedSurface (), DrawPatch (), DrawPatch_UV (), DrawPatch (),
   DrawAllPatches (), DrawAllPatchesGeo(), DrawAllPatchesWithTexture (), EvalFuncPatchedSurf ()


BPatchSurf.inc/MatrixFileSurface() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

Imports data from file InFileName, prepares data structure for EvalPatchedSurf() macro and eventually calls it.

    Format of input file (like matrix - Cx is for Column, Ry for Row):
    +------> [ rows mapped along X real] >----->     +------> [ X real] >----->
    |  C1R1, C2R1, C3R3, ...........                 |  z(x1y1), z(x2y1), z(x3y3), .....
    |  C1R2,                                         |  z(x1y2), z(x2y2),
    |  C1R3,                                         |  z(x1y3)),
    v   . .                                          v   . .
    [column mapped along Y real]                     [Y real]

Macro is provided for drawing data in real coordinates. Data in a row have the same y coordinate but sequencial x's. Only 'z' (height) values are given, values for x&y are calculated from values given in the header of the input file. Watching at the data file you see resulting surface like seeing it vertically from bottom of the coordinate system, having X axis oriented toward right hand, and Y axis beforehand.

SYNOPSIS

MatrixFileSurface(string_fn InFileName)

INPUTS

  string_fn filename InFileName - valid filename eg. "InSurfData.dat". Extension is not required nor fixed.

EXAMPLE

MatrixFileSurface("InSurfData.dat") // import data..
DrawAllPatches()                    // and then render all patches

SEE ALSO

one should also refer to:

   FunctionSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UV(), DrawPatch(),
   DrawAllPatches(), DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/RawDataSurfaceExt(), RawDataSurface() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

RawDataSurfaceExt() is just wrapper for RawDataSurface() Function

SYNOPSIS

INPUTS

EXAMPLE

RawDataSurfaceExt("SSurfA.dat", Gauss, Gauss, 0, 10, 20, 0, 10, 20) //
DrawAllPatches()                    // and then render it

OR

RawDataSurface("SSurfA.dat", Gauss, Gauss, 2.0,  0, 10, 20, 0, 10, 20) //
DrawAllPatches()                    // and then render it

SEE ALSO

one should also refer to:

   RawDataSurface(), MatrixFileSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UV(), DrawPatch(),
   ScatterDataSurfaceExp(), DrawAllPatches(), 
   DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/ScatterDataSurfaceExp() [ Main macros ]

[ Top ] [ BPatchSurf.inc ] [ Main macros ]

PURPOSE

ScatterDataSurfaceExp()

SYNOPSIS

INPUTS

EXAMPLE

ScatterDataSurfaceExp()
DrawAllPatches()            // and then render it

SEE ALSO

one should also refer to:

   RawDataSurface(), MatrixFileSurface(), EvalPatchedSurface(), DrawPatch(), DrawPatch_UV(), DrawPatch(),
   DrawAllPatches(), DrawAllPatchesGeo(), DrawAllPatchesWithTexture()


BPatchSurf.inc/DrawCardPoints [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

this helper macro renders all "cardinal" ie. corner points of bicubic patches in the scene as spheres it is possible due to proper data structure. Macro renders pure geomtry, one have to define texture in #declare/object{} construct

SYNOPSIS

#macro DrawCardPoints( R)  // Plots cardinal points of bicubic patches only

INPUTS

  float R - radius of cardinal point

EXAMPLE

#declare PPP = object{DrawCardPoints(.2)};
object{ PPP
        texture {valid texture definition}
}

SEE ALSO

one should also refer to:

   object{} description in POVRay documentation


BPatchSurf.inc/Inline functions [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

helper functions applicable to macro: FunctionSurface(Func, x1, x2, Nxx, y1, y2, Nyy) used to draw surface by equation z=Func( x, y)

SYNOPSIS

#declare fId = Function(i, j){ ..single nonconditional statement.. }; see example

INPUTS

  i, j - two float numbers for x, y argument values respectively, note that 'x' and 'y' symbols are predefined in POVRay as coord's system vectors

EXAMPLE

#declare SinCos3 = Function(i, j){ 2*sin(pi/2*i)+cos(pi/3*j)+i*j/400 }
FunctionSurface(SinCos3, 0, 10, 11, 0, 10, 11)
DrawAllPatches()

SEE ALSO

one should also refer to:

   FunctionSurface(), DrawPatch(), DrawAllPatchesGeo(), DrawAllPatches(), 
   DrawAllPatchesWithTexture(), DrawAllPatchesWithMap(), POVRay Function pointers

SOURCE

#declare Cos2Sin = Function(i, j){ 2*cos(1*(i*pi/18))*cos(1*(i*pi/18))-sin(2*(j*pi/18))}
#declare SinCosP2= Function(i, j){ 2*sin(j*pi/18)*pow(  cos(i*pi/18),2) }
#declare SinCos3 = Function(i, j){ 2*sin(pi/2*i)+cos(pi/3*j)+i*j/400 }

BPatchSurf.inc/Inline kriging functions() [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

helper functions applicable to macro: smoothing & kriging functions: f=Func(float d)

SYNOPSIS

#declare fId = Function(i, j){ ..single nonconditional statement.. }; // see example below

INPUTS

  i, j - two float numbers for x,y argument values respectively, note that 'x' and 'y' symbols are predefined in POVRay as coord's system vectors

EXAMPLE

#declare Newton  = Function (d) { 1/d      }      // named after potential Function
RawDataSurface("AnyFile.dat", Newton, Llimiter, .5, 0, 10, 20, 0, 10, 20)
DrawAllPatches()

SEE ALSO

one should also refer to:

   FunctionSurface(), DrawPatch(), DrawAllPatchesGeo(), DrawAllPatches(), 
   DrawAllPatchesWithTexture(), DrawAllPatchesWithMap(), POVRay Function pointers

SOURCE

#declare Newton   = Function (d) { 1/d     }         // USELESS named after newtonian potential Function
#declare Limiter  = Function (d) { 1/DZero }        // this Function is called when d<DZero

#declare Newton2  = Function (d) { 1/pow(d,2)      } // named after newtonian potential Function
#declare Limiter2 = Function (d) { 1/pow(DZero,4)  }        // this Function is called when d<DZero

#declare Newton4  = Function (d) { 1/pow(d,2)      } // named after newtonian potential Function
#declare Limiter4 = Function (d) { 1/pow(DZero,4)  }        // this Function is called when d<DZero
#declare Exponent = Function (d) { exp(-d)  }        //
#declare Gauss    = Function (d) { exp(-pow(d,2))}   // resembles gauss PDF distribution Function

// simple kriging - more general example, which needs  
// two input values, interpreted as 'distance' and 'power' respectively
#declare SKrig   = Function (d, pw) { 1/(1.0+pow(d, pw)) }  // SKrig(distance, power)

// ======[ specialised Function ]======
#declare SKrig1  = Function (d) { 1/(1.0+d) }
#declare SKrig2  = Function (d) { 1/(1.0+pow(d,2)) }
#declare SKrig4  = Function (d) { 1/(1.0+pow(d,4)) }

BPatchSurf.inc/SetDZero [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

minimal minimal float number assumed not being equal zero meaning of this variable depends on algorithm employed

SYNOPSIS

#macro SetDZero(_dz)

INPUTS

  float _dz - new DZero value

SEE ALSO

one should also refer to:

   DZero


BPatchSurf.inc/SetInterior() [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

declares interior section for enabled items and sets DeclareLevel on '2'

SYNOPSIS

#macro SetInterior( tInt )       // valid only together with texture defintions

INPUTS

   interiordef tInt - variable declared as fully defined valid texture

EXAMPLE

#declare TInterior = interior { // for details of 'interior' definition consult POVRay documentation
                        ior 1.5
                        fade_power 1001
                        fade_distance 0.9
                        fade_color <Nodes[CountY][CountX]/DscMaxY,.5,1-Nodes[CountY][CountX]/DscMaxY>
                      };
SetInterior(TInterior)

BPatchSurf.inc/SetRGBFTColor [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

Sets default color stored in tmpColor internal variable: Sets DeclareLevel to '0' (basic level)

SYNOPSIS

#macro SetRGBFTColor( RR, GG, BB, FF, TT )

INPUTS

   float RR - red component
   float GG - green component
   float BB - blue component
   float FF - filter amount
   float TT - transmit level

BPatchSurf.inc/SetTexture [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

declares texure for the enabled items and sets DeclareLevel on '2'

SYNOPSIS

#macro SetTexture( FullTexture ) // follow it by SetInterior("InteriorDefinition")

INPUTS

   texturedef FullTexture - variable declared as fully defined valid texture

EXAMPLE

#declare MyTexture = texture{pigment{color rgb <0,0,1>}};
SetTexture(MyTexture)

BPatchSurf.inc/SetVScale [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

Sets factor for enhancement along vertical axis (negative values allowed ;)

SYNOPSIS

#macro SetVScale( _ss)

INPUTS

  float _ss - new VScale value

SEE ALSO

one should also refer to:

   VScale


BPatchSurf.inc/SetVShift() [ Helper macros ]

[ Top ] [ BPatchSurf.inc ] [ Helper macros ]

PURPOSE

macro and variable, explanation: due to limitations of bicubic interpolation algorithm, unexpected micro bulges are sometimes observed. This can cause inconsistences of gradient mapping. To overcome this difficulty one can shift whole surface up or down by applying this macro. Values in range of 10^-4 are usually sufficient

SYNOPSIS

#macro SetVShift( _vs)

INPUTS

  float _vs - new VShift value

SEE ALSO

one may also refer to:

   VShift


BPatchSurf.inc/ImageConstants [ Constants ]

[ Top ] [ BPatchSurf.inc ] [ Constants ]

PURPOSE

These constants are for DrawPatch_UV###() macro and they define formats of UV_map bitmap file. For details of UV mapping consult please POVRay documentation.

Following image formats are defined:

SYNOPSIS

#declare _JPG =  1; // JPEG
#declare _BMP =  2; // BMP
#declare _GIF =  3; // GIF
#declare _PNG =  4; // PNG - default
#declare _TGA =  5; // Targa
#declare _SYS =  6; // depends on default set by operating system 
#declare _EXR =  7; // OpenEXR
#declare _HDR =  8; // High Dynamic Range format
#declare _IFF =  9; // IFF 
#declare _PGM = 10; // PGM
#declare _PPM = 11; // PPM
#declare _TIF = 12; // TIFF

BPatchSurf.inc/DeclareLevel, tmpColour, tmpColour1, tmpColour2, DZero [ Variables ]

[ Top ] [ BPatchSurf.inc ] [ Variables ]

PURPOSE

DeclareLevel determines what is defined:

this value is valid until next "Set...()" declaration is met

SOURCE

#declare DeclareLevel = 0;                        // initial value
#declare tmpColour   = rgbf<0.2, 0.3, 0.4, 0.75>; // rgb <0, 0, 1>; well, I like this colour...
#declare tmpColour1  = rgbf<0.2, 0.3, 0.4, 0.75>; // ..transparent a little..
#declare tmpColour2  = rgbf<1.5, 1.3, 1.2, 0.73>; // additional, secondary colour used by some objects ex. in BarShapes.inc module
#declare DZero = 1E-4;    // minimal distance between grid & random point

BPatchSurf.inc/DZero [ Variables ]

[ Top ] [ BPatchSurf.inc ] [ Variables ]

PURPOSE

minimal float number assumed not being equal zero meaning of this variable depends on algorithm employed

SEE ALSO

one should also refer to:

   SetDZero (float)

SOURCE

#declare DZero = 1E-4;

BPatchSurf.inc/VScale [ Variables ]

[ Top ] [ BPatchSurf.inc ] [ Variables ]

PURPOSE

float - Surface enhancement along vertical axis (negative values allowed ;) this value is valid until "SetVScale()"

SEE ALSO

one should also refer to:

   SetVScale ()

SOURCE

#declare VScale = 1.0;    // Surface enhancement along vertical axis (negative values allowed ;)

BPatchSurf.inc/VShift [ Variables ]

[ Top ] [ BPatchSurf.inc ] [ Variables ]

PURPOSE

float - see SetVShift macro

SEE ALSO

one should also refer to:

   SetVShift

SOURCE

#declare VShift = 0; // default value