VORT 入門
<- 複雑なオブジェクト | 移動と変形 ->

オブジェクトを組み合わせる

composite

composite {
	rotate(45.0, z)
	rotate(90.0, y)
	colour 1.0, 0.0, 0.0
	material 0.0, 0.95, 0.00, 0.0
	
	sphere {
		center(0.0, 0.0, 0.0)
		radius 1.0
	}
	sphere {
		center(2.0, 0.0, 0.0)
		radius 0.5
	}
}
オブジェクトに同じ属性や変形をする場合には composite が便利である。 上の例では 2 つの sphere が同じ色や質感を持ち、rotate で一緒に回転して いる。
composite は csg では使えない。

csg

csg {
	sphere s1 {
		colour 1.0, 1.0, 1.0
		center (2.0, 2.0, 2.0)
		radius    1.0
	}
	sphere s2 {
		colour 1.0, 1.0, 1.0
		center (-2.0, -2.0, 2.0)
		radius 2.0
	}
	box b1 {
		colour 1.0, 1.0, 1.0
		vertex (2.0, 2.0, 2.0)
		vertex (-2.0, -2.0, -2.0)
	}
	(b1 - s1) - s2
}
CSG (Constructive solid model) を記述するのに使う。上の例では、 box である b1 から sphere の s1 と s2 の論理差を求めている。
例で使っている論理差には "-"、論理和には "+"、 論理積には "*" を使う。CSG モデルではオブジェクトに名前を つける必要がある。また、他の csg オブジェクトを含むこともできる。

repeat

box b1 {
	colour 1.0, 1.0, 1.0
	vertex (0.8, 0.8, 0.8)
	vertex (-0.8, -0.8, -0.8)
}

b1 {
	translate (-2, 0, 0)
}

b1 {
	translate (0, 0, 0)
} 

b1 {
	translate (2, 0, 1)
} 

sphere s1 {
	colour 1.0, 1.0, 1.0
	center (-4, 2, 0)
}

repeat 3 {
	translate (2, 0, 0)
	s1
}
オブジェクトを繰り返して使うには、最初に定義するときに名前をつけておき、 その名前に対して移動、回転、変形などを加える。
例では b1 と名前のついた box を使って、それを移動した 3 つの box を 指定している。sphere の方では、repeat を使って 同じ移動を繰り返している。
VORT 入門
<- 複雑なオブジェクト | 移動と変形 ->