Source: helpers/BaseSphereHelper.js

import { MathUtils } from '../math/MathUtils';
import { BaseHelper } from './BaseHelper';

/**
 * @class BaseSphereHelper
 * The sphere helper object.
 * @memberof THING
 */
class BaseSphereHelper extends BaseHelper {

	buildSphere(spherePoints) {
		let { xData, yData, zData } = spherePoints;

		for (let i = 0; i < xData.length - 1; i++) {
			this._insertLine(xData[i], xData[i + 1]);
		}

		for (let i = 0; i < yData.length - 1; i++) {
			this._insertLine(yData[i], yData[i + 1]);
		}

		for (let i = 0; i < zData.length - 1; i++) {
			this._insertLine(zData[i], zData[i + 1]);
		}
	}

	end(centerPoints) {
		let _private = this.private;

		// Update line
		let lines = _private.lines;
		lines.setSize(_private.points.length);

		// Let line's position is center of points
		let center = MathUtils.getCenterFromPoints(centerPoints);
		lines.setPosition(center);

		lines.setPoints(_private.points);
		lines.setColors(_private.colors);
	}

}

export { BaseSphereHelper }