# ThreeDimensionalViewport¶

view3D.spad line 1 [edit on github]

ThreeDimensionalViewport creates viewports to display graphs

- axes: (%, String) -> Void
`axes(v, s)`

displays the axes of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, if`s`

is “on”, or does not display the axes if`s`

is “off”.

- clipSurface: (%, String) -> Void
`clipSurface(v, s)`

displays the graph with the specified clipping region removed if`s`

is “on”, or displays the graph without clipping implemented if`s`

is “off”, for the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- close: % -> Void
`close(v)`

closes the viewport window of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, and terminates the corresponding process ID.

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- colorDef: (%, Color, Color) -> Void
`colorDef(v, c1, c2)`

sets the range of colors along the colormap so that the lower end of the colormap is defined by`c1`

and the top end of the colormap is defined by`c2`

, for the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- controlPanel: (%, String) -> Void
`controlPanel(v, s)`

displays the control panel of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, if`s`

is “on”, or hides the control panel if`s`

is “off”.

- diagonals: (%, String) -> Void
`diagonals(v, s)`

displays the diagonals of the polygon outline showing a triangularized surface instead of a quadrilateral surface outline, for the given three-dimensional viewport`v`

which is of domain ThreeDimensionalViewport, if`s`

is “on”, or does not display the diagonals if`s`

is “off”.

- dimensions: (%, NonNegativeInteger, NonNegativeInteger, PositiveInteger, PositiveInteger) -> Void
`dimensions(v, x, y, width, height)`

sets the position of the upper left-hand corner of the three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, to the window coordinate`x`

,`y`

, and sets the dimensions of the window to that of`width`

,`height`

. The new dimensions are not displayed until the function makeViewport3D is executed again for`v`

.

- drawStyle: (%, String) -> Void
`drawStyle(v, s)`

displays the surface for the given three-dimensional viewport`v`

which is of domain ThreeDimensionalViewport in the style of drawing indicated by`s`

. If`s`

is not a valid drawing style the style is wireframe by default. Possible styles are`"shade"`

,`"solid"`

or`"opaque"`

,`"smooth"`

, and`"wireMesh"`

.

- eyeDistance: (%, Float) -> Void
`eyeDistance(v, d)`

sets the distance of the observer from the center of the graph to`d`

, for the viewport`v`

, which is of the domain ThreeDimensionalViewport.

- hash: % -> SingleInteger
from SetCategory

- hashUpdate!: (HashState, %) -> HashState
from SetCategory

- hitherPlane: (%, Float) -> Void
`hitherPlane(v, h)`

sets the hither clipping plane of the graph to`h`

, for the viewport`v`

, which is of the domain ThreeDimensionalViewport.

- intensity: (%, Float) -> Void
`intensity(v, i)`

sets the intensity of the light source to`i`

, for the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- key: % -> Integer
`key(v)`

returns the process ID number of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- latex: % -> String
from SetCategory

- lighting: (%, Float, Float, Float) -> Void
`lighting(v, x, y, z)`

sets the position of the light source to the coordinates`x`

,`y`

, and`z`

and displays the graph for the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- makeViewport3D: % -> %
`makeViewport3D(v)`

takes the given three-dimensional viewport,`v`

, of the domain ThreeDimensionalViewport and displays a viewport window on the screen which contains the contents of`v`

.

- makeViewport3D: (ThreeSpace DoubleFloat, List DrawOption) -> %
`makeViewport3D(sp, lopt)`

takes the given space,`sp`

which is of the domain ThreeSpace and displays a viewport window on the screen which contains the contents of`sp`

, and whose draw options are indicated by the list`lopt`

, which is a list of options from the domain`DrawOption`

.

- makeViewport3D: (ThreeSpace DoubleFloat, String) -> %
`makeViewport3D(sp, s)`

takes the given space,`sp`

which is of the domain ThreeSpace and displays a viewport window on the screen which contains the contents of`sp`

, and whose title is given by`s`

.

- modifyPointData: (%, NonNegativeInteger, Point DoubleFloat) -> Void
`modifyPointData(v, ind, pt)`

takes the viewport,`v`

, which is of the domain ThreeDimensionalViewport, and places the data point,`pt`

into the list of points database of`v`

at the index location given by`ind`

.

- move: (%, NonNegativeInteger, NonNegativeInteger) -> Void
`move(v, x, y)`

