00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_display.h"
00035 #include "../../Core/System/sharedptr.h"
00036
00040 enum CL_PointSpriteOrigin
00041 {
00042 cl_point_sprite_origin_upper_left,
00043 cl_point_sprite_origin_lower_left
00044 };
00045
00046 class CL_Pen_Impl;
00047
00051 class CL_API_DISPLAY CL_Pen
00052 {
00054 public:
00056 CL_Pen();
00057
00058 virtual ~CL_Pen();
00059
00061 public:
00063 float get_point_size() const;
00064
00066 float get_max_point_size() const;
00067
00069 float get_min_point_size() const;
00070
00072 float get_point_fade_treshold_size() const;
00073
00075 void get_point_distance_attenuation(float &a, float &b, float &c) const;
00076
00078 bool is_point_antialiased() const;
00079
00080
00081 float get_line_width() const;
00082
00084 unsigned short get_line_stipple_pattern() const;
00085
00087 int get_line_stipple_repeat_count() const;
00088
00090 bool is_line_stippled() const;
00091
00093 bool is_line_antialiased() const;
00094
00096 bool is_using_point_sprites() const;
00097
00099 bool is_using_vertex_program_point_sizes() const;
00100
00102 CL_PointSpriteOrigin get_point_sprite_origin() const;
00103
00105 public:
00107 void set_point_size(float);
00108
00110 void set_max_point_size(float);
00111
00113 void set_min_point_size(float);
00114
00116 void set_point_fade_treshold_size(float);
00117
00119 void set_point_distance_attenuation(float a, float b, float c);
00120
00122
00123 void enable_point_antialiasing(bool enabled);
00124
00126
00127 void set_line_width(float);
00128
00130
00134 void set_line_stipple_pattern(unsigned short);
00135
00137
00139 void set_line_stipple_repeat_count(int);
00140
00142
00143 void enable_line_stipple(bool enabled);
00144
00146
00147 void enable_line_antialiasing(bool enabled);
00148
00150 void enable_point_sprite(bool enable);
00151
00153 void enable_vertex_program_point_size(bool enable);
00154
00156 void set_point_sprite_origin(CL_PointSpriteOrigin origin);
00157
00159 private:
00160 CL_SharedPtr<CL_Pen_Impl> impl;
00161 };
00162