import {BaseSopOperation} from './_Base';
import {CoreGroup} from '../../geometry/Group';
import {DefaultOperationParams} from '../_Base';
import {InputCloneMode} from '../../../engine/poly/InputCloneMode';

interface NullSopParams extends DefaultOperationParams {}

export class NullSopOperation extends BaseSopOperation {
	static readonly DEFAULT_PARAMS: NullSopParams = {};
	static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
	static type(): Readonly<'null'> {
		return 'null';
	}

	cook(input_contents: CoreGroup[], params: NullSopParams) {
		const core_group = input_contents[0];
		if (core_group) {
			return core_group;
		} else {
			return this.create_core_group_from_objects([]);
		}
	}
}