displays the three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, with the upper left-hand corner of the viewport window at the screen coordinate position`x`

,`y`

.

- options: % -> List DrawOption
`options(v)`

takes the viewport,`v`

, which is of the domain ThreeDimensionalViewport and returns a list of all the draw options from the domain`DrawOption`

which are being used by`v`

.

- options: (%, List DrawOption) -> %
`options(v, lopt)`

takes the viewport,`v`

, which is of the domain ThreeDimensionalViewport and sets the draw options being used by`v`

to those indicated in the list,`lopt`

, which is a list of options from the domain`DrawOption`

.

- outlineRender: (%, String) -> Void
`outlineRender(v, s)`

displays the polygon outline showing either triangularized surface or a quadrilateral surface outline depending on the whether the diagonals function has been set, for the given three-dimensional viewport`v`

which is of domain ThreeDimensionalViewport, if`s`

is “on”, or does not display the polygon outline if`s`

is “off”.

- perspective: (%, String) -> Void
`perspective(v,s)`

displays the graph in perspective if`s`

is “on”, or does not display perspective if`s`

is “off” for the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport.

- reset: % -> Void
`reset(v)`

sets the current state of the graph characteristics of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, back to their initial settings.

- resize: (%, PositiveInteger, PositiveInteger) -> Void
`resize(v, w, h)`

displays the three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, with a width of`w`

and a height of`h`

, keeping the upper left-hand corner position unchanged.

- rotate: (%, Float, Float) -> Void
`rotate(v, th, phi)`

rotates the graph to the longitudinal view angle`th`

radians and the latitudinal view angle`phi`

radians for the viewport`v`

, which is of the domain ThreeDimensionalViewport.

- rotate: (%, Integer, Integer) -> Void
`rotate(v, th, phi)`

rotates the graph to the longitudinal view angle`th`

degrees and the latitudinal view angle`phi`

degrees for the viewport`v`

, which is of the domain ThreeDimensionalViewport. The new rotation position is not displayed until the function makeViewport3D is executed again for`v`

.

- showClipRegion: (%, String) -> Void
`showClipRegion(v, s)`

displays the clipping region of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, if`s`

is “on”, or does not display the region if`s`

is “off”.

- showRegion: (%, String) -> Void
`showRegion(v, s)`

displays the bounding box of the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, if`s`

is “on”, or does not display the box if`s`

is “off”.

- subspace: % -> ThreeSpace DoubleFloat
`subspace(v)`

returns the contents of the viewport`v`

, which is of the domain ThreeDimensionalViewport, as a subspace of the domain`ThreeSpace`

.

- subspace: (%, ThreeSpace DoubleFloat) -> %
`subspace(v, sp)`

places the contents of the viewport`v`

, which is of the domain ThreeDimensionalViewport, in the subspace`sp`

, which is of the domain`ThreeSpace`

.

- title: (%, String) -> Void
`title(v, s)`

changes the title which is shown in the three-dimensional viewport window,`v`

of domain ThreeDimensionalViewport.

- translate: (%, Float, Float) -> Void
`translate(v, dx, dy)`

sets the horizontal viewport offset to`dx`

and the vertical viewport offset to`dy`

, for the viewport`v`

, which is of the domain ThreeDimensionalViewport.

- viewDeltaXDefault: () -> Float
`viewDeltaXDefault()`

returns the current default horizontal offset from the center of the viewport window.

- viewDeltaXDefault: Float -> Float
`viewDeltaXDefault(dx)`

sets the current default horizontal offset from the center of the viewport window to be`dx`

and returns`dx`

.

- viewDeltaYDefault: () -> Float
`viewDeltaYDefault()`

returns the current default vertical offset from the center of the viewport window.

- viewDeltaYDefault: Float -> Float
`viewDeltaYDefault(dy)`

sets the current default vertical offset from the center of the viewport window to be`dy`

and returns`dy`

.

- viewPhiDefault: () -> Float
`viewPhiDefault()`

returns the current default latitudinal view angle in radians.

- viewPhiDefault: Float -> Float
`viewPhiDefault(p)`

sets the current default latitudinal view angle in radians to the value`p`

and returns`p`

.

- viewpoint: % -> Record(theta: DoubleFloat, phi: DoubleFloat, scale: DoubleFloat, scaleX: DoubleFloat, scaleY: DoubleFloat, scaleZ: DoubleFloat, deltaX: DoubleFloat, deltaY: DoubleFloat)
`viewpoint(v)`

