Package pylux :: Class Context
[hide private]
[frames] | no frames]

Class Context

 object --+    
          |    
??.instance --+
              |
             Context

An instance of a LuxRender rendering context

Instance Methods [hide private]
 
__init__(...)
__init__( (object)Context, (str)name) -> None :...
 
__reduce__(...)
helper for pickle
 
__repr__(...)
__repr__( (Context)Context) -> str
 
accelerator(...)
accelerator( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise geometry acceleration structure type.
 
addServer(...)
addServer( (Context)Context, (str)address) -> None :...
 
addThread(...)
addThread( (Context)Context) -> int :...
 
alphaBuffer(...)
alphaBuffer( (Context)Context) -> list : Returns the current alpha buffer in float format as a list.
 
areaLightSource(...)
areaLightSource( (Context)Context, (str)type, (list)ParamSet) -> None : Attach a light source to the current geometry definition.
 
attributeBegin(...)
attributeBegin( (Context)Context) -> None : Begin a new Attribute scope, inheriting attributes from parent scope.
 
attributeEnd(...)
attributeEnd( (Context)Context) -> None : End an Attribute scope, reverting attributes to parent scope.
 
blenderCombinedDepthRects(...)
blenderCombinedDepthRects( (Context)Context) -> tuple :...
 
camera(...)
camera( (Context)Context, (str)type, (list)ParamSet) -> None : Add a camera to the scene.
 
cleanup(...)
cleanup( (Context)Context) -> None : Clean up and reset the renderer state after rendering.
 
concatTransform(...)
concatTransform( (Context)Context, (list)transform) -> None : Concatenate the given transformation onto the current transformation.
 
coordSysTransform(...)
coordSysTransform( (Context)Context, (str)name) -> None : Replaces the current transformation matrix with the matrix that forms the named coordinate system.
 
coordinateSystem(...)
coordinateSystem( (Context)Context, (str)name) -> None : This function marks the coordinate system defined by the current transformation with the name space and saves it.
 
customStatistics(...)
customStatistics( (Context)Context, (str)template_string) -> str : Return a formatted statistics string.
 
disableRandomMode(...)
disableRandomMode( (Context)Context) -> None : Disables random mode in the renderer core.
 
enableDebugMode(...)
enableDebugMode( (Context)Context) -> None : Puts the renderer core into Debug mode.
 
exit(...)
exit( (Context)Context) -> None : Stop the current rendering.
 
exterior(...)
exterior( (Context)Context, (str)VolumeName) -> None : Sets the current Exterior volume shader.
 
film(...)
film( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise the Film for rendering.
 
floatFramebuffer(...)
floatFramebuffer( (Context)Context) -> list : Returns the current post-processed LDR framebuffer in float format as a list.
 
framebuffer(...)
framebuffer( (Context)Context) -> list : Returns the current post-processed LDR framebuffer in RGB888 format as a list.
 
getAttribute(...)
getAttribute( (Context)arg1, (str)arg2, (str)Context) -> object :...
 
getAttributes(...)
getAttributes( (Context)Context) -> str :...
 
getDefaultParameterValue(...)
getDefaultParameterValue( (Context)Context, (Component)component, (ComponentParameters)parameter, (int)index) -> float
 
getDefaultStringParameterValue(...)
getDefaultStringParameterValue( (Context)arg1, (Component)arg2, (ComponentParameters)arg3, (str)arg4, (int)arg5, (int)Context) -> int
 
getHistogramImage(...)
getHistogramImage( (Context)Context, (int)width, (int)height, (TonemapKernels)options) -> list
 
getNetworkServerUpdateInterval(...)
getNetworkServerUpdateInterval( (Context)Context) -> int :...
 
getParameterValue(...)
getParameterValue( (Context)Context, (Component)component, (ComponentParameters)parameter, (int)index) -> float
 
getRenderingServersStatus(...)
getRenderingServersStatus( (Context)Context) -> tuple : Returns a list of ReenderingServerInfo objects which describe currently connected servers.
 
getServerCount(...)
getServerCount( (Context)Context) -> int : Return the number of remote slaves contributing towards the current rendering.
 
getStringParameterValue(...)
getStringParameterValue( (Context)arg1, (Component)arg2, (ComponentParameters)arg3, (str)arg4, (int)arg5, (int)Context) -> int
 
identity(...)
identity( (Context)Context) -> None : Set the current transform to the identity matrix.
 
interior(...)
interior( (Context)Context, (str)VolumeName) -> None : Set the current Interior volume shader.
 
lightGroup(...)
lightGroup( (Context)Context, (str)name, (list)ParamSet) -> None : Change the named group of all following light sources in this scope.
 
lightSource(...)
lightSource( (Context)Context, (str)type, (list)ParamSet) -> None : Create a light source of the specified type.
 
loadFLM(...)
loadFLM( (Context)Context, (str)filename) -> None : Load an FLM film file into the context for tonemapping/post-processing purposes.
 
lookAt(...)
lookAt( (Context)Context, (float)pos0, (float)pos1, (float)pos2, (float)trg0, (float)trg1, (float)trg2, (float)up0, (float)up1, (float)up2) -> None : Specify the position, target and up vector of the scene's camera.
 
makeNamedMaterial(...)
makeNamedMaterial( (Context)Context, (str)name, (list)ParamSet) -> None : Define a named material with the given name and type.
 
makeNamedVolume(...)
makeNamedVolume( (Context)Context, (str)name, (str)type, (list)ParamSet) -> None : Define a named volume with the given name and type.
 
material(...)
material( (Context)Context, (str)type, (list)ParamSet) -> None : Define a material of the given type in the current scope.
 
motionInstance(...)
motionInstance( (Context)arg1, (str)arg2, (float)arg3, (float)arg4, (str)Context) -> None : Instantiates a moving object.
 
namedMaterial(...)
namedMaterial( (Context)Context, (str)name) -> None : Instantiate a named material in the current scope as if it were defined with material().
 
objectBegin(...)
objectBegin( (Context)Context, (str)name) -> None : Define a named object that can be re-used with objectInstance().
 
objectEnd(...)
objectEnd( (Context)Context) -> None : End a named object definition.
 
objectInstance(...)
objectInstance( (Context)Context, (str)name) -> None : Instatiate a named object defined within an objectBegin()/objectEnd() pair in the current scope.
 
overrideResumeFLM(...)
overrideResumeFLM( (Context)arg1, (str)Context) -> None
 
parse(...)
parse( (Context)Context, (str)filename, (bool)asynchronous) -> bool : Parse the given filename.
 
parsePartial(...)
parsePartial( (Context)Context, (str)filename, (bool)asynchronous) -> bool : Parse the given filename.
 
parseSuccessful(...)
parseSuccessful( (Context)Context) -> bool
 
pause(...)
pause( (Context)Context) -> None : (+) Pause all local rendering threads.
 
pixelFilter(...)
pixelFilter( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise the pixel filter to use for rendering.
 
portalInstance(...)
portalInstance( (Context)Context, (str)name) -> None : Define instance as an "Exit Portal" shape.
 
portalShape(...)
portalShape( (Context)Context, (str)type, (list)ParamSet) -> None : Define geometry as an "Exit Portal" shape.
 
printableStatistics(...)
printableStatistics( (Context)Context, (bool)add_total) -> str : Return a formatted statistics string.
 
removeServer(...)
removeServer( (Context)Context, (str)address) -> None : Remote a remote rendering slave from the current rendering process.
 
removeThread(...)
removeThread( (Context)Context) -> None : Remove a local rendering thread from the current rendering process.
 
renderer(...)
renderer( (Context)Context, (str)type, (list)ParamSet) -> None : Choose the internal Renderer type.
 
reverseOrientation(...)
reverseOrientation( (Context)Context) -> None : Causes the orientation in the current scope to be reversed left->right or right->left handed.
 
rotate(...)
rotate( (Context)Context, (float)degrees, (float)x, (float)y, (float)z) -> None : Concatenate a rotation of the given angle, about the given axis onto the current scope's transformation.
 
sampler(...)
sampler( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise the sampler to use for rendering.
 
saveEXR(...)
saveEXR( (Context)Context, (str)filename, (bool)useHalfFloat, (bool)includeZBuffer, (bool)tonemapped) -> None :...
 
saveFLM(...)
saveFLM( (Context)Context, (str)filename) -> None : Save the current virtual film to an FLM file.
 
scale(...)
scale( (Context)Context, (float)x, (float)y, (float)z) -> None : Concatenate a scaling onto the current scope's transformation.
 
setAttribute(...)
setAttribute( (Context)arg1, (str)arg2, (str)arg3, (object)Context) -> None
 
setEpsilon(...)
setEpsilon( (Context)arg1, (float)arg2, (float)Context) -> None
 
setHaltSamplesPerPixel(...)
setHaltSamplesPerPixel( (Context)arg1, (TonemapKernels)arg2, (bool)arg3, (bool)Context) -> None
 
setNetworkServerUpdateInterval(...)
setNetworkServerUpdateInterval( (Context)arg1, (TonemapKernels)Context) -> None :...
 
setParameterValue(...)
setParameterValue( (Context)arg1, (Component)arg2, (ComponentParameters)arg3, (float)arg4, (int)Context) -> None
 
setStringParameterValue(...)
setStringParameterValue( (Context)arg1, (Component)arg2, (ComponentParameters)arg3, (str)arg4, (int)Context) -> None
 
shape(...)
shape( (Context)Context, (str)type, (list)ParamSet) -> None : Define a geometry primitive in the current scope.
 
start(...)
start( (Context)Context) -> None :...
 
statistics(...)
statistics( (Context)Context, (str)name) -> float : Return the named statistic from the current rendering.
 
surfaceIntegrator(...)
surfaceIntegrator( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise the surface integrator to use for rendering.
 
texture(...)
texture( (Context)Context, (str)name, (str)variant, (str)type, (list)ParamSet) -> None : Define a texture shader in the current scope.
 
transform(...)
transform( (Context)Context, (list)transform) -> None : Set the current scope's transformation matrix.
 
transformBegin(...)
transformBegin( (Context)Context) -> None : Begin a new transformation scope, inheriting the transform from the parent scope.
 
transformEnd(...)
transformEnd( (Context)Context) -> None : End the current transformation scope, reverting to the transformation of the parent scope.
 
translate(...)
translate( (Context)Context, (float)x, (float)y, (float)z) -> None : Concatenate a translation onto the current scope's transformation.
 
updateFilmFromNetwork(...)
updateFilmFromNetwork( (Context)Context) -> None : Update the current virtual film with contributions from attached network slaves.
 
updateFramebuffer(...)
updateFramebuffer( (Context)Context) -> None : Process the raw virtual film through the tonemapping post-processing pipeline into the LDR framebuffer.
 
volume(...)
volume( (Context)Context, (str)type, (list)ParamSet) -> None : Define a bound volume object for volumetric effects.
 
volumeIntegrator(...)
volumeIntegrator( (Context)Context, (str)type, (list)ParamSet) -> None : Initialise the volume integrator to use for rendering.
 
wait(...)
wait( (Context)Context) -> None : Wait for rendering threads to complete.
 
worldBegin(...)
worldBegin( (Context)Context) -> None : Specify that all rendering options shall be frozen, and that what commences is the description for the scene to be rendered.
 
worldEnd(...)
worldEnd( (Context)Context) -> None : Ends the current scene description and starts the rendering process asynchronously in a single local thread.
 
zBuffer(...)
zBuffer( (Context)Context) -> list : Returns the current Z buffer in float format as a list.

Inherited from unreachable.instance: __new__

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __reduce_ex__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  __instance_size__ = 56
Properties [hide private]
  name

Inherited from object: __class__

Method Details [hide private]

__init__(...)
(Constructor)

 

__init__( (object)Context, (str)name) -> None :
    Create a new rendering Context object with the given name

Overrides: object.__init__

__reduce__(...)

 
helper for pickle

Overrides: object.__reduce__
(inherited documentation)

__repr__(...)
(Representation operator)

 

__repr__( (Context)Context) -> str

Overrides: object.__repr__

accelerator(...)

 

accelerator( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise geometry acceleration structure type. Valid types are
    - bruteforce
    - bvh
    - grid
    - qbvh
    - tabreckdtree (or kdtree)

addServer(...)

 

addServer( (Context)Context, (str)address) -> None :
    Add a (remote) rendering server to the context

addThread(...)

 

addThread( (Context)Context) -> int :
    Add a local rendering thread to the context

alphaBuffer(...)

 

alphaBuffer( (Context)Context) -> list :
    Returns the current alpha buffer in float format as a list.
    It is advisable to call updateFramebuffer() before calling this function.

areaLightSource(...)

 

areaLightSource( (Context)Context, (str)type, (list)ParamSet) -> None :
    Attach a light source to the current geometry definition. (See: RiSpec 3.2 p.43)

attributeBegin(...)

 

attributeBegin( (Context)Context) -> None :
    Begin a new Attribute scope, inheriting attributes from parent scope.
    (See: RiSpec 3.2 p.38)

attributeEnd(...)

 

attributeEnd( (Context)Context) -> None :
    End an Attribute scope, reverting attributes to parent scope.
    (See: RiSpec 3.2 p.38)

blenderCombinedDepthRects(...)

 

blenderCombinedDepthRects( (Context)Context) -> tuple :
    Blender framebuffer fetcher method; returns combined Color+Alpha and Depth buffers in bottom-up format

camera(...)

 

camera( (Context)Context, (str)type, (list)ParamSet) -> None :
    Add a camera to the scene. Valid types are:
    - environment
    - orthographic
    - perspective
    - realistic

concatTransform(...)

 

concatTransform( (Context)Context, (list)transform) -> None :
    Concatenate the given transformation onto the current transformation. The
    transformation is applied before all previously applied transformations, that
    is, before the current transformation. (Ref: RiSpec 3.2 p.56)

coordSysTransform(...)

 

coordSysTransform( (Context)Context, (str)name) -> None :
    Replaces the current transformation matrix with the matrix that forms the named
    coordinate system. This permits objects to be placed directly into special or
    user-defined coordinate systems by their names. (Ref: RiSpec 3.2 p.57)

coordinateSystem(...)

 

coordinateSystem( (Context)Context, (str)name) -> None :
    This function marks the coordinate system defined by the current transformation
    with the name space and saves it. (Ref: RiSpec 3.2 p.58)

customStatistics(...)

 

customStatistics( (Context)Context, (str)template_string) -> str :
    Return a formatted statistics string. The string argument should contain the
    appropriate template placeholders for the stats to be formatted into.

exterior(...)

 

exterior( (Context)Context, (str)VolumeName) -> None :
    Sets the current Exterior volume shader. (Ref: RiSpec 3.2 p.48)

film(...)

 

film( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise the Film for rendering. Valid types are:
    - fleximage.

floatFramebuffer(...)

 

floatFramebuffer( (Context)Context) -> list :
    Returns the current post-processed LDR framebuffer in float format as a list.
    It is advisable to call updateFramebuffer() before calling this function.

framebuffer(...)

 

framebuffer( (Context)Context) -> list :
    Returns the current post-processed LDR framebuffer in RGB888 format as a list.
    It is advisable to call updateFramebuffer() before calling this function.

getAttribute(...)

 

getAttribute( (Context)arg1, (str)arg2, (str)Context) -> object :
    Retrieve a value from the Queryable registry

getAttributes(...)

 

getAttributes( (Context)Context) -> str :
    Retrieve the entire Queryable registry formatted as XML

getNetworkServerUpdateInterval(...)

 

getNetworkServerUpdateInterval( (Context)Context) -> int :
    Returns the network server update interval in seconds

interior(...)

 

interior( (Context)Context, (str)VolumeName) -> None :
    Set the current Interior volume shader. (Ref: RiSpec 3.2 p.47)

lightSource(...)

 

lightSource( (Context)Context, (str)type, (list)ParamSet) -> None :
    Create a light source of the specified type. Valid types are:
    - area
    - distant
    - goniometric
    - infinite
    - point
    - projection
    - sky
    - sun
    - sunsky (shortcut for sun + sky)
    - spot

makeNamedMaterial(...)

 

makeNamedMaterial( (Context)Context, (str)name, (list)ParamSet) -> None :
    Define a named material with the given name and type. See also material().

makeNamedVolume(...)

 

makeNamedVolume( (Context)Context, (str)name, (str)type, (list)ParamSet) -> None :
    Define a named volume with the given name and type. Not to be confused with the
    volume() system.

material(...)

 

material( (Context)Context, (str)type, (list)ParamSet) -> None :
    Define a material of the given type in the current scope. Valid types are:
    - carpaint
    - glass
    - glass2
    - glossy_lossy
    - glossy
    - matte
    - mattetranslucent
    - metal
    - mirror
    - mix
    - null
    - roughglass
    - shinymetal

motionInstance(...)

 

motionInstance( (Context)arg1, (str)arg2, (float)arg3, (float)arg4, (str)Context) -> None :
    Instantiates a moving object. See also objectInstance(). (Sim.: RiSpec 3.2 p.96).

objectBegin(...)

 

objectBegin( (Context)Context, (str)name) -> None :
    Define a named object that can be re-used with objectInstance().
    (Ref: RiSpec 3.2 p.94).

objectInstance(...)

 

objectInstance( (Context)Context, (str)name) -> None :
    Instatiate a named object defined within an objectBegin()/objectEnd() pair in
    the current scope. (Ref: RiSpec 3.2 p.95)

parse(...)

 

parse( (Context)Context, (str)filename, (bool)asynchronous) -> bool :
    Parse the given filename. This method expects a complete scene file as an
    argument, including a WorldEnd statement. If done asynchronously, control
    will pass immediately back to the python interpreter, otherwise this
    function blocks.

parsePartial(...)

 

parsePartial( (Context)Context, (str)filename, (bool)asynchronous) -> bool :
    Parse the given filename. This method doesn't expect the parsed file to be
    complete, so that additional API calls can be made in this Context.
    If done asynchronously, control will pass immediately back to the python
    interpreter, otherwise this function blocks.

pixelFilter(...)

 

pixelFilter( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise the pixel filter to use for rendering. Valid types are:
    - box
    - triangle
    - gaussian
    - mitchell
    - sinc

portalInstance(...)

 

portalInstance( (Context)Context, (str)name) -> None :
    Define instance as an "Exit Portal" shape. See objectInstance() and portalShape().

portalShape(...)

 

portalShape( (Context)Context, (str)type, (list)ParamSet) -> None :
    Define geometry as an "Exit Portal" shape. See shape().

printableStatistics(...)

 

printableStatistics( (Context)Context, (bool)add_total) -> str :
    Return a formatted statistics string. If add_total=True, then the Local and Net stats will be summed and also shown.

renderer(...)

 

renderer( (Context)Context, (str)type, (list)ParamSet) -> None :
    Choose the internal Renderer type. Valid types are:
    - sampler (traditional CPU renderer)
    - hybrid (combined CPU+GPU renderer)

reverseOrientation(...)

 

reverseOrientation( (Context)Context) -> None :
    Causes the orientation in the current scope to be reversed left->right or
    right->left handed. (Ref: RiSpec 3.2 p.53).

rotate(...)

 

rotate( (Context)Context, (float)degrees, (float)x, (float)y, (float)z) -> None :
    Concatenate a rotation of the given angle, about the given axis onto the current
    scope's transformation. (Ref: RiSpec 3.2 p.57)

sampler(...)

 

sampler( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise the sampler to use for rendering. Valid types are:
    - random
    - lowdiscrepancy
    - metropolis
    - erpt

saveEXR(...)

 

saveEXR( (Context)Context, (str)filename, (bool)useHalfFloat, (bool)includeZBuffer, (bool)tonemapped) -> None :
    Save the current image to EXR format, using the specified options

scale(...)

 

scale( (Context)Context, (float)x, (float)y, (float)z) -> None :
    Concatenate a scaling onto the current scope's transformation.
    (Ref: RiSpec 3.2 p.57)

setNetworkServerUpdateInterval(...)

 

setNetworkServerUpdateInterval( (Context)arg1, (TonemapKernels)Context) -> None :
    Sets the network server update interval in seconds

shape(...)

 

shape( (Context)Context, (str)type, (list)ParamSet) -> None :
    Define a geometry primitive in the current scope. Valid types are:
    - cone
    - cylinder
    - disk
    - heightfield
    - lenscomponent
    - loopsubdiv
    - nurbs
    - paraboloid
    - plymesh
    - sphere
    - trianglemesh
    - mesh

start(...)

 

start( (Context)Context) -> None :
    (+) Re-start local rendering threads after a pause()

statistics(...)

 

statistics( (Context)Context, (str)name) -> float :
    Return the named statistic from the current rendering. Valid statistic names are:
    - sceneIsReady : returns truthy if the scene has been built and is ready for rendering
    - filmIsReady : ?
    - terminated : ?
    - secElapsed : number of seconds since the rendering started
    - samplesSec : current local rendering speed in samples per second
    - samplesTotSec : current average total rendering speed in samples per second
    - samplesPx : current number of samples per pixel
    - efficiency : current rendering efficiency in percent
    - displayInterval : current framebuffer update/display interval in seconds
    - filmEV : current film Exposure Value
    - enoughSamples : returns truthy if the rendering has reached a haltspp condition

surfaceIntegrator(...)

 

surfaceIntegrator( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise the surface integrator to use for rendering. Valid types are:
    - bidirectional
    - directlighting
    - exphotonmap
    - path
    - distributedpath

texture(...)

 

texture( (Context)Context, (str)name, (str)variant, (str)type, (list)ParamSet) -> None :
    Define a texture shader in the current scope. Valid types are:
    - bilerp
    - checkerboard
    - constant
    - dots
    - fbm
    - imagemap
    - marble
    - mix
    - scale
    - uv
    - windy
    - wrinkled
    Lux also supports the textures found in Blender, prefixed with the name "blender_":
    - blender_blend
    - blender_clouds
    - blender_distortednoise
    - blender_magic
    - blender_marble
    - blender_musgrave
    - blender_noise
    - blender_stucci
    - blender_voronoi
    - blender_wood

transform(...)

 

transform( (Context)Context, (list)transform) -> None :
    Set the current scope's transformation matrix. (Ref: RiSpec 3.2 p.56)

transformBegin(...)

 

transformBegin( (Context)Context) -> None :
    Begin a new transformation scope, inheriting the transform from the parent scope.
    (Ref: RiSpec 3.2 p.59).

transformEnd(...)

 

transformEnd( (Context)Context) -> None :
    End the current transformation scope, reverting to the transformation of the parent
    scope. (Ref: RiSpec 3.2 p.59).

translate(...)

 

translate( (Context)Context, (float)x, (float)y, (float)z) -> None :
    Concatenate a translation onto the current scope's transformation.
    (Ref: RiSpec 3.2 p.57)

updateFramebuffer(...)

 

updateFramebuffer( (Context)Context) -> None :
    Process the raw virtual film through the tonemapping post-processing pipeline
    into the LDR framebuffer. Results can be fetched with the frameBuffer() call.

volume(...)

 

volume( (Context)Context, (str)type, (list)ParamSet) -> None :
    Define a bound volume object for volumetric effects. Valid types are:
    - exponential
    - homogenous

volumeIntegrator(...)

 

volumeIntegrator( (Context)Context, (str)type, (list)ParamSet) -> None :
    Initialise the volume integrator to use for rendering. Valid types are:
    - emission
    - single

wait(...)

 

wait( (Context)Context) -> None :
    Wait for rendering threads to complete. Unless some halt condition is set, or
    the process is otherwise interrupted, expect to wait() forever.

worldBegin(...)

 

worldBegin( (Context)Context) -> None :
    Specify that all rendering options shall be frozen, and that what commences is
    the description for the scene to be rendered. (Ref: RiSpec 3.2 p.17)

worldEnd(...)

 

worldEnd( (Context)Context) -> None :
    Ends the current scene description and starts the rendering process asynchronously
    in a single local thread. (Ref: RiSpec 3.2 p.17)

zBuffer(...)

 

zBuffer( (Context)Context) -> list :
    Returns the current Z buffer in float format as a list.
    It is advisable to call updateFramebuffer() before calling this function.


Property Details [hide private]

name

Get Method:
unreachable(...)