Camera (クラス)
public Camera {inherits SceneObject}
パッケージ: CURL.GRAPHICS.SCENE
直接継承しているサブクラス: MaxCameraSceneObject

Scene のカメラ。CameraScene の表示方法を決定します。

説明

CameraCamera.projectionCamera の表示領域の設定方法に反映されます。Camera.projectionperspective または orthographic であり、表示のサイズを直接設定する場合は、次を使用します。Camera.projectionpespective であり、表示フィールドを表す Angle を指定して表示領域を設定する場合は、次を使用します。

コンストラクタ
create-orthographic-camera:Scene に使用する新規の正投影の Camera を作成します。
コンストラクタ public {Camera.create-orthographic-camera
position:Distance3d = {Distance3d 0m, 0m, 0m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
near-plane-width:Distance = 1m,
near-plane-height:Distance = 1m,
near-clipping-plane:Distance = -0.5m,
far-clipping-plane:Distance = 0.5m,
name:#String = null,
...
}
create-perspective-camera:Scene に使用する新規の透視投影の Camera を作成します。
コンストラクタ public {Camera.create-perspective-camera
position:Distance3d = {Distance3d 0m, 0m, 1m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
field-of-view:Angle = 30degrees,
near-clipping-plane:Distance = .5m,
far-clipping-plane:Distance = 1.5m,
name:#String = null,
...
}
default:Scene に使用する新規の Camera を作成します。
コンストラクタ public {Camera.default
position:Distance3d = {Distance3d 0m, 0m, 1m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
field-of-view:Angle = 30degrees,
near-clipping-plane:Distance = .5m,
far-clipping-plane:Distance = 1.5m,
projection:Projection = Projection.orthographic,
name:#String = null,
...
}

プロパティ
far-clipping-plane:遠クリップ面の距離。
アクセサ public Camera.far-clipping-plane:Distance
セッター public Camera.far-clipping-plane:Distance
field-of-view:Camera の水平および垂直の表示フィールドを同じ値に設定します。
アクセサ public Camera.field-of-view:Angle
セッター public Camera.field-of-view:Angle
horizontal-field-of-view:Cameraの水平表示フィールド。
アクセサ public Camera.horizontal-field-of-view:Angle
セッター public Camera.horizontal-field-of-view:Angle
near-clipping-plane:近クリップ面の距離。
アクセサ public Camera.near-clipping-plane:Distance
セッター public Camera.near-clipping-plane:Distance
near-plane-height:近クリップ面の高さ。
アクセサ public Camera.near-plane-height:Distance
near-plane-width:近クリップ面の幅。
アクセサ public Camera.near-plane-width:Distance
projection:正または透視 Projection
アクセサ public Camera.projection:Projection
セッター public Camera.projection:Projection
right-vector:Camera のローカルの右ベクトルを取得します。
アクセサ public Camera.right-vector:Direction3d
up-vector:Camera のローカルの上ベクトルを取得します。
アクセサ public Camera.up-vector:Direction3d
vertical-field-of-view:Cameraの垂直の表示フィールド。
アクセサ public Camera.vertical-field-of-view:Angle
セッター public Camera.vertical-field-of-view:Angle
view-vector:Camera のビューの方向を取得します。
アクセサ public Camera.view-vector:Direction3d
プロパティ 継承 SceneObject: bounding-box-caching-enabled?, bounding-box-or-object-visible?, cached-bounding-box-dirty?, controller, local-bounding-box-color, local-bounding-box-line-width, local-bounding-box-visible?, name, opaque-to-intersection?, parent, parent-bounding-box-color, parent-bounding-box-line-width, parent-bounding-box-visible?, scene, transformation, visible?, world-bounding-box-color, world-bounding-box-line-width, world-bounding-box-visible?, world-position, world-transformation
プロパティ 継承 EventTarget: event-handlers

メソッド
dolly:それ自体の座標空間にある Camera を平行移動します。
public sealed {Camera.dolly
translation-x:Distance,
translation-y:Distance,
translation-z:Distance
}:void
get-local-bounding-box:SceneObject の軸平行である 3 次元のローカル境界。SceneObject のサブクラスにこのメソッドをオーバーライドする必要があります。
public {Camera.get-local-bounding-box
check-visibility?:bool = false
}:(min-xyz:Distance3d, max-xyz:Distance3d, valid-bounds?:bool)
get-transformed-bounding-box:SceneObject の軸平行である 3 次元の変換された境界。
public {Camera.get-transformed-bounding-box
transformation:Transformation3d,
check-visibility?:bool = false
}:(min-xyz:Distance3d, max-xyz:Distance3d, valid-bounds?:bool)
get-view-frustum-extents:視錐台の範囲を計算します。
public {Camera.get-view-frustum-extents
viewport-width:Distance,
viewport-height:Distance
}:(near-width:Distance, near-height:Distance, near-clipping-plane:Distance, far-clipping-plane:Distance)
paint:Renderer3d を使用して self を描画します。
public {Camera.paint
renderer:Renderer3d,
viewport-width:Distance,
viewport-height:Distance
}:void
pan:Camera を左右にパンします。
public sealed {Camera.pan angle:Angle}:void
roll:そのビューのベクトルの周囲にある Camera を回転します。
public sealed {Camera.roll angle:Angle}:void
set-near-plane-properties:Camera の近クリップ面の幅、高さおよび Camera から近クリップ面までの距離を設定します。
public {Camera.set-near-plane-properties
near-plane-width:Distance,
near-plane-height:Distance,
near-plane-distance:Distance
}:void
tilt:Camera を上下にあおります。
public sealed {Camera.tilt angle:Angle}:void
zoom:Camera をズームします。
public sealed {Camera.zoom magnification-factor:double}:void
メソッド 継承 SceneObject: get-cached-local-bounding-box, get-parent-bounding-box, get-world-bounding-box, intersect-box, intersect-line, intersect-line-segment, intersect-ray, intersect-sphere, ndc-point-to-ray, point-to-ndc-point, point-to-viewport-point, pre-paint, rotate, scale, set-orientation-and-position, translate, viewport-point-to-ray
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, handle-event, remove-event-handler, verify-event
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
create-orthographic-camera (コンストラクタ)
public {Camera.create-orthographic-camera
position:Distance3d = {Distance3d 0m, 0m, 0m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
near-plane-width:Distance = 1m,
near-plane-height:Distance = 1m,
near-clipping-plane:Distance = -0.5m,
far-clipping-plane:Distance = 0.5m,
name:#String = null,
...
}

Scene に使用する新規の正投影の Camera を作成します。

position: Camera の位置。既定値は {Distance3d 0m, 0m, 0m} になります。
direction: Camera が向いている方向。既定値は {Direction3d 0, 0, -1} になります。
up-vector: Camera の上ベクトル。既定値は {Direction3d 0, 1, 0} になります。
near-plane-width: Camera の近クリップ面の幅を表す Distance。既定値は 1m になります。
near-plane-height: Camera の近クリップ面の高さを表す Distance。既定値は 1m になります。
near-clipping-plane: Camera の近クリップ面を表す Distance。既定値は -0.5m になります。
far-clipping-plane: Camera の遠クリップ面を表す Distance。既定値は 0.5m になります。
name: Camera の名前を表す String。既定値は null になります。
...: 各残余引数は、新たに作成されたオブジェクトの EventTarget.add-event-handler メソッドに送信される EventHandler にする必要があります。


create-perspective-camera (コンストラクタ)
public {Camera.create-perspective-camera
position:Distance3d = {Distance3d 0m, 0m, 1m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
field-of-view:Angle = 30degrees,
near-clipping-plane:Distance = .5m,
far-clipping-plane:Distance = 1.5m,
name:#String = null,
...
}

Scene に使用する新規の透視投影の Camera を作成します。

position: Camera の位置。既定値は {Distance3d 0m, 0m, 1m} になります。
direction: Camera が向いている方向。既定値は {Direction3d 0, 0, -1} になります。
up-vector: Camera の上ベクトル。既定値は {Direction3d 0, 1, 0} になります。
field-of-view: Camera の表示フィールド。既定値は 30degrees になります。
near-clipping-plane: Camera の近クリップ面を表す Distance。既定値は 0.5m になります。
far-clipping-plane: Camera の遠クリップ面を表す Distance。既定値は 1.5m になります。
name: Camera の名前を表す String。既定値は null になります。
...: 各残余引数は、新たに作成されたオブジェクトの EventTarget.add-event-handler メソッドに送信される EventHandler にする必要があります。


default (コンストラクタ)
public {Camera.default
position:Distance3d = {Distance3d 0m, 0m, 1m},
direction:Direction3d = {Direction3d 0, 0, -1},
up-vector:Direction3d = {Direction3d 0, 1, 0},
field-of-view:Angle = 30degrees,
near-clipping-plane:Distance = .5m,
far-clipping-plane:Distance = 1.5m,
projection:Projection = Projection.orthographic,
name:#String = null,
...
}

Scene に使用する新規の Camera を作成します。

position: Camera の位置。既定値は {Distance3d 0m, 0m, 1m} になります。
direction: Camera が向いている方向。既定値は {Direction3d 0, 0, -1} になります。
up-vector: Camera の上ベクトル。既定値は {Direction3d 0, 1, 0} になります。
field-of-view: Camera の表示フィールド。既定値は 30degrees になります。
near-clipping-plane: Camera の近クリップ面を表す Distance。既定値は 0.5m になります。
far-clipping-plane: Camera の遠クリップ面を表す Distance。既定値は 1.5m になります。
projection: Camera の投影。Projection を参照してください。既定値は Projection.orthographic になります。
name: Camera の名前を表す String。既定値は null になります。
...: 各残余引数は、新たに作成されたオブジェクトの EventTarget.add-event-handler メソッドに送信される EventHandler にする必要があります。



プロパティ詳細
far-clipping-plane (アクセサ)
アクセサ public Camera.far-clipping-plane:Distance
セッター public Camera.far-clipping-plane:Distance

遠クリップ面の距離。



field-of-view (アクセサ)
アクセサ public Camera.field-of-view:Angle
セッター public Camera.field-of-view:Angle

Camera の水平および垂直の表示フィールドを同じ値に設定します。

説明

field-of-view を設定すると Camera.near-plane-width および Camera.near-plane-height が修正されます。

Camera.projectionorthographicで、このセッターを使用しない場合は、代わりに Camera.set-near-plane-properties を指定します。


horizontal-field-of-view (アクセサ)
アクセサ public Camera.horizontal-field-of-view:Angle
セッター public Camera.horizontal-field-of-view:Angle

Cameraの水平表示フィールド。

説明

horizontal-field-of-view を設定すると Camera.near-plane-width が修正されます。

Camera.projectionorthographicで、このセッターを使用しない場合は、代わりに Camera.set-near-plane-properties を指定します。


near-clipping-plane (アクセサ)
アクセサ public Camera.near-clipping-plane:Distance
セッター public Camera.near-clipping-plane:Distance

近クリップ面の距離。

説明

near-clipping-plane を設定すると Camera.near-plane-width および Camera.near-plane-height も設定され Camera のフィールド ビューを保持することができます。

Camera.projectionorthographicで、このセッターを使用しない場合は、代わりに Camera.set-near-plane-properties を指定します。


near-plane-height (アクセサ)
アクセサ public Camera.near-plane-height:Distance

近クリップ面の高さ。

説明

近クリップ面の高さを設定する場合は、Camera.set-near-plane-properties を参照してください。


near-plane-width (アクセサ)
アクセサ public Camera.near-plane-width:Distance

近クリップ面の幅。

説明

近クリップ面の幅を設定する場合は、Camera.set-near-plane-properties を参照してください。


projection (アクセサ)
アクセサ public Camera.projection:Projection
セッター public Camera.projection:Projection

正または透視 Projection



right-vector (アクセサ)
アクセサ public Camera.right-vector:Direction3d

Camera のローカルの右ベクトルを取得します。



up-vector (アクセサ)
アクセサ public Camera.up-vector:Direction3d

Camera のローカルの上ベクトルを取得します。



vertical-field-of-view (アクセサ)
アクセサ public Camera.vertical-field-of-view:Angle
セッター public Camera.vertical-field-of-view:Angle

Cameraの垂直の表示フィールド。

説明

vertical-field-of-view を設定すると Camera.near-plane-height が修正されます。

Camera.projectionorthographicで、このセッターを使用しない場合は、代わりに Camera.set-near-plane-properties を指定します。


view-vector (アクセサ)
アクセサ public Camera.view-vector:Direction3d

Camera のビューの方向を取得します。






メソッド詳細
dolly (メソッド)
public sealed {Camera.dolly
translation-x:Distance,
translation-y:Distance,
translation-z:Distance
}:void

それ自体の座標空間にある Camera を平行移動します。



get-local-bounding-box (メソッド)
public {Camera.get-local-bounding-box
check-visibility?:bool = false
}:(min-xyz:Distance3d, max-xyz:Distance3d, valid-bounds?:bool)

SceneObject の軸平行である 3 次元のローカル境界。SceneObject のサブクラスにこのメソッドをオーバーライドする必要があります。

check-visibility?: このメソッドの呼び出し時にオブジェクトの可視性またはその境界ボックスがチェックされるかどうかを指定する boolcheck-visibility?trueSceneObject が不可視である場合は、返される境界は無効になります。既定値は false になります。

戻り値

min-xyz, max-xyz :境界ボックスを示す 2 つの Distance3d
valid-bounds? :返された境界が有効であるかどうかを示す bool

オーバーライド

SceneObject が不可視である場合は SceneObject の可視性を常時チェックし、無効な境界を返す必要があります。(SceneObject.bounding-box-or-object-visible? を参照してください)。


get-transformed-bounding-box (メソッド)
public {Camera.get-transformed-bounding-box
transformation:Transformation3d,
check-visibility?:bool = false
}:(min-xyz:Distance3d, max-xyz:Distance3d, valid-bounds?:bool)

SceneObject の軸平行である 3 次元の変換された境界。

transformation: 境界が計算される座標システムを指定する Transformation3d
check-visibility?: このメソッドの呼び出し時にオブジェクトの可視性またはその境界ボックスがチェックされるかどうかを指定する boolcheck-visibility?trueSceneObject が不可視である場合は、返される境界は無効になります。既定値は false になります。

戻り値

min-xyz, max-xyz :境界ボックスを示す 2 つの Distance3d
valid-bounds? :返された境界が有効であるかどうかを示す bool


get-view-frustum-extents (メソッド)
public {Camera.get-view-frustum-extents
viewport-width:Distance,
viewport-height:Distance
}:(near-width:Distance, near-height:Distance, near-clipping-plane:Distance, far-clipping-plane:Distance)

視錐台の範囲を計算します。



paint (メソッド)
public {Camera.paint
renderer:Renderer3d,
viewport-width:Distance,
viewport-height:Distance
}:void

Renderer3d を使用して self を描画します。

注意事項

このメソッドを使用して SceneObject の変換を修正することはできません。それを修正するには、SceneObject.pre-paint を使用する必要があります。


pan (メソッド)
public sealed {Camera.pan angle:Angle}:void

Camera を左右にパンします。



roll (メソッド)
public sealed {Camera.roll angle:Angle}:void

そのビューのベクトルの周囲にある Camera を回転します。



set-near-plane-properties (メソッド)
public {Camera.set-near-plane-properties
near-plane-width:Distance,
near-plane-height:Distance,
near-plane-distance:Distance
}:void

Camera の近クリップ面の幅、高さおよび Camera から近クリップ面までの距離を設定します。

near-plane-width: 近クリップ面の幅を表す Distance
near-plane-height: 近クリップ面の高さ表す Distance
near-plane-distance: Camera から近クリップ面までの距離を表す Distance


tilt (メソッド)
public sealed {Camera.tilt angle:Angle}:void

Camera を上下にあおります。



zoom (メソッド)
public sealed {Camera.zoom magnification-factor:double}:void

Camera をズームします。

説明

より大きいかより小さい表示フィールドを作成します。2 の magnification-factor により現在の表示フィールドのサイズが半分の表示フィールドで作成されるので、オブジェクトは 2 倍のサイズで表示されます。

注意事項

この操作は累積されるので magnification-factor による表示フィールドの分割とは異なります。