ShadowEditor/editor/js/Sidebar.Geometry.SphereGeometry.js
2018-06-07 19:50:07 +08:00

106 lines
2.6 KiB
JavaScript

/**
* @author mrdoob / http://mrdoob.com/
*/
Sidebar.Geometry.SphereGeometry = function (editor, object) {
var signals = editor.signals;
var container = new UI.Row();
var geometry = object.geometry;
var parameters = geometry.parameters;
// radius
var radiusRow = new UI.Row();
var radius = new UI.Number(parameters.radius).onChange(update);
radiusRow.add(new UI.Text('半径').setWidth('90px'));
radiusRow.add(radius);
container.add(radiusRow);
// widthSegments
var widthSegmentsRow = new UI.Row();
var widthSegments = new UI.Integer(parameters.widthSegments).setRange(1, Infinity).onChange(update);
widthSegmentsRow.add(new UI.Text('宽度段数').setWidth('90px'));
widthSegmentsRow.add(widthSegments);
container.add(widthSegmentsRow);
// heightSegments
var heightSegmentsRow = new UI.Row();
var heightSegments = new UI.Integer(parameters.heightSegments).setRange(1, Infinity).onChange(update);
heightSegmentsRow.add(new UI.Text('高度段数').setWidth('90px'));
heightSegmentsRow.add(heightSegments);
container.add(heightSegmentsRow);
// phiStart
var phiStartRow = new UI.Row();
var phiStart = new UI.Number(parameters.phiStart).onChange(update);
phiStartRow.add(new UI.Text('φ开始').setWidth('90px'));
phiStartRow.add(phiStart);
container.add(phiStartRow);
// phiLength
var phiLengthRow = new UI.Row();
var phiLength = new UI.Number(parameters.phiLength).onChange(update);
phiLengthRow.add(new UI.Text('φ长度').setWidth('90px'));
phiLengthRow.add(phiLength);
container.add(phiLengthRow);
// thetaStart
var thetaStartRow = new UI.Row();
var thetaStart = new UI.Number(parameters.thetaStart).onChange(update);
thetaStartRow.add(new UI.Text('θ开始').setWidth('90px'));
thetaStartRow.add(thetaStart);
container.add(thetaStartRow);
// thetaLength
var thetaLengthRow = new UI.Row();
var thetaLength = new UI.Number(parameters.thetaLength).onChange(update);
thetaLengthRow.add(new UI.Text('θ长度').setWidth('90px'));
thetaLengthRow.add(thetaLength);
container.add(thetaLengthRow);
//
function update() {
editor.execute(new SetGeometryCommand(object, new THREE[geometry.type](
radius.getValue(),
widthSegments.getValue(),
heightSegments.getValue(),
phiStart.getValue(),
phiLength.getValue(),
thetaStart.getValue(),
thetaLength.getValue()
)));
}
return container;
};
Sidebar.Geometry.SphereBufferGeometry = Sidebar.Geometry.SphereGeometry;