/* -*- C++ -*- * Copyright ©2005 Hugo Mills * * This software is distributed under the terms of the GNU GPL * For more information on the GPL, see the file COPYING or * visit http://www.gnu.org/ * * This software is distributed without warranty */ #include "content_outline_rawcontourset.h" RawContourSet::RawContourSet() { } RawContourSet::~RawContourSet() { } // Structure is: // A contour set has many layers of multiple colours // A contour is a single coloured layer, of one or more closed loops // An outline is a single closed loop of colour typedef std::vector RawOutline_Inline; class RawContour_Inline { public: ivec3 colour; std::vector outlines; }; RawContourSet_Inline::RawContourSet_Inline() { RawContour_Inline* roi = new RawContour_Inline(); roi->colour[0] = 255; roi->colour[1] = roi->colour[2] = 0; roi->outlines.push_back(RawOutline_Inline(50)); for(int i=0; i<50; i++) { roi->outlines[0][i][0] = cos(2*M_PI/i); roi->outlines[0][i][1] = sin(2*M_PI/i); } contours.push_back(roi); } RawContourSet_Inline::~RawContourSet_Inline() { for(int i=0; icolour; } size_t RawContourSet_Inline::noutlines(size_t contour) const { return contours[contour]->outlines.size(); } size_t RawContourSet_Inline::npoints(size_t contour, size_t outline) const { return contours[contour]->outlines[outline].size(); } dvec2 RawContourSet_Inline::point(size_t contour, size_t outline, size_t point) const { return contours[contour]->outlines[outline][point]; }