/* * GDSII-Converter * Copyright (C) 2018 Mario Hüttel * * This file is part of GDSII-Converter. * * GDSII-Converter is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * GDSII-Converter is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GDSII-Converter. If not, see . */ /** * @file vector-operations.h * @brief Header for 2D Vector operations * @author Mario Hüttel */ #ifndef _VECTOR_OPERATIONS_H_ #define _VECTOR_OPERATIONS_H_ struct vector_2d { double x; double y; }; double vector_2d_scalar_multipy(struct vector_2d *a, struct vector_2d *b); void vector_2d_normalize(struct vector_2d *vec); void vecor_2d_rotate(struct vector_2d *vec, double angle); struct vector_2d *vecor_2d_copy(struct vector_2d *opt_res, struct vector_2d *vec); struct vector_2d *vector_2d_alloc(void); void vector_2d_free(struct vector_2d *vec); void vector_2d_scale(struct vector_2d *vec, double scale); double vector_2d_abs(struct vector_2d *vec); #endif /* _VECTOR_OPERATIONS_H_ */