// @(#)root/base:$Name: $:$Id: TAttMarker.cxx,v 1.9 2004/09/13 16:39:12 brun Exp $
// Author: Rene Brun 12/05/95
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#include "Riostream.h"
#include "Strlen.h"
#include "TAttMarker.h"
#include "TVirtualPad.h"
#include "TStyle.h"
#include "TVirtualX.h"
#include "TVirtualPadEditor.h"
#include "TColor.h"
ClassImp(TAttMarker)
//______________________________________________________________________________
//*-*-*-*-*-*-*-*-*-*-*-*-*Marker Attributes class*-*-*-*-*-*-*-*-*-*-*-*-*-*
//*-* =======================
//*-* Marker attributes are:
//*-* Marker Color
//*-* Marker style
//*-* Marker Size
//*-*
//*-* This class is used (in general by secondary inheritance)
//*-* by many other classes (graphics, histograms).
//*-*
//*-* List of the currently supported markers (screen and PostScript)
//*-* ===============================================================
//*-* 1 : dot kDot
//*-* 2 : + kPlus
//*-* 3 : * kStar
//*-* 4 : o kCircle
//*-* 5 : x kMultiply
//*-* 6 : small scalable dot kFullDotSmall
//*-* 7 : medium scalable dot kFullDotMedium
//*-* 8 : large scalable dot kFullDotLarge
//*-* 9 -->15 : dot
//*-* 16 : open triangle down kOpenTriangleDown
//*-* 18 : full cross kFullCross
//*-* 20 : full circle kFullCircle
//*-* 21 : full square kFullSquare
//*-* 22 : full triangle up kFullTriangleUp
//*-* 23 : full triangle down kFullTriangleDown
//*-* 24 : open circle kOpenCircle
//*-* 25 : open square kOpenSquare
//*-* 26 : open triangle up kOpenTriangleUp
//*-* 27 : open diamond kOpenDiamond
//*-* 28 : open cross kOpenCross
//*-* 29 : open star kOpenStar
//*-* 30 : full star kFullStar
//*-*
//
/*
*/
//
//*-*
//*-* Various marker sizes are shown in the figure below.
//*-* The default marker size=1 is shown in the botton left corner.
//*-* Marker sizes smaller than 1 can be specified.
//*-*
//
/*
*/
//
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//______________________________________________________________________________
TAttMarker::TAttMarker()
{
//*-*-*-*-*-*-*-*-*-*-*-*-*AttMarker default constructor*-*-*-*-*-*-*-*-*-*-*
//*-* =============================
//*-* Default text attributes are taking from the current style
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
if (!gStyle) return;
fMarkerColor = gStyle->GetMarkerColor();
fMarkerStyle = gStyle->GetMarkerStyle();
fMarkerSize = gStyle->GetMarkerSize();
}
//______________________________________________________________________________
TAttMarker::TAttMarker(Color_t color, Style_t style, Size_t msize)
{
//*-*-*-*-*-*-*-*-*-*-*-*-*AttMarker normal constructor*-*-*-*-*-*-*-*-*-*-*-*
//*-* ============================
//*-* Text attributes are taking from the argument list
//*-* color : Marker Color Index
//*-* style : Marker style (from 1 to 30)
//*-* size : marker size (float)
//*-*
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
fMarkerColor = color;
fMarkerSize = msize;
fMarkerStyle = style;
}
//______________________________________________________________________________
TAttMarker::~TAttMarker()
{
//*-*-*-*-*-*-*-*-*-*-*-*-*AttMarker destructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//*-* ====================
}
//______________________________________________________________________________
void TAttMarker::Copy(TAttMarker &attmarker) const
{
//*-*-*-*-*-*-*-*-*Copy this marker attributes to a new atttext*-*-*-*-*-*-*-*
//*-* ============================================
attmarker.fMarkerColor = fMarkerColor;
attmarker.fMarkerStyle = fMarkerStyle;
attmarker.fMarkerSize = fMarkerSize;
}
//______________________________________________________________________________
void TAttMarker::Modify()
{
//*-*-*-*-*-*-*-*-*-*Change current marker attributes if necessary*-*-*-*-*-*-*
//*-* =============================================
if (!gPad) return;
if (!gPad->IsBatch()) {
gVirtualX->SetMarkerColor(fMarkerColor);
gVirtualX->SetMarkerSize (fMarkerSize);
gVirtualX->SetMarkerStyle(fMarkerStyle);
}
gPad->SetAttMarkerPS(fMarkerColor,fMarkerStyle,fMarkerSize);
}
//______________________________________________________________________________
void TAttMarker::ResetAttMarker(Option_t *)
{
//*-*-*-*-*-*-*-*-*Reset this marker attributes to default values*-*-*-*-*-*-*
//*-* ==============================================
fMarkerColor = 1;
fMarkerStyle = 1;
fMarkerSize = 1;
}
//______________________________________________________________________________
void TAttMarker::SaveMarkerAttributes(ofstream &out, const char *name, Int_t coldef, Int_t stydef, Int_t sizdef)
{
// Save line attributes as C++ statement(s) on output stream out
if (fMarkerColor != coldef) {
if (fMarkerColor > 228) {
TColor::SaveColor(out, fMarkerColor);
out<<" "<<name<<"->SetMarkerColor(ci);" << endl;
} else
out<<" "<<name<<"->SetMarkerColor("<<fMarkerColor<<");"<<endl;
}
if (fMarkerStyle != stydef) {
out<<" "<<name<<"->SetMarkerStyle("<<fMarkerStyle<<");"<<endl;
}
if (fMarkerSize != sizdef) {
out<<" "<<name<<"->SetMarkerSize("<<fMarkerSize<<");"<<endl;
}
}
//______________________________________________________________________________
void TAttMarker::SetMarkerAttributes()
{
//*-*-*-*-*-*-*-*-*Invoke the DialogCanvas Marker attributes*-*-*-*-*-*-*
//*-* =========================================
//if (gPad) gPad->UpdateMarkerAttributes(fMarkerColor,fMarkerStyle,fMarkerSize);
TVirtualPadEditor::UpdateMarkerAttributes(fMarkerColor,fMarkerStyle,fMarkerSize);
}
ROOT 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.