returns the current viewpoint setting of the given viewport,`v`

. This function is useful in the situation where the user has created a viewport, proceeded to interact with it via the control panel and desires to save the values of the viewpoint as the default settings for another viewport to be created using the system.

- viewpoint: (%, Float, Float) -> Void
`viewpoint(v, th, phi)`

sets the longitudinal view angle to`th`

radians and the latitudinal view angle to`phi`

radians for the viewport`v`

, which is of the domain ThreeDimensionalViewport. The new viewpoint position is not displayed until the function makeViewport3D is executed again for`v`

.

- viewpoint: (%, Float, Float, Float) -> Void
`viewpoint(v, rotx, roty, rotz)`

sets the rotation about the`x`

-axis to be`rotx`

radians, sets the rotation about the`y`

-axis to be`roty`

radians, and sets the rotation about the`z`

-axis to be`rotz`

radians, for the viewport`v`

, which is of the domain ThreeDimensionalViewport and displays`v`

with the new view position.

- viewpoint: (%, Float, Float, Float, Float, Float) -> Void
`viewpoint(v, th, phi, s, dx, dy)`

sets the longitudinal view angle to`th`

radians, the latitudinal view angle to`phi`

radians, the scale factor to`s`

, the horizontal viewport offset to`dx`

, and the vertical viewport offset to`dy`

for the viewport`v`

, which is of the domain ThreeDimensionalViewport. The new viewpoint position is not displayed until the function makeViewport3D is executed again for`v`

.

- viewpoint: (%, Integer, Integer, Float, Float, Float) -> Void
`viewpoint(v, th, phi, s, dx, dy)`

sets the longitudinal view angle to`th`

degrees, the latitudinal view angle to`phi`

degrees, the scale factor to`s`

, the horizontal viewport offset to`dx`

, and the vertical viewport offset to`dy`

for the viewport`v`

, which is of the domain ThreeDimensionalViewport. The new viewpoint position is not displayed until the function makeViewport3D is executed again for`v`

.

- viewpoint: (%, Record(theta: DoubleFloat, phi: DoubleFloat, scale: DoubleFloat, scaleX: DoubleFloat, scaleY: DoubleFloat, scaleZ: DoubleFloat, deltaX: DoubleFloat, deltaY: DoubleFloat)) -> Void
`viewpoint(v, viewpt)`

sets the viewpoint for the viewport. The viewport record consists of the latitudal and longitudal angles, the zoom factor, the`X`

,`Y`

, and`Z`

scales, and the`X`

and`Y`

displacements.

- viewport3D: () -> %
`viewport3D()`

returns an undefined three-dimensional viewport of the domain ThreeDimensionalViewport whose contents are empty.

- viewThetaDefault: () -> Float
`viewThetaDefault()`

returns the current default longitudinal view angle in radians.

- viewThetaDefault: Float -> Float
`viewThetaDefault(t)`

sets the current default longitudinal view angle in radians to the value`t`

and returns`t`

.

- viewZoomDefault: () -> Float
`viewZoomDefault()`

returns the current default graph scaling value.

- viewZoomDefault: Float -> Float
`viewZoomDefault(s)`

sets the current default graph scaling value to`s`

and returns`s`

.

- write: (%, String) -> String
`write(v, s)`

takes the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, and creates a directory indicated by`s`

, which contains the graph data file for`v`

.

- write: (%, String, List String) -> String
`write(v, s, lf)`

takes the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, and creates a directory indicated by`s`

, which contains the graph data file for`v`

and the optional file types indicated by the list`lf`

.

- write: (%, String, String) -> String
`write(v, s, f)`

takes the given three-dimensional viewport,`v`

, which is of domain ThreeDimensionalViewport, and creates a directory indicated by`s`

, which contains the graph data file for`v`

and an optional file type`f`

.

- zoom: (%, Float) -> Void
`zoom(v, s)`

sets the graph scaling factor to`s`

, for the viewport`v`

, which is of the domain ThreeDimensionalViewport.

- zoom: (%, Float, Float, Float) -> Void
`zoom(v, sx, sy, sz)`

sets the graph scaling factors for the`x`

-coordinate axis to`sx`

, the`y`

-coordinate axis to`sy`

and the`z`

-coordinate axis to`sz`

for the viewport`v`

, which is of the domain ThreeDimensionalViewport.