
import DxfArrayScanner, { IGroup } from '../DxfArrayScanner';
import * as helpers from '../ParseHelpers'
import IGeometry, { IEntity, IPoint } from './geomtry';

export interface IPointEntity extends IEntity{
	position: IPoint;
	thickness: number;
	extrusionDirection: IPoint;
}

export default class Point implements IGeometry{
	public ForEntityName= 'POINT' as const;
	public parseEntity(scanner: DxfArrayScanner, curr: IGroup) {
		const type = curr.value as string;
		const entity = { type } as unknown as IPointEntity;
		curr = scanner.next();
		while(!scanner.isEOF()) {
				if(curr.code === 0) break;

				switch(curr.code) {
						case 10:
								entity.position = helpers.parsePoint(scanner);
								break;
						case 39:
								entity.thickness = curr.value as number;
								break;
						case 210:
								entity.extrusionDirection = helpers.parsePoint(scanner);
								break;
						case 100:
								break;
						default: // check common entity attributes
								helpers.checkCommonEntityProperties(entity, curr, scanner);
								break;
				}
				curr = scanner.next();
		}

		return entity;
	}
}
