From 249203127d1ae989785978024ef0ad25bc994384 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sat, 11 Jul 2009 16:54:58 +0000 Subject: Allow Array's of non-POD types through specialized Array_Element class. --- libdimensionxx/dimensionxx/geometry.hpp | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'libdimensionxx/dimensionxx/geometry.hpp') diff --git a/libdimensionxx/dimensionxx/geometry.hpp b/libdimensionxx/dimensionxx/geometry.hpp index fdeccf0..4da6f47 100644 --- a/libdimensionxx/dimensionxx/geometry.hpp +++ b/libdimensionxx/dimensionxx/geometry.hpp @@ -134,6 +134,65 @@ namespace Dimension dmnsn_line m_line; }; + // Array_Element specializations + + template <> + class Array_Element + : public DMNSN_Array_Element + { + public: + typedef dmnsn_matrix C_Type; + + Array_Element() + : DMNSN_Array_Element(Matrix()) { } + Array_Element(Matrix& matrix) + : DMNSN_Array_Element(matrix) { } + Array_Element(C_Type c) + : DMNSN_Array_Element(c) { } + // Array_Element(const Array_Element& ae); + // ~Array_Element(); + + // Array_Element& operator=(const Array_Element& ae); + }; + + template <> + class Array_Element + : public DMNSN_Array_Element + { + public: + typedef dmnsn_vector C_Type; + + Array_Element() + : DMNSN_Array_Element(Vector()) { } + Array_Element(Vector& vector) + : DMNSN_Array_Element(vector) { } + Array_Element(C_Type c) + : DMNSN_Array_Element(c) { } + // Array_Element(const Array_Element& ae); + // ~Array_Element(); + + // Array_Element& operator=(const Array_Element& ae); + }; + + template <> + class Array_Element + : public DMNSN_Array_Element + { + public: + typedef dmnsn_line C_Type; + + Array_Element() + : DMNSN_Array_Element(Line()) { } + Array_Element(Line& line) + : DMNSN_Array_Element(line) { } + Array_Element(C_Type c) + : DMNSN_Array_Element(c) { } + // Array_Element(const Array_Element& ae); + // ~Array_Element(); + + // Array_Element& operator=(const Array_Element& ae); + }; + // Matrix operators inline Matrix -- cgit v1.2.3