OpenSceneGraph 3.6.5
Style
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSGTEXT_STYLE
15#define OSGTEXT_STYLE 1
16
17#include <osg/Object>
18#include <osg/Vec2>
19#include <osgText/Export>
20
21#include <iosfwd>
22#include <vector>
23
24namespace osgText
25{
26
28{
29 public:
30
32 Bevel(const Bevel& bevel, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
33
35
36 bool operator == (const Bevel& rhs) const
37 {
38 if (_smoothConcaveJunctions != rhs._smoothConcaveJunctions) return false;
39 if (_thickness != rhs._thickness) return false;
40 return _vertices==rhs._vertices;
41 }
42
43 void setSmoothConcaveJunctions(bool flag) { _smoothConcaveJunctions = flag; }
44 bool getSmoothConcaveJunctions() const { return _smoothConcaveJunctions; }
45
46 void setBevelThickness(float thickness) { _thickness = thickness; }
47 float getBevelThickness() const { return _thickness; }
48
49 void flatBevel(float width=0.25f);
50
51 void roundedBevel(float width=0.5f, unsigned int numSteps=10);
52
53 void roundedBevel2(float width=0.5f, unsigned int numSteps=10);
54
55 typedef std::vector<osg::Vec2> Vertices;
56
57 void setVertices(const Vertices& vertices) { _vertices = vertices; }
59 const Vertices& getVertices() const { return _vertices; }
60
61 void print(std::ostream& fout);
62
63 protected:
64
68};
69
70
72{
73 public:
74
76 Style(const Style& style, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
77
79
82
83 bool operator == (const Style& style) const;
84
86 void setBevel(Bevel* bevel) { _bevel = bevel; }
87 const Bevel* getBevel() const { return _bevel.get(); }
88
89
91 void setWidthRatio(float widthRatio) { _widthRatio = widthRatio; }
92 float getWidthRatio() const { return _widthRatio; }
93
95 void setThicknessRatio(float thicknessRatio) { _thicknessRatio = thicknessRatio; }
96 float getThicknessRatio() const { return _thicknessRatio; }
97
99 void setOutlineRatio(float outlineRatio) { _outlineRatio = outlineRatio; }
100 float getOutlineRatio() const { return _outlineRatio; }
101
103 void setSampleDensity(float sd) { _sampleDensity = sd; }
104 float getSampleDensity() const { return _sampleDensity; }
105
106 protected:
107
109
114};
115
116}
117
118#endif
The osgText library is a NodeKit that extends the core scene graph to support high quality text.
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
Definition Style:28
std::vector< osg::Vec2 > Vertices
Definition Style:55
void setVertices(const Vertices &vertices)
Definition Style:57
void roundedBevel(float width=0.5f, unsigned int numSteps=10)
void print(std::ostream &fout)
Vertices _vertices
Definition Style:67
bool _smoothConcaveJunctions
Definition Style:65
Vertices & getVertices()
Definition Style:58
META_Object(osgText, Bevel) bool operator
const Vertices & getVertices() const
Definition Style:59
Bevel(const Bevel &bevel, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
void roundedBevel2(float width=0.5f, unsigned int numSteps=10)
float _thickness
Definition Style:66
float _sampleDensity
Definition Style:113
void setOutlineRatio(float outlineRatio)
0 is off
Definition Style:99
const Bevel * getBevel() const
Definition Style:87
float _thicknessRatio
Definition Style:111
osg::ref_ptr< Bevel > _bevel
Definition Style:108
float getSampleDensity() const
Definition Style:104
void setWidthRatio(float widthRatio)
1 is the default width of the text
Definition Style:91
float getOutlineRatio() const
Definition Style:100
float getWidthRatio() const
Definition Style:92
Style(const Style &style, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
float getThicknessRatio() const
Definition Style:96
void setBevel(Bevel *bevel)
NULL is no bevel.
Definition Style:86
void setThicknessRatio(float thicknessRatio)
0 is 2D text
Definition Style:95
static osg::ref_ptr< Style > & getDefaultStyle()
default Layout implementation used if no other is specified on TextNode
float _widthRatio
Definition Style:110
void setSampleDensity(float sd)
1.0 is default number of samples
Definition Style:103
float _outlineRatio
Definition Style:112
META_Object(osgText, Style)
#define OSGTEXT_EXPORT
Definition Export:39

osg logo
Generated at Wed Jul 23 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.