Module graphics3d
- A library for programming simple 3D graphics in occam-pi
A library for programming simple 3D graphics in occam-pi.
This library provides for simple 3D graphics in occam-pi, using simple rasters.
Note: the general [serial] techniques/algorithms used in this library are based on code from lightsrc.cpp and glenz.cpp by Marcus Lindblom.
Index
-
Protocol
G3D.ALL.CONTROL
- Overall control for graphics pipeline-
Tag
reset.all
- Reset all components to default state
-
Tag
-
Protocol
G3D.GEN.CONTROL
- Polygon points generator control-
Tag
add.scale
- Add to the current scale -
Tag
add.trans
- Add to the current translation -
Tag
relink
- Reconnect I/O channels -
Tag
reset
- Reset generator to default state -
Tag
set.scale
- Absolutely set the scale -
Tag
set.trans
- Absolutely set the translation
-
Tag
-
Constant
G3D.MAX.POLY.POINTS
- Maximum number of points in a polygon (see ) -
Constant
G3D.MAX.SCAN.HEIGHT
- Maximum height of any particular polygon -
Protocol
G3D.PGN.CONTROL
- Polygon generator control-
Tag
reset
- Reset polygon generator to default state -
Tag
set.backfaces
- Whether back faces of solid objects should be generated -
Tag
set.face.colour
- Set individual face colour -
Tag
set.face.colours
- Set all face colours -
Tag
set.polyid
- Set polygon ID (0-255) -
Tag
set.trimap
- Generate triangular polygons only
-
Tag
-
Record
G3D.POINT2
- Integer point in 2D space -
Record
G3D.POINT2.3
- Integer point in 2D space, original Z multiplied up -
Record
G3D.POINT3
- Real point in 3D space (REAL32s) -
Record
G3D.POLY
- General polygon in 2D space, orignal Z multiplied up -
Record
G3D.POLY.SCAN
- Scan-line converted polygon in 2D space -
Protocol
G3D.PRJ.CONTROL
- Polygon points 3D-to-2D projection control-
Tag
reset
- Reset projector to default state -
Tag
set.2dshift
- Set 2D translation -
Tag
set.3dshift
- Set 3D translation (applied before projection) -
Tag
set.scaling
- Set 2D scaling -
Tag
set.zdepth
- Set Z depth offset (pushes scene away from camera)
-
Tag
-
Protocol
G3D.PSC.CONTROL
- Polygon scan-line generator control-
Tag
reset
- Resets scan-line generator to default state -
Tag
set.zcolour
- Whether the pixel colour used is adjusted for Z depth
-
Tag
-
Protocol
G3D.RDR.CONTROL
- Polygon render (shader) control-
Tag
reset
- Resets shader to default state -
Tag
set.mode
- Set shader mode (see )
-
Tag
-
Protocol
G3D.RENDER.ENGINE.LINK
- Graphics pipeline link protocol-
Tag
raster
- Raster to render on and forward -
Tag
set.next
- Set the next renderer in the pipeline
-
Tag
-
Group
G3D.RENDER.MODE
- polygon rendering modes-
Constant
G3D.RENDER.MODE.GLENZ
- Glenz-effect shading -
Constant
G3D.RENDER.MODE.NONE
- Constant shading -
Constant
G3D.RENDER.MODE.NORM
- Normal vector based shading
-
Constant
-
Protocol
G3D.ROT.CONTROL
- Points rotation control-
Tag
add.increment
- Add to the increment -
Tag
reset
- Reset rotation to default state -
Tag
set.angle
- Absolutely set the angle of rotation -
Tag
set.increment
- Absolutely set the increment -
Tag
set.mode
- Set the rotation mode (see )
-
Tag
-
Group
G3D.ROTATE.MODE
- point/polygon rotation modes-
Constant
G3D.ROTATE.MODE.DEMO
- Demo-effect rotations -
Constant
G3D.ROTATE.MODE.NONE
- No rotation -
Constant
G3D.ROTATE.MODE.NX
- Negative rotate on X axis -
Constant
G3D.ROTATE.MODE.NY
- Negative rotate on Y axis -
Constant
G3D.ROTATE.MODE.NZ
- Negative rotate on Z axis -
Constant
G3D.ROTATE.MODE.X
- Rotate on X axis -
Constant
G3D.ROTATE.MODE.Y
- Rotate on Y axis -
Constant
G3D.ROTATE.MODE.Z
- Rotate on Z axis
-
Constant
-
Group
G3D.SCENE.RO
- Scene rotation ordering-
Constant
G3D.SCENE.RO.NONE
- No rotations applied -
Constant
G3D.SCENE.RO.X
- Rotate on X axis only -
Constant
G3D.SCENE.RO.XY
- Rotate on X then Y -
Constant
G3D.SCENE.RO.XYZ
- Rotate on X then Y then Z -
Constant
G3D.SCENE.RO.XZ
- Rotate on X then Z -
Constant
G3D.SCENE.RO.XZY
- Rotate on X then Z then Y -
Constant
G3D.SCENE.RO.Y
- Rotate on Y axis only -
Constant
G3D.SCENE.RO.YX
- Rotate on Y then X -
Constant
G3D.SCENE.RO.YXZ
- Rotate on Y then X then Z -
Constant
G3D.SCENE.RO.YZ
- Rotate on Y then Z -
Constant
G3D.SCENE.RO.YZX
- Rotate on Y then Z then X -
Constant
G3D.SCENE.RO.Z
- Rotate on Z axis only -
Constant
G3D.SCENE.RO.ZX
- Rotate on Z then X -
Constant
G3D.SCENE.RO.ZXY
- Rotate on Z then X then Y -
Constant
G3D.SCENE.RO.ZY
- Rotate on Z then Y -
Constant
G3D.SCENE.RO.ZYX
- Rotate on Z then Y then X
-
Constant
-
Protocol
G3D.SCENE.TRANS.LINK
- Scene rotate pipeline link protocol-
Tag
reset
- Reset to default settings -
Tag
set.next
- Set the next scene transformer in a pipeline -
Tag
set.post.3dshift
- Set 3D shift (after rotation, determines camera position) -
Tag
set.pre.3dshift
- Set 3D shift (before rotation, determines centre of scene) -
Tag
set.rot.angles
- Set rotations in X, Y and Z planes -
Tag
set.rot.diffs
- Set differences for continuous rotation -
Tag
set.rot.order
- Set rotation order (see ) -
Tag
set.xyscale
- Set X-Y scaling (lens angle)
-
Tag
-
Protocol
G3D.SCL.CONTROL
- Points scaler control-
Tag
reset
- Reset scale to default state (1, 1, 1) -
Tag
set.3dscale
- Set 3D scaling
-
Tag
-
Protocol
G3D.TMR.CONTROL
- Graphics pipeline speed control-
Tag
faster
- Go faster -
Tag
pause
- Pause/unpause the rasters flowing through the network -
Tag
reset
- Resets the timer control -
Tag
set.fps
- Set frames-per-second absolutely -
Tag
slower
- Go slower
-
Tag
-
Protocol
G3D.TRN.CONTROL
- Points translation control-
Tag
reset
- Reset translation to default state (0, 0, 0) -
Tag
set.3dshift
- Set 3D translation
-
Tag
-
Data type
ZBUFFER
- Z-buffer is a 2D array of integers, passed around with rasters -
Process
butterfly.network
- Implements a butterfly that flaps around a particular path -
Process
butterfly.network.spawn
- Dynamically spawns a new 'butterfly.network' -
Process
chessboard.network
- Implements a basic chess board (zdepth style) -
Process
chessboard.network.spawn
- Spawns a new 'chessboard.network' -
Process
chessboardify.points
- Turns chessboard points into polygons -
Process
chessboardpoints.generator
- Chess board points generator -
Process
chessify.points
- Generates chess-style polygons from points -
Process
chesspiece.network
- Implements a basic chess piece (zdepth style) -
Process
chesspiece.network.spawn
- Dynamically spawns a new 'chesspiece.network' -
Process
chesspoints.generator
- Chess piece points generator -
Process
cogify.points
- Generates cog polygons from cog-points -
Process
cogpoints.generator
- Cog points generator -
Process
cubepoints.generator
- Cube point generator -
Process
cubify.points
- Generates cube polygons from cube points -
Process
fbypoints.generator
- Inmos butterfly logo generator -
Process
flatpolify.points
- Generates flat polygons from poly-points -
Process
flatpolypoints.generator
- Flat 3D polygon generator -
Process
flutterby.points
- Generates polygons representing the Inmos style butterfly logo -
Process
g3d.gen.control.delta
- Delta for protocol -
Process
g3d.pgn.control.delta
- Delta for protocol -
Process
g3d.point2.3.delta
- Delta for mobile arrays of the type -
Process
g3d.point2.delta
- Delta for mobile arrays of the type -
Process
g3d.point3.delta
- Delta for mobile arrays of the type -
Process
g3d.poly.delta
- Delta for mobile arrays of the type -
Process
g3d.poly.scan.delta
- Delta for mobile arrays of the type -
Process
g3d.prj.control.delta
- Delta for protocol -
Process
g3d.psc.control.delta
- Delta for protocol -
Process
g3d.rdr.control.delta
- Delta for protocol -
Process
g3d.rot.control.delta
- Delta for protocol -
Process
g3d.scene.camera
- Implements a standard camera, controlled by the user -
Process
g3d.scene.head
- Provides a scene "head", for combined rotation/translation/etc -
Process
g3d.scene.spawn
- Dynamically spawns a new scene head -
Process
glenz.cog.network
- Implements a basic "Glenz cog" -
Process
glenz.cog.network.spawn
- Dynamically spawns a new 'glenz.cog.network' -
Process
glenz.flatpoly.network
- Implements a basic regular polygon (glenz style) -
Process
glenz.flatpoly.network.spawn
- Dynamically spawns a new 'glenz.flatpoly.network' -
Process
glenz.network
- Implements a basic "Glenz cube" -
Process
glenz.network.spawn
- Dynamically spawns a new 'glenz.network' -
Process
glenz.network2
- Implements a basic "Glenz cube" -
Process
glenz.network2.spawn
- Dynamically spawns a new 'glenz.network2' -
Variable
link?
- Link channel -
Variable
link?
- Link channel -
Process
normal.network
- Implements a basic "Normal cube" -
Process
normal.network.spawn
- Dynamically spawns a new 'normal.network' -
Process
normal.network2
- Implements a basic "Glenz cube" -
Process
normal.network2.spawn
- Dynamically spawns a new 'normal.network2' -
Process
planar.path
- Moves a 3D object around a plane following an elliptical path -
Process
points.3d.to.2d3
- Projects 3D points into 2D, preserves Z information -
Process
points3d.rotate
- Point rotator -
Process
points3d.scale
- Point scaler -
Process
points3d.translate
- Point translator -
Process
points3d.transrotate
- Performs translation and rotation on 3D points (used in camera/scene handling) -
Process
points3d.transrotate.prj
- Performs translation and rotation on 3D points (used in camera/scene handling) -
Process
poly.scanlines
- Converts polygons to scan-line data -
Process
raster.buffer
- Simple raster buffer -
Process
raster.chain
- Implements raster render chain -
Process
raster.chain.head
- Head of the raster render chain -
Process
raster.chain.tail
- Tail of the raster render chain -
Process
raster.clearer
- Clears rasters -
Process
raster.fader
- Fades rasters -
Process
raster.polyidclick
- Connects into the raster chain and event pipeline to extract IDs (0-255) of polygons -
Process
raster.timed.buffer
- Timed raster buffer -
Process
render.polyframe
- Renders polygons as a series of lines (wireframe) -
Process
render.polyframe.trigger
- Renders polygons as a series of lines (wireframe) -
Process
render.polyscans
- Renders polygon scan-line data onto a raster -
Process
render.polyscans.trigger
- Renders polygon scan-line data onto a raster, sends triggers back to generator process -
Process
rotate.orchestra1
- Orchestrates components -
Process
screen.cube
- Implements an on-screen cube showing the image boundary -
Process
screen.cube.spawn
- Dynamically spawns a new 'screen.cube' -
Process
zdepth.flatpoly.network
- Implements a basic regular polygon (zdepth style) -
Process
zdepth.flatpoly.network.spawn
- Dynamically spawns a new 'zdepth.flatpoly.network'
Declarations
graphics3d.inc
:41Constant G3D.MAX.POLY.POINTS
VAL INT G3D.MAX.POLY.POINTS
Maximum number of points in a polygon (see G3D.POLY
).
graphics3d.inc
:44Constant G3D.MAX.SCAN.HEIGHT
VAL INT G3D.MAX.SCAN.HEIGHT
Maximum height of any particular polygon.
graphics3d.inc
:46Group G3D.RENDER.MODE
polygon rendering modes.
graphics3d.inc
:47Constant G3D.RENDER.MODE.NONE
VAL INT G3D.RENDER.MODE.NONE
Constant shading.
graphics3d.inc
:48Constant G3D.RENDER.MODE.GLENZ
VAL INT G3D.RENDER.MODE.GLENZ
Glenz-effect shading.
graphics3d.inc
:49Constant G3D.RENDER.MODE.NORM
VAL INT G3D.RENDER.MODE.NORM
Normal vector based shading.
graphics3d.inc
:51Group G3D.ROTATE.MODE
point/polygon rotation modes.
graphics3d.inc
:52Constant G3D.ROTATE.MODE.NONE
VAL INT G3D.ROTATE.MODE.NONE
No rotation.
graphics3d.inc
:53Constant G3D.ROTATE.MODE.DEMO
VAL INT G3D.ROTATE.MODE.DEMO
Demo-effect rotations.
graphics3d.inc
:54Constant G3D.ROTATE.MODE.X
VAL INT G3D.ROTATE.MODE.X
Rotate on X axis.
graphics3d.inc
:55Constant G3D.ROTATE.MODE.NX
VAL INT G3D.ROTATE.MODE.NX
Negative rotate on X axis.
graphics3d.inc
:56Constant G3D.ROTATE.MODE.Y
VAL INT G3D.ROTATE.MODE.Y
Rotate on Y axis.
graphics3d.inc
:57Constant G3D.ROTATE.MODE.NY
VAL INT G3D.ROTATE.MODE.NY
Negative rotate on Y axis.
graphics3d.inc
:58Constant G3D.ROTATE.MODE.Z
VAL INT G3D.ROTATE.MODE.Z
Rotate on Z axis.
graphics3d.inc
:59Constant G3D.ROTATE.MODE.NZ
VAL INT G3D.ROTATE.MODE.NZ
Negative rotate on Z axis.
graphics3d.inc
:65Record G3D.POINT3
DATA TYPE G3D.POINT3
Real point in 3D space (REAL32s).
graphics3d.inc
:71Record G3D.POINT2.3
DATA TYPE G3D.POINT2.3
Integer point in 2D space, original Z multiplied up.
graphics3d.inc
:77Record G3D.POINT2
DATA TYPE G3D.POINT2
Integer point in 2D space.
graphics3d.inc
:84Record G3D.POLY
DATA TYPE G3D.POLY
General polygon in 2D space, orignal Z multiplied up.
graphics3d.inc
:96Record G3D.POLY.SCAN
DATA TYPE G3D.POLY.SCAN
Scan-line converted polygon in 2D space.
graphics3d.inc
:112Data type ZBUFFER
DATA TYPE ZBUFFER
Z-buffer is a 2D array of integers, passed around with rasters.
graphics3d.inc
:120Protocol G3D.GEN.CONTROL
PROTOCOL G3D.GEN.CONTROL
Polygon points generator control.
graphics3d.inc
:122Tag reset
reset
Reset generator to default state.
graphics3d.inc
:123Tag add.scale
add.scale; [3]REAL32
Add to the current scale.
graphics3d.inc
:124Tag set.scale
set.scale; [3]REAL32
Absolutely set the scale.
graphics3d.inc
:125Tag add.trans
add.trans; [3]REAL32
Add to the current translation.
graphics3d.inc
:126Tag set.trans
set.trans; [3]REAL32
Absolutely set the translation.
graphics3d.inc
:127Tag relink
relink; G3D.GEN.LINK?
Reconnect I/O channels.
graphics3d.inc
:131Protocol G3D.ROT.CONTROL
PROTOCOL G3D.ROT.CONTROL
Points rotation control.
graphics3d.inc
:133Tag reset
reset
Reset rotation to default state.
graphics3d.inc
:134Tag add.increment
add.increment; REAL32
Add to the increment.
graphics3d.inc
:135Tag set.increment
set.increment; REAL32
Absolutely set the increment.
graphics3d.inc
:136Tag set.angle
set.angle; REAL32
Absolutely set the angle of rotation.
graphics3d.inc
:141Protocol G3D.TRN.CONTROL
PROTOCOL G3D.TRN.CONTROL
Points translation control.
graphics3d.inc
:143Tag reset
reset
Reset translation to default state (0, 0, 0).
graphics3d.inc
:144Tag set.3dshift
set.3dshift; [3]REAL32
Set 3D translation.
graphics3d.inc
:148Protocol G3D.SCL.CONTROL
PROTOCOL G3D.SCL.CONTROL
Points scaler control.
graphics3d.inc
:150Tag reset
reset
Reset scale to default state (1, 1, 1)
graphics3d.inc
:151Tag set.3dscale
set.3dscale; [3]REAL32
Set 3D scaling.
graphics3d.inc
:155Protocol G3D.PRJ.CONTROL
PROTOCOL G3D.PRJ.CONTROL
Polygon points 3D-to-2D projection control.
graphics3d.inc
:157Tag reset
reset
Reset projector to default state.
graphics3d.inc
:158Tag set.scaling
set.scaling; [2]REAL32
Set 2D scaling.
graphics3d.inc
:159Tag set.zdepth
set.zdepth; REAL32
Set Z depth offset (pushes scene away from camera).
graphics3d.inc
:160Tag set.2dshift
set.2dshift; [2]INT
Set 2D translation.
graphics3d.inc
:161Tag set.3dshift
set.3dshift; [3]REAL32
Set 3D translation (applied before projection).
graphics3d.inc
:165Protocol G3D.PGN.CONTROL
PROTOCOL G3D.PGN.CONTROL
Polygon generator control.
graphics3d.inc
:167Tag reset
reset
Reset polygon generator to default state.
graphics3d.inc
:168Tag set.trimap
set.trimap; BOOL
Generate triangular polygons only.
graphics3d.inc
:169Tag set.backfaces
set.backfaces; BOOL
Whether back faces of solid objects should be generated.
graphics3d.inc
:170Tag set.face.colour
set.face.colour; INT; INT
Set individual face colour.
graphics3d.inc
:171Tag set.face.colours
set.face.colours; MOBILE []INT
Set all face colours.
graphics3d.inc
:172Tag set.polyid
set.polyid; INT
Set polygon ID (0-255).
graphics3d.inc
:176Protocol G3D.PSC.CONTROL
PROTOCOL G3D.PSC.CONTROL
Polygon scan-line generator control.
graphics3d.inc
:178Tag reset
reset
Resets scan-line generator to default state.
graphics3d.inc
:179Tag set.zcolour
set.zcolour; BOOL
Whether the pixel colour used is adjusted for Z depth.
graphics3d.inc
:183Protocol G3D.RDR.CONTROL
PROTOCOL G3D.RDR.CONTROL
Polygon render (shader) control.
graphics3d.inc
:185Tag reset
reset
Resets shader to default state.
graphics3d.inc
:190Protocol G3D.ALL.CONTROL
PROTOCOL G3D.ALL.CONTROL
Overall control for graphics pipeline.
graphics3d.inc
:192Tag reset.all
reset.all
Reset all components to default state.
graphics3d.inc
:196Protocol G3D.TMR.CONTROL
PROTOCOL G3D.TMR.CONTROL
Graphics pipeline speed control.
graphics3d.inc
:198Tag reset
reset
Resets the timer control.
graphics3d.inc
:199Tag pause
pause
Pause/unpause the rasters flowing through the network.
graphics3d.inc
:200Tag faster
faster
Go faster.
graphics3d.inc
:201Tag slower
slower
Go slower.
graphics3d.inc
:202Tag set.fps
set.fps; INT
Set frames-per-second absolutely.
graphics3d.inc
:220Protocol G3D.RENDER.ENGINE.LINK
PROTOCOL G3D.RENDER.ENGINE.LINK
Graphics pipeline link protocol.
graphics3d.inc
:222Tag raster
raster; RASTER; ZBUFFER
Raster to render on and forward.
graphics3d.inc
:223Tag set.next
set.next; INT; G3D.RENDER.ENGINE!
Set the next renderer in the pipeline.
graphics3d.inc
:230Variable link?
CHAN G3D.RENDER.ENGINE.LINK
Link channel.
graphics3d.inc
:236Group G3D.SCENE.RO
Scene rotation ordering.
graphics3d.inc
:237Constant G3D.SCENE.RO.NONE
VAL INT G3D.SCENE.RO.NONE
No rotations applied
graphics3d.inc
:238Constant G3D.SCENE.RO.X
VAL INT G3D.SCENE.RO.X
Rotate on X axis only.
graphics3d.inc
:239Constant G3D.SCENE.RO.Y
VAL INT G3D.SCENE.RO.Y
Rotate on Y axis only.
graphics3d.inc
:240Constant G3D.SCENE.RO.Z
VAL INT G3D.SCENE.RO.Z
Rotate on Z axis only.
graphics3d.inc
:241Constant G3D.SCENE.RO.YX
VAL INT G3D.SCENE.RO.YX
Rotate on Y then X.
graphics3d.inc
:242Constant G3D.SCENE.RO.ZX
VAL INT G3D.SCENE.RO.ZX
Rotate on Z then X.
graphics3d.inc
:243Constant G3D.SCENE.RO.XY
VAL INT G3D.SCENE.RO.XY
Rotate on X then Y.
graphics3d.inc
:244Constant G3D.SCENE.RO.ZY
VAL INT G3D.SCENE.RO.ZY
Rotate on Z then Y.
graphics3d.inc
:245Constant G3D.SCENE.RO.XZ
VAL INT G3D.SCENE.RO.XZ
Rotate on X then Z.
graphics3d.inc
:246Constant G3D.SCENE.RO.YZ
VAL INT G3D.SCENE.RO.YZ
Rotate on Y then Z.
graphics3d.inc
:247Constant G3D.SCENE.RO.ZYX
VAL INT G3D.SCENE.RO.ZYX
Rotate on Z then Y then X.
graphics3d.inc
:248Constant G3D.SCENE.RO.YZX
VAL INT G3D.SCENE.RO.YZX
Rotate on Y then Z then X.
graphics3d.inc
:249Constant G3D.SCENE.RO.ZXY
VAL INT G3D.SCENE.RO.ZXY
Rotate on Z then X then Y.
graphics3d.inc
:250Constant G3D.SCENE.RO.XZY
VAL INT G3D.SCENE.RO.XZY
Rotate on X then Z then Y.
graphics3d.inc
:251Constant G3D.SCENE.RO.YXZ
VAL INT G3D.SCENE.RO.YXZ
Rotate on Y then X then Z.
graphics3d.inc
:252Constant G3D.SCENE.RO.XYZ
VAL INT G3D.SCENE.RO.XYZ
Rotate on X then Y then Z.
graphics3d.inc
:262Protocol G3D.SCENE.TRANS.LINK
PROTOCOL G3D.SCENE.TRANS.LINK
Scene rotate pipeline link protocol.
graphics3d.inc
:264Tag reset
reset
Reset to default settings.
graphics3d.inc
:265Tag set.pre.3dshift
set.pre.3dshift; [3]REAL32
Set 3D shift (before rotation, determines centre of scene).
graphics3d.inc
:266Tag set.rot.angles
set.rot.angles; [3]REAL32
Set rotations in X, Y and Z planes.
graphics3d.inc
:268Tag set.rot.diffs
set.rot.diffs; [3]REAL32
Set differences for continuous rotation.
graphics3d.inc
:269Tag set.post.3dshift
set.post.3dshift; [3]REAL32
Set 3D shift (after rotation, determines camera position).
graphics3d.inc
:270Tag set.xyscale
set.xyscale; [2]REAL32
Set X-Y scaling (lens angle).
graphics3d.inc
:272Tag set.next
set.next; INT; G3D.SCENE.TRANS!
Set the next scene transformer in a pipeline.
graphics3d.inc
:279Variable link?
CHAN G3D.SCENE.TRANS.LINK
Link channel.
rasterutil.occ
:30Process raster.buffer
PROC raster.buffer (CHAN RASTER in?, out!)
Simple raster buffer. Basic raster buffer process.
Parameters:
CHAN RASTER |
in |
Rasters in |
CHAN RASTER |
out |
Rasters out |
rasterutil.occ
:46Process raster.timed.buffer
PROC raster.timed.buffer (CHAN RASTER in?, out!, VAL INT fps, CHAN G3D.TMR.CONTROL ctrl?)
Timed raster buffer. Basic raster buffer process, but limits speed through at specified number of frames-per-second.
Parameters:
CHAN RASTER |
in |
Rasters in |
CHAN RASTER |
out |
Rasters out |
VAL INT |
fps |
Frames per second |
CHAN G3D.TMR.CONTROL |
ctrl |
Control channel |
rasterutil.occ
:104Process raster.fader
PROC raster.fader (CHAN RASTER in?, out!)
Fades rasters. Raster buffer that reduces the colour level of each of the components.
Parameters:
CHAN RASTER |
in |
Rasters in |
CHAN RASTER |
out |
Rasters out |
rasterutil.occ
:126Process raster.clearer
PROC raster.clearer (CHAN RASTER in?, out!)
Clears rasters. Raster buffer that clears rasters as they go through.
Parameters:
CHAN RASTER |
in |
Rasters in |
CHAN RASTER |
out |
Rasters out |
g3dchess.occ
:197Process chesspoints.generator
PROC chesspoints.generator (CHAN INT trigger?, VAL INT npoints, piece, VAL [][2]REAL32 profile, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Chess piece points generator.
Parameters:
CHAN INT |
trigger |
Trigger channel. |
VAL INT |
npoints |
Number of points around the outside. |
VAL INT |
piece |
Particular piece (defines how the topping is handled, see G3D.CP ). |
VAL [][2]REAL32 |
profile |
Y/rad pairs for the piece. |
CHAN MOBILE []G3D.POINT3 |
out |
Generated points. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
g3dchess.occ
:322Process chessboardpoints.generator
PROC chessboardpoints.generator (CHAN INT trigger?, VAL INT dim, VAL REAL32 width, height, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Chess board points generator.
Parameters:
CHAN INT |
trigger |
Trigger channel. |
VAL INT |
dim |
Number of squares along one edge. |
VAL REAL32 |
width |
Width of each square. |
VAL REAL32 |
height |
Height of the board. |
CHAN MOBILE []G3D.POINT3 |
out |
Generated points. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
g3dchess.occ
:343Process chessify.points
PROC chessify.points (CHAN MOBILE []G3D.POINT2.3 in?, VAL INT npoints, piece, VAL [][2]REAL32 profile, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?, CHAN BOOL hide?)
Generates chess-style polygons from points.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in. |
VAL INT |
npoints |
Number of points around the base of the object. |
VAL INT |
piece |
Particular piece (defines how the topping is handled, see G3D.CP ). |
VAL [][2]REAL32 |
profile |
Profile for the piece. |
CHAN MOBILE []G3D.POLY |
out |
Polygons out. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
CHAN BOOL |
hide |
Hide control channel. |
g3dchess.occ
:739Process chessboardify.points
PROC chessboardify.points (CHAN MOBILE []G3D.POINT2.3 in?, VAL INT dim, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?)
Turns chessboard points into polygons.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in. |
VAL INT |
dim |
Number of squares along one edge. |
CHAN MOBILE []G3D.POLY |
out |
Generated points. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
g3dchess.occ
:764Process chesspiece.network
PROC chesspiece.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, piece, npoints, bdim, VAL REAL32 sqw, bh, G3DC.PIECE.CTL? svr, G3D.SCENE.TRANS? sct)
Implements a basic chess piece (zdepth style).
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL INT |
piece |
Particular piece (see G3D.CP ). |
VAL INT |
npoints |
Number of points around the circumference. |
VAL INT |
bdim |
Board dimension. |
VAL REAL32 |
sqw |
Board square width. |
VAL REAL32 |
bh |
Board height. |
G3DC.PIECE.CTL? |
svr |
Piece control channel-end. |
G3D.SCENE.TRANS? |
sct |
Scene transform control channel-end. |
g3dchess.occ
:915Process chesspiece.network.spawn
PROC chesspiece.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!, VAL INT piece, npoints, bdim, VAL REAL32 sqw, bh, RESULT G3DC.PIECE.CTL! pctl, RESULT G3D.SCENE.TRANS! sti)
Dynamically spawns a new 'chesspiece.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
VAL INT |
piece |
Particular piece (see G3D.CP ). |
VAL INT |
npoints |
Number of points around the circumference. |
VAL INT |
bdim |
Board dimension. |
VAL REAL32 |
sqw |
Board square width. |
VAL REAL32 |
bh |
Board height. |
RESULT G3DC.PIECE.CTL! |
pctl |
Piece control channel-end (returned). |
RESULT G3D.SCENE.TRANS! |
sti |
Returned scene transform client channel-end. |
g3dchess.occ
:941Process chessboard.network
PROC chessboard.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, dim, polyid, VAL REAL32 sqw, bh, G3D.SCENE.TRANS? sct)
Implements a basic chess board (zdepth style).
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL INT |
dim |
Board dimension. |
VAL INT |
polyid |
Polygon id (0-255 or +256 for incrementing). |
VAL REAL32 |
sqw |
Width of each square. |
VAL REAL32 |
bh |
Board height. |
G3D.SCENE.TRANS? |
sct |
Scene transform control. |
g3dchess.occ
:981Process chessboard.network.spawn
PROC chessboard.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!, VAL INT dim, polyid, VAL REAL32 sqw, bh, RESULT G3D.SCENE.TRANS! sti)
Spawns a new 'chessboard.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
VAL INT |
dim |
Board dimension. |
VAL INT |
polyid |
Polygon id (0-255 or +256 for incrementing). |
VAL REAL32 |
sqw |
Size of each square. |
VAL REAL32 |
bh |
Board height. |
RESULT G3D.SCENE.TRANS! |
sti |
Returned scene-transform client channel-end. |
g3dnets.occ
:35Process rotate.orchestra1
PROC rotate.orchestra1 (CHAN G3D.ROT.CONTROL rot.out!)
Orchestrates components.
Parameters:
CHAN G3D.ROT.CONTROL |
rot.out |
Rotation control out. |
g3dnets.occ
:71Process planar.path
PROC planar.path (CHAN G3D.PRJ.CONTROL out!, VAL REAL32 xrad, zrad, pangle, iangle, VAL INT islow, VAL [3]REAL32 pos)
Moves a 3D object around a plane following an elliptical path.
Parameters:
CHAN G3D.PRJ.CONTROL |
out |
Projection control. |
VAL REAL32 |
xrad |
X-radius of path. |
VAL REAL32 |
zrad |
Z-radius of path. |
VAL REAL32 |
pangle |
Tilt in XY plane of the path. |
VAL REAL32 |
iangle |
Tilt in XZ plane of the path. |
VAL INT |
islow |
Slow-down setting |
VAL [3]REAL32 |
pos |
Initial position. |
g3dnets.occ
:101Process glenz.network
PROC glenz.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height)
Implements a basic "Glenz cube".
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
g3dnets.occ
:139Process glenz.network.spawn
PROC glenz.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'glenz.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:155Process normal.network
PROC normal.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height)
Implements a basic "Normal cube".
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
g3dnets.occ
:193Process normal.network.spawn
PROC normal.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'normal.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:209Process glenz.network2
PROC glenz.network2 (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height)
Implements a basic "Glenz cube".
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
g3dnets.occ
:252Process glenz.network2.spawn
PROC glenz.network2.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'glenz.network2'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:268Process normal.network2
PROC normal.network2 (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height)
Implements a basic "Glenz cube".
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
g3dnets.occ
:309Process normal.network2.spawn
PROC normal.network2.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'normal.network2'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:325Process screen.cube
PROC screen.cube (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height)
Implements an on-screen cube showing the image boundary
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
g3dnets.occ
:358Process screen.cube.spawn
PROC screen.cube.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'screen.cube'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:375Process butterfly.network
PROC butterfly.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, VAL BOOL rpix)
Implements a butterfly that flaps around a particular path.
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL BOOL |
rpix |
Random initial placement. |
g3dnets.occ
:476Process butterfly.network.spawn
PROC butterfly.network.spawn (VAL INT width, height, VAL BOOL rpix, CHAN G3D.RENDER.ENGINE! new.link!)
Dynamically spawns a new 'butterfly.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
VAL BOOL |
rpix |
Random initial placement. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
g3dnets.occ
:497Process glenz.cog.network
PROC glenz.cog.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, nteeth, VAL REAL32 i.rad, o.rad, i.ang, o.ang)
Implements a basic "Glenz cog".
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL INT |
nteeth |
Number of teeth. |
VAL REAL32 |
i.rad |
Inner radius. |
VAL REAL32 |
o.rad |
Outer radius. |
VAL REAL32 |
i.ang |
Inner angle. |
VAL REAL32 |
o.ang |
Outer angle. |
g3dnets.occ
:541Process glenz.cog.network.spawn
PROC glenz.cog.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!, VAL INT nteeth, VAL REAL32 i.rad, o.rad, i.ang, o.ang)
Dynamically spawns a new 'glenz.cog.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
VAL INT |
nteeth |
Number of teeth. |
VAL REAL32 |
i.rad |
Inner radius. |
VAL REAL32 |
o.rad |
Outer radius. |
VAL REAL32 |
i.ang |
Inner angle. |
VAL REAL32 |
o.ang |
Outer angle. |
g3dnets.occ
:559Process glenz.flatpoly.network
PROC glenz.flatpoly.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, npoints, VAL REAL32 rad)
Implements a basic regular polygon (glenz style).
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL INT |
npoints |
Number of points. |
VAL REAL32 |
rad |
Radius. |
g3dnets.occ
:600Process glenz.flatpoly.network.spawn
PROC glenz.flatpoly.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!, VAL INT npoints, VAL REAL32 rad)
Dynamically spawns a new 'glenz.flatpoly.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
VAL INT |
npoints |
Number of points |
VAL REAL32 |
rad |
Radius. |
g3dnets.occ
:618Process zdepth.flatpoly.network
PROC zdepth.flatpoly.network (G3D.RENDER.ENGINE? rlink.in, VAL INT width, height, npoints, VAL REAL32 rad)
Implements a basic regular polygon (zdepth style).
Parameters:
G3D.RENDER.ENGINE? |
rlink.in |
Render link. |
VAL INT |
width |
Width of raster. |
VAL INT |
height |
Height of raster. |
VAL INT |
npoints |
Number of points. |
VAL REAL32 |
rad |
Radius. |
g3dnets.occ
:660Process zdepth.flatpoly.network.spawn
PROC zdepth.flatpoly.network.spawn (VAL INT width, height, CHAN G3D.RENDER.ENGINE! new.link!, VAL INT npoints, VAL REAL32 rad)
Dynamically spawns a new 'zdepth.flatpoly.network'.
Parameters:
VAL INT |
width |
Raster width. |
VAL INT |
height |
Raster height. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel to communicate new object link. |
VAL INT |
npoints |
Number of points |
VAL REAL32 |
rad |
Radius. |
graphics3d.occ
:95Process flatpolypoints.generator
PROC flatpolypoints.generator (CHAN INT trigger?, VAL INT npoints, VAL REAL32 rad, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Flat 3D polygon generator. Generates a regular N-sided polygon in 3D space (laying down flat by default).
Parameters:
CHAN INT |
trigger |
Trigger channel. |
VAL INT |
npoints |
Number of points. |
VAL REAL32 |
rad |
Radius (of points from centre). |
CHAN MOBILE []G3D.POINT3 |
out |
Generated points. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:190Process cogpoints.generator
PROC cogpoints.generator (CHAN INT trigger?, VAL INT nteeth, VAL REAL32 i.rad, o.rad, i.ang, o.ang, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Cog points generator. Generates a stream of points that represent a cog in 3D space (laying down flat by default).
Parameters:
CHAN INT |
trigger |
Trigger channel. |
VAL INT |
nteeth |
Number of teeth on the cog. |
VAL REAL32 |
i.rad |
Inner radius (where teeth start). |
VAL REAL32 |
o.rad |
Outer raduis (where teeth end). |
VAL REAL32 |
i.ang |
Inner tooth angle (between teeth bottoms). |
VAL REAL32 |
o.ang |
Outer tooth angle (of teeth ends). |
CHAN MOBILE []G3D.POINT3 |
out |
Generated points. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:295Process cubepoints.generator
PROC cubepoints.generator (CHAN INT trigger?, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Cube point generator. Generates a constant stream of points that represent a cube in 3D space.
Parameters:
CHAN INT |
trigger |
Trigger channel. |
CHAN MOBILE []G3D.POINT3 |
out |
Points generated. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:379Process fbypoints.generator
PROC fbypoints.generator (CHAN INT trigger?, CHAN MOBILE []G3D.POINT3 out!, CHAN G3D.GEN.CONTROL ctrl?)
Inmos butterfly logo generator. The pixel positions were generated by tracing from an Inmos promotional video showing the butterflies running on a Transputer network.
Parameters:
CHAN INT |
trigger |
Trigger channel. |
CHAN MOBILE []G3D.POINT3 |
out |
Points generated. |
CHAN G3D.GEN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:570Process points3d.rotate
PROC points3d.rotate (CHAN MOBILE []G3D.POINT3 in?, out!, CHAN G3D.ROT.CONTROL ctrl?)
Point rotator. Rotates an arbitrary set of points around the origin, such that it passes through the same sequence of moves repeatedly (e.g. for a spinning cube). Can also be used for static rotation when set with a zero increment.
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT3 |
out |
3D points out. |
CHAN G3D.ROT.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:703Process points3d.translate
PROC points3d.translate (CHAN MOBILE []G3D.POINT3 in?, out!, CHAN G3D.TRN.CONTROL ctrl?)
Point translator. Translates an arbitrary set of points in 3D space.
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT3 |
out |
3D points out. |
CHAN G3D.TRN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:742Process points3d.scale
PROC points3d.scale (CHAN MOBILE []G3D.POINT3 in?, out!, CHAN G3D.SCL.CONTROL ctrl?)
Point scaler. Scales an arbitrary set of points in 3D space.
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT3 |
out |
3D points out. |
CHAN G3D.SCL.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:1041Process points3d.transrotate
PROC points3d.transrotate (CHAN MOBILE []G3D.POINT3 in?, out!, G3D.SCENE.TRANS? ctrl)
Performs translation and rotation on 3D points (used in camera/scene handling).
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT3 |
out |
3D points out. |
G3D.SCENE.TRANS? |
ctrl |
Control channel-bundle end. |
graphics3d.occ
:1055Process points3d.transrotate.prj
PROC points3d.transrotate.prj (CHAN MOBILE []G3D.POINT3 in?, out!, G3D.SCENE.TRANS? ctrl, CHAN G3D.PRJ.CONTROL prj.in?, prj.out!)
Performs translation and rotation on 3D points (used in camera/scene handling).
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT3 |
out |
3D points out. |
G3D.SCENE.TRANS? |
ctrl |
Control channel-bundle end. |
CHAN G3D.PRJ.CONTROL |
prj.in |
Projector control in. |
CHAN G3D.PRJ.CONTROL |
prj.out |
Projector control out. |
graphics3d.occ
:1064Process g3d.scene.head
PROC g3d.scene.head (G3D.SCENE.TRANS? ctrl)
Provides a scene "head", for combined rotation/translation/etc.
Parameters:
G3D.SCENE.TRANS? |
ctrl |
Control channel-end. |
graphics3d.occ
:1190Process g3d.scene.spawn
PROC g3d.scene.spawn (RESULT G3D.SCENE.TRANS! rctl)
Dynamically spawns a new scene head.
Parameters:
RESULT G3D.SCENE.TRANS! |
rctl |
Returned control channel-end. |
graphics3d.occ
:1205Process g3d.scene.camera
PROC g3d.scene.camera (CHAN RASTER.EVENT ev.in?, CHAN G3D.SCENE.TRANS! sc.in?, G3D.SCENE.TRANS! sc.ctl)
Implements a standard camera, controlled by the user.
Parameters:
CHAN RASTER.EVENT |
ev.in |
Raster events. |
CHAN G3D.SCENE.TRANS! |
sc.in |
Scene control channel-ends in (added to chain). |
G3D.SCENE.TRANS! |
sc.ctl |
Scene control channel-end. |
graphics3d.occ
:1361Process points.3d.to.2d3
PROC points.3d.to.2d3 (CHAN MOBILE []G3D.POINT3 in?, CHAN MOBILE []G3D.POINT2.3 out!, CHAN G3D.PRJ.CONTROL ctrl?, VAL INT width, height)
Projects 3D points into 2D, preserves Z information. Maps a set of 3D points down into a set of 2D points, preserving the Z depth information for later operations.
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
3D points in. |
CHAN MOBILE []G3D.POINT2.3 |
out |
2D3 points out. |
CHAN G3D.PRJ.CONTROL |
ctrl |
Control channel. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:1443Process flatpolify.points
PROC flatpolify.points (CHAN MOBILE []G3D.POINT2.3 in?, VAL INT npoints, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?)
Generates flat polygons from poly-points. Expects to receive ((npoints * 2) + 2) points at a time, and from these generates a set of polygons that represents a flat 3D regular polygon.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in. |
VAL INT |
npoints |
Number of polygon points. |
CHAN MOBILE []G3D.POLY |
out |
Polygons out. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:1600Process cogify.points
PROC cogify.points (CHAN MOBILE []G3D.POINT2.3 in?, VAL INT nteeth, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?)
Generates cog polygons from cog-points. Expects to receive ((nteeth * 8) + 2) points at a time, and from these generates a set of polygons that represent a solid cog.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in. |
VAL INT |
nteeth |
Number of cog teeth. |
CHAN MOBILE []G3D.POLY |
out |
Polygons out. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:1959Process cubify.points
PROC cubify.points (CHAN MOBILE []G3D.POINT2.3 in?, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?)
Generates cube polygons from cube points. Expects to receive 8 points at a time, and from these generates a set of polygons that represent a cube. Characteristics are controllable through the control channel (e.g. skip hidden surfaces).
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in (2D with Z-depth). |
CHAN MOBILE []G3D.POLY |
out |
Polygons out. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:1979Process flutterby.points
PROC flutterby.points (CHAN MOBILE []G3D.POINT2.3 in?, CHAN MOBILE []G3D.POLY out!, CHAN G3D.PGN.CONTROL ctrl?)
Generates polygons representing the Inmos style butterfly logo. Expects to receive 30 points at a time, and from these generates a set of polygons that represent the butterfly. Only the colour is controllable through the ctrl?
channel.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in (2D with Z-depth). |
CHAN MOBILE []G3D.POLY |
out |
Polygons out. |
CHAN G3D.PGN.CONTROL |
ctrl |
Control channel. |
graphics3d.occ
:2317Process poly.scanlines
PROC poly.scanlines (CHAN MOBILE []G3D.POLY in?, CHAN MOBILE []G3D.POLY.SCAN out!, CHAN G3D.PSC.CONTROL ctrl?, VAL INT width, height)
Converts polygons to scan-line data. Expects to receive sets of polygons on its input, which it then transforms into a set of G3D.POLY.SCAN structures.
Parameters:
CHAN MOBILE []G3D.POLY |
in |
Polygons input. |
CHAN MOBILE []G3D.POLY.SCAN |
out |
Scan-line data output. |
CHAN G3D.PSC.CONTROL |
ctrl |
Control channel. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:2656Process render.polyscans
PROC render.polyscans (CHAN MOBILE []G3D.POLY.SCAN data?, G3D.RENDER.ENGINE? rlink.in, CHAN G3D.RDR.CONTROL ctrl?, VAL INT width, height)
Renders polygon scan-line data onto a raster.
Parameters:
CHAN MOBILE []G3D.POLY.SCAN |
data |
Polygon scan-line data input. |
G3D.RENDER.ENGINE? |
rlink.in |
Raster I/O. |
CHAN G3D.RDR.CONTROL |
ctrl |
Control channel. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:2676Process render.polyscans.trigger
PROC render.polyscans.trigger (CHAN MOBILE []G3D.POLY.SCAN data?, G3D.RENDER.ENGINE? rlink.in, CHAN G3D.RDR.CONTROL ctrl?, CHAN INT trigger!, VAL INT width, height)
Renders polygon scan-line data onto a raster, sends triggers back to generator process.
Parameters:
CHAN MOBILE []G3D.POLY.SCAN |
data |
Polygon scan-line data input. |
G3D.RENDER.ENGINE? |
rlink.in |
Raster I/O. |
CHAN G3D.RDR.CONTROL |
ctrl |
Control channel. |
CHAN INT |
trigger |
Triggers for generator. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:2965Process render.polyframe
PROC render.polyframe (CHAN MOBILE []G3D.POLY data?, G3D.RENDER.ENGINE? rlink.in, CHAN G3D.RDR.CONTROL ctrl?, VAL INT width, height)
Renders polygons as a series of lines (wireframe).
Parameters:
CHAN MOBILE []G3D.POLY |
data |
Polygons input. |
G3D.RENDER.ENGINE? |
rlink.in |
Raster I/O. |
CHAN G3D.RDR.CONTROL |
ctrl |
Control channel. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:2980Process render.polyframe.trigger
PROC render.polyframe.trigger (CHAN MOBILE []G3D.POLY data?, G3D.RENDER.ENGINE? rlink.in, CHAN G3D.RDR.CONTROL ctrl?, CHAN INT trigger!, VAL INT width, height)
Renders polygons as a series of lines (wireframe).
Parameters:
CHAN MOBILE []G3D.POLY |
data |
Polygons input. |
G3D.RENDER.ENGINE? |
rlink.in |
Raster I/O. |
CHAN G3D.RDR.CONTROL |
ctrl |
Control channel. |
CHAN INT |
trigger |
Generator trigger channel. |
VAL INT |
width , height
|
Display dimensions. |
graphics3d.occ
:2994Process raster.chain.head
PROC raster.chain.head (CHAN RASTER in?, G3D.RENDER.ENGINE! head, CHAN G3D.RENDER.ENGINE! new.link?, VAL BOOL fade)
Head of the raster render chain.
Parameters:
CHAN RASTER |
in |
Rasters in. |
G3D.RENDER.ENGINE! |
head |
Head of raster render chain. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel on which new rendering engines are added. |
VAL BOOL |
fade |
Whether to fade (TRUE) or clear (FALSE) rasters. |
graphics3d.occ
:3048Process raster.chain.tail
PROC raster.chain.tail (CHAN RASTER out!, G3D.RENDER.ENGINE? tail)
Tail of the raster render chain.
Parameters:
CHAN RASTER |
out |
Rasters out. |
G3D.RENDER.ENGINE? |
tail |
Tail of raster render chain. |
graphics3d.occ
:3070Process raster.chain
PROC raster.chain (CHAN RASTER in?, out!, CHAN G3D.RENDER.ENGINE! new.link?, VAL BOOL fade)
Implements raster render chain.
Parameters:
CHAN RASTER |
in |
Rasters in. |
CHAN RASTER |
out |
Rasters out. |
CHAN G3D.RENDER.ENGINE! |
new.link |
Channel on which new rendering engines are added. |
VAL BOOL |
fade |
Whether to fade (TRUE) or clear (FALSE) rasters. |
graphics3d.occ
:3093Process raster.polyidclick
PROC raster.polyidclick (CHAN RASTER in?, out!, CHAN RASTER.EVENT ev.in?, ev.out!, CHAN INT ids.out!, VAL INT dclk)
Connects into the raster chain and event pipeline to extract IDs (0-255) of polygons. Responds to single or double click.
Parameters:
CHAN RASTER |
in |
Rasters in. |
CHAN RASTER |
out |
Rasters out. |
CHAN RASTER.EVENT |
ev.in |
Events in. |
CHAN RASTER.EVENT |
ev.out |
Events out. |
CHAN INT |
ids.out |
Polygon IDs out (extracted from high 8 bits of the rendered pixel). |
VAL INT |
dclk |
Double click time (0 = single click). |
g3dutil.occ
:32Process g3d.point3.delta
PROC g3d.point3.delta (CHAN MOBILE []G3D.POINT3 in?, out.0!, out.1!)
Delta for mobile arrays of the G3D.POINT3
type.
Parameters:
CHAN MOBILE []G3D.POINT3 |
in |
Points in. |
CHAN MOBILE []G3D.POINT3 |
out.0 |
Points out. |
CHAN MOBILE []G3D.POINT3 |
out.1 |
Points out. |
g3dutil.occ
:49Process g3d.point2.3.delta
PROC g3d.point2.3.delta (CHAN MOBILE []G3D.POINT2.3 in?, out.0!, out.1!)
Delta for mobile arrays of the G3D.POINT2.3
type.
Parameters:
CHAN MOBILE []G3D.POINT2.3 |
in |
Points in. |
CHAN MOBILE []G3D.POINT2.3 |
out.0 |
Points out. |
CHAN MOBILE []G3D.POINT2.3 |
out.1 |
Points out. |
g3dutil.occ
:65Process g3d.point2.delta
PROC g3d.point2.delta (CHAN MOBILE []G3D.POINT2 in?, out.0!, out.1!)
Delta for mobile arrays of the G3D.POINT2
type.
Parameters:
CHAN MOBILE []G3D.POINT2 |
in |
Points in. |
CHAN MOBILE []G3D.POINT2 |
out.0 |
Points out. |
CHAN MOBILE []G3D.POINT2 |
out.1 |
Points out. |
g3dutil.occ
:81Process g3d.poly.delta
PROC g3d.poly.delta (CHAN MOBILE []G3D.POLY in?, out.0!, out.1!)
Delta for mobile arrays of the G3D.POLY
type.
Parameters:
CHAN MOBILE []G3D.POLY |
in |
Polygons in. |
CHAN MOBILE []G3D.POLY |
out.0 |
Polygons out. |
CHAN MOBILE []G3D.POLY |
out.1 |
Polygons out. |
g3dutil.occ
:97Process g3d.poly.scan.delta
PROC g3d.poly.scan.delta (CHAN MOBILE []G3D.POLY.SCAN in?, out.0!, out.1!)
Delta for mobile arrays of the G3D.POLY.SCAN
type.
Parameters:
CHAN MOBILE []G3D.POLY.SCAN |
in |
Polygon scans in. |
CHAN MOBILE []G3D.POLY.SCAN |
out.0 |
Polygon scans out. |
CHAN MOBILE []G3D.POLY.SCAN |
out.1 |
Polygon scans out. |
g3dutil.occ
:114Process g3d.gen.control.delta
PROC g3d.gen.control.delta (CHAN G3D.GEN.CONTROL in?, out.0!, out.1!)
Delta for G3D.GEN.CONTROL
protocol.
Parameters:
CHAN G3D.GEN.CONTROL |
in |
Commands in. |
CHAN G3D.GEN.CONTROL |
out.0 |
Commands out. |
CHAN G3D.GEN.CONTROL |
out.1 |
Commands out. |
g3dutil.occ
:150Process g3d.rot.control.delta
PROC g3d.rot.control.delta (CHAN G3D.ROT.CONTROL in?, out.0!, out.1!)
Delta for G3D.ROT.CONTROL
protocol.
Parameters:
CHAN G3D.ROT.CONTROL |
in |
Commands in. |
CHAN G3D.ROT.CONTROL |
out.0 |
Commands out. |
CHAN G3D.ROT.CONTROL |
out.1 |
Commands out. |
g3dutil.occ
:186Process g3d.prj.control.delta
PROC g3d.prj.control.delta (CHAN G3D.PRJ.CONTROL in?, out.0!, out.1!)
Delta for G3D.PRJ.CONTROL
protocol.
Parameters:
CHAN G3D.PRJ.CONTROL |
in |
Commands in. |
CHAN G3D.PRJ.CONTROL |
out.0 |
Commands out. |
CHAN G3D.PRJ.CONTROL |
out.1 |
Commands out. |
g3dutil.occ
:222Process g3d.pgn.control.delta
PROC g3d.pgn.control.delta (CHAN G3D.PGN.CONTROL in?, out.0!, out.1!)
Delta for G3D.PGN.CONTROL
protocol.
Parameters:
CHAN G3D.PGN.CONTROL |
in |
Commands in. |
CHAN G3D.PGN.CONTROL |
out.0 |
Commands out. |
CHAN G3D.PGN.CONTROL |
out.1 |
Commands out. |
g3dutil.occ
:258Process g3d.psc.control.delta
PROC g3d.psc.control.delta (CHAN G3D.PSC.CONTROL in?, out.0!, out.1!)
Delta for G3D.PSC.CONTROL
protocol.
Parameters:
CHAN G3D.PSC.CONTROL |
in |
Commands in. |
CHAN G3D.PSC.CONTROL |
out.0 |
Commands out. |
CHAN G3D.PSC.CONTROL |
out.1 |
Commands out. |
g3dutil.occ
:274Process g3d.rdr.control.delta
PROC g3d.rdr.control.delta (CHAN G3D.RDR.CONTROL in?, out.0!, out.1!)
Delta for G3D.RDR.CONTROL
protocol.
Parameters:
CHAN G3D.RDR.CONTROL |
in |
Commands in. |
CHAN G3D.RDR.CONTROL |
out.0 |
Commands out. |
CHAN G3D.RDR.CONTROL |
out.1 |
Commands out. |