// $Header: /cvs/gled-1.2/Geom1/Glasses/ZRibbon.cxx,v 1.3 2005/03/11 17:50:14 matevz Exp $
// Copyright (C) 1999-2005, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.
//__________________________________________________________________________
// ZRibbon
//
//
#include "ZRibbon.h"
#include "ZRibbon.c7"
#include <TSystem.h>
ClassImp(ZRibbon)
/**************************************************************************/
void ZRibbon::_init()
{
// !!!! Set all links to 0 !!!!
bLoadAdEnlight = false;
}
/**************************************************************************/
ZColor ZRibbon::MarkToCol(Float_t mark)
{
if(mColMarks.empty()) return ZColor();
list<ZColorMark>::iterator i = mColMarks.begin();
if(mark < i->m()) return ZColor(mColMarks.front());
++i;
while(i != mColMarks.end() && mark > i->m()) ++i;
if(i == mColMarks.end()) return ZColor(mColMarks.back());
list<ZColorMark>::iterator j = i;
--j;
if(j == mColMarks.end()) return ZColor(mColMarks.back());
Float_t fi = (mark - j->m())/(i->m() - j->m());
return fi * ZColor(*i) + (1 - fi) * ZColor(*j);
}
/**************************************************************************/
namespace {
const char loadpov_filter[] =
"perl -e 'while(<>) { next if /^#/; next if /^\s*$/; s/^\s*//; print; }'";
}
void ZRibbon::LoadPOV()
{
FILE* pov = gSystem->OpenPipe(
GForm("cpp %s | %s", mPOVFile.Data(), loadpov_filter), "r");
if(!pov) {
ISerr(GForm("ZRibbon::LoadPOV [%s] OpenPipe(%s) failed",
GetName(), mPOVFile.Data()));
return;
}
mColMarks.clear();
char linebuff[128];
while(fgets(linebuff, 128, pov)) {
float x, r, g, b, t;
int n = sscanf(linebuff, "[%f color rgbt <%f, %f, %f, %f>]",
&x, &r, &g, &b, &t);
if(n != 5) continue;
mColMarks.push_back(ZColorMark(x,r,g,b,1-t));
}
gSystem->ClosePipe(pov);
printf("ZRibbon::LoadPOV loaded %d marks from '%s'.n",
mColMarks.size(), mPOVFile.Data());
mStampReqTring = Stamp(FID());
}
/**************************************************************************/
ROOT page - Home page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.