BlinkenArea - GitList
Repositories
Blog
Wiki
libetherpix
Code
Commits
Branches
Tags
Search
Tree:
4ef7955
Branches
Tags
master
libetherpix
config_gen
src
distri.cpp
update copyright year
Stefan Schuermans
commited
4ef7955
at 2017-05-20 16:55:59
distri.cpp
Blame
History
Raw
/* * EtherPix config file generator * * Copyright 2010-2017 Stefan Schuermans <stefan schuermans info> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * * This program 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 Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <iostream> #include <vector> #include "chain.h" #include "distri.h" #include "point.h" Distri::Distri(unsigned int no, unsigned int chainCnt, unsigned int pixelCnt): mNo(no), mChainCnt(chainCnt), mPixelCnt(pixelCnt) { } int Distri::pixCoord(const Point &pix0, const Point &pixSz, unsigned int width, unsigned int height) { bool err = false; if (mChains.size() > mChainCnt) { std::cerr << "too many chains (" << mChains.size() << "/" << mChainCnt << ") for distributor " << std::hex << mNo << std::endl; err = true; } std::vector<Chain>::iterator itC; unsigned int c; for (itC = mChains.begin(), c = 0; itC != mChains.end(); ++itC, ++c) if (itC->pixCoord(pix0, pixSz, width, height, mNo, c) != 0) err = true; return err ? -1 : 0; } void Distri::writeDistri(std::ostream &strm) const { strm << "distributor " << mNo << " = " << mChainCnt << "," << mPixelCnt << std::endl; } void Distri::writeMapping(std::ostream &strm) const { strm << "mapping " << mNo << " red = 0.0 1.0 1.0" << std::endl << "mapping " << mNo << " green = 0.0 1.0 1.0" << std::endl << "mapping " << mNo << " blue = 0.0 1.0 1.0" << std::endl; } void Distri::writePixels(std::ostream & strm) const { std::vector<Chain>::const_iterator itC; unsigned int c; for (itC = mChains.begin(), c = 0; itC != mChains.end(); ++itC, ++c) { strm << "output " << mNo << "," << c << " ="; itC->writePixels(strm); strm << std::endl; } }