m_IsGreyScale(
false),
94 const unsigned int N= 10;
95 const charbinchar[
N] =
97char(0x80), char(0x81), char(0x82), char(0x83), char(0x84),
98char(0x85), char(0x86), char(0x87), char(0x88), char(0x89)
110_info[
"Author"] =
new CPdfString(
"National Center for Biotechnology Information");
111_info[
"Creator"] =
new CPdfString(
"NCBI Genome Workbench http://www.ncbi.nlm.nih.gov/tools/gbench/");
112_info[
"Producer"] =
new CPdfString(
"NCBI PDF Generator");
133ol[
"Type"] =
new CPdfName(
"Outlines");
147 const stringfontname((*font)[
"Name"]->GetValue());
159(*m_PageDictionary)[
"Resources"] = resources;
230 if(alpha_state !=
"") {
240 LOG_POST(
"Unable to write text - current content object is NULL.");
255 if(alpha_state !=
"") {
265 LOG_POST(
"Unable to write text - current content object is NULL.");
272vector<CGlVboNode*>& geom_nodes = model.
GetNodes();
275 for(
size_t i=0;
i<geom_nodes.size(); ++
i) {
276 if(geom_nodes[
i]->IsVisible() && !geom_nodes[
i]->IsSkipped(
eRenderPDF) ) {
277 if(geom_nodes[
i]->GetState().ScaleInvarientSet() &&
278geom_nodes[
i]->GetState().GetScaleInvarient()) {
281 if(geom_nodes[
i]->GetState().GetScaleInvarient()) {
282geom_nodes[
i]->GetState().ScaleFactor(scale);
289vector<CGlVboNode*>& temp_geom_nodes = model.
GetTempNodes();
291 for(
size_t i=0;
i<temp_geom_nodes.size(); ++
i) {
292 if(temp_geom_nodes[
i]->IsVisible() && !temp_geom_nodes[
i]->IsSkipped(
eRenderPDF) ) {
293 if(temp_geom_nodes[
i]->GetState().ScaleInvarientSet() &&
294temp_geom_nodes[
i]->GetState().GetScaleInvarient()) {
297 if(temp_geom_nodes[
i]->GetState().GetScaleInvarient()) {
298temp_geom_nodes[
i]->GetState().ScaleFactor(scale);
316GLdouble model_view_matrix[16];
317GLdouble projection_matrix[16];
319viewport[0] = GLint(vp.
Left());
320viewport[1] = GLint(vp.
Bottom());
321viewport[2] = GLint(vp.
Width());
322viewport[3] = GLint(vp.
Height());
328 doublellx = (double)rect.
X();
329 doublelly = (double)rect.
Y();
331 doubleurx = (double)rect.
Z();
332 doubleury = (double)rect.
W();
334 doublepx,py,px2,py2,dummyz;
337model_view_matrix, projection_matrix, viewport,
344model_view_matrix, projection_matrix, viewport,
345&px2, &py2, &dummyz);
352popup_dict[
"Border"]=
new CPdfElement(
" [0 0 0]");
354popup_dict[
"Contents"] =
new CPdfString(txt);
355popup_dict[
"Type"] =
new CPdfName(
"Annot");
357popup_dict[
"Subtype"] =
new CPdfName(
"Square");
374annot_dict[
"Subtype"] =
new CPdfName(
"Popup");
375annot_dict[
"Type"] =
new CPdfName(
"Annot");
378annot_dict[
"Open"] =
new CPdfElement(
" false");
393GLdouble model_view_matrix[16];
394GLdouble projection_matrix[16];
396viewport[0] = GLint(vp.
Left());
397viewport[1] = GLint(vp.
Bottom());
398viewport[2] = GLint(vp.
Width());
399viewport[3] = GLint(vp.
Height());
405 doublellx = (double)rect.
X();
406 doublelly = (double)rect.
Y();
408 doubleurx = (double)rect.
Z();
409 doubleury = (double)rect.
W();
414model_view_matrix, projection_matrix, viewport,
421model_view_matrix, projection_matrix, viewport,
431popup_dict[
"Border"]=
new CPdfElement(
" [0 0 0]");
432popup_dict[
"Type"] =
new CPdfName(
"Annot");
434popup_dict[
"Subtype"] =
new CPdfName(
"Link");
435popup_dict[
"H"] =
new CPdfName(
"I");
438(*d)[
"JS"] =
new CPdfElement(
" (app.alert\\(\""+ txt +
"\", 3, 0, \""+ title +
"\"\\))");
439(*d)[
"S"] =
new CPdfName(
"JavaScript");
440(*d)[
"Type"] =
new CPdfName(
"Action");
441popup_dict[
"A"] = d;
483 boolhas_color =
false;
491vector<CVect4<unsigned char> > colors_uc;
494 for(
size_t i=0;
i<colors_uc.size(); ++
i)
495 colors.push_back(
CRgbaColor(colors_uc[
i][0], colors_uc[
i][1], colors_uc[
i][2], colors_uc[
i][3]));
499vector<float> tex_coords;
502 for(
size_t i=0;
i<tex_coords.size(); ++
i) {
510 for(
size_t i=0;
i<
colors.size(); ++
i) {
521vector<CVect2<float> > vertices;
522vector<CRgbaColor>
colors;
526 if(vertices.size() == 0)
530GLdouble model_view_matrix[16];
531GLdouble projection_matrix[16];
536viewport[0] = GLint(vp.
Left());
537viewport[1] = GLint(vp.
Bottom());
538viewport[2] = GLint(vp.
Width());
539viewport[3] = GLint(vp.
Height());
553content->
SetClipBox(viewport[0], viewport[1], viewport[2], viewport[3]);
572 if(alpha_state !=
"") {
580 for(
size_t i=0;
i<vertices.size();
i+=2) {
587model_view_matrix, projection_matrix, viewport,
589v1p.
X() = (float)px;
590v1p.
Y() = (float)py;
602content->
Line(v1p, v2p);
621vector<CVect2<float> > vertices;
622vector<CRgbaColor>
colors;
626 if(vertices.size() == 0)
630GLdouble model_view_matrix[16];
631GLdouble projection_matrix[16];
633viewport[0] = GLint(vp.
Left());
634viewport[1] = GLint(vp.
Bottom());
635viewport[2] = GLint(vp.
Width());
636viewport[3] = GLint(vp.
Height());
647content->
SetClipBox(viewport[0], viewport[1], viewport[2], viewport[3]);
688 if(alpha_state !=
"") {
693 for(
size_t i=0;
i<vertices.size();
i+=2) {
694 if(
i+1 >= vertices.size())
704model_view_matrix, projection_matrix, viewport,
706v1p.
X() = (float)px;
707v1p.
Y() = (float)py;
709model_view_matrix, projection_matrix, viewport,
711v2p.
X() = (float)px;
712v2p.
Y() = (float)py;
724 floatdist = (v1p-v2p).Length();
726 if(cdist > 0.1f && dist > 5.0f) {
729 float offset= 5.0f/cdist;
730 intnum_segments = (
int)ceilf(dist/
offset);
731 floatdelta_pct = 1.0f/(float)num_segments;
736 for(
intj=0; j<num_segments; ++j) {
742 if(alpha_state != current_alpha_state) {
744alpha_state = current_alpha_state;
748content->
Line(seg_start, seg_end);
756 if(alpha_state != current_alpha_state) {
758alpha_state = current_alpha_state;
762content->
Line(v1p, v2p);
766content->
Line(v1p, v2p);
771 for(
size_t i=1;
i<vertices.size();
i++) {
780model_view_matrix, projection_matrix, viewport,
782v1p.
X() = (float)px;
783v1p.
Y() = (float)py;
785model_view_matrix, projection_matrix, viewport,
787v2p.
X() = (float)px;
788v2p.
Y() = (float)py;
793 if(alpha_state != current_alpha_state) {
795alpha_state = current_alpha_state;
799content->
Line(v1p, v2p);
803 for(
size_t i=1;
i<vertices.size();
i++) {
812model_view_matrix, projection_matrix, viewport,
814v1p.
X() = (float)px;
815v1p.
Y() = (float)py;
817model_view_matrix, projection_matrix, viewport,
819v2p.
X() = (float)px;
820v2p.
Y() = (float)py;
825 if(alpha_state != current_alpha_state) {
827alpha_state = current_alpha_state;
831content->
Line(v1p, v2p);
841model_view_matrix, projection_matrix, viewport,
843v1p.
X() = (float)px;
844v1p.
Y() = (float)py;
846model_view_matrix, projection_matrix, viewport,
848v2p.
X() = (float)px;
849v2p.
Y() = (float)py;
851content->
Line(v1p, v2p);
862vector<CVect2<float> > vertices;
863vector<CRgbaColor>
colors;
867 if(vertices.size() == 0)
871GLdouble model_view_matrix[16];
872GLdouble projection_matrix[16];
874viewport[0] = GLint(vp.
Left());
875viewport[1] = GLint(vp.
Bottom());
876viewport[2] = GLint(vp.
Width());
877viewport[3] = GLint(vp.
Height());
890content->
SetClipBox(viewport[0], viewport[1], viewport[2], viewport[3]);
909 for(
i=0;
i<vertices.size(); ++
i) {
916model_view_matrix, projection_matrix, viewport,
918vertices[
i].Set(
float(px),
float(py));
935 if(alpha_state !=
"") {
942 for(
i=0;
i<vertices.size();
i+=3) {
943 if(
i+2 >= vertices.size())
946 if(has_color && flat_shading) {
953tp.
AddTri(vertices[
i], vertices[
i+1], vertices[
i+2]);
959 if(perimeter.size() > 2 && fill) {
964 if(alpha_state != current_alpha_state) {
966alpha_state = current_alpha_state;
970content->
Poly(perimeter);
973 for(
i=0;
i<vertices.size();
i+=3) {
974 if(
i+2 >= vertices.size())
984 if(alpha_state != current_alpha_state) {
986alpha_state = current_alpha_state;
991content->
Tri(v1p, v2p, v3p);
994content->
Line(v1p, v2p);
995content->
Line(v2p, v3p);
996content->
Line(v3p, v1p);
1001 else if(node->
GetDrawMode() == GL_TRIANGLE_STRIP) {
1004 for(
size_tj=2; j<vertices.size(); ++j) {
1006 if(has_color && flat_shading) {
1013tp.
AddTri(vertices[j], vertices[j-1], vertices[j-2]);
1017vector<CVect2<float> > perimeter = tp.
GetPerimiter();
1019 if(perimeter.size() > 2 && fill) {
1024 if(alpha_state != current_alpha_state) {
1026alpha_state = current_alpha_state;
1030content->
Poly(perimeter);
1033 for(
size_tj=2; j<vertices.size(); ++j) {
1042 if(alpha_state != current_alpha_state) {
1044alpha_state = current_alpha_state;
1048content->
Tri(v1p, v2p, v3p);
1051content->
Line(v1p, v2p);
1052content->
Line(v2p, v3p);
1053content->
Line(v3p, v1p);
1058 else if(node->
GetDrawMode() == GL_TRIANGLE_FAN) {
1061vector<CVect2<float> > perimeter;
1062 for(
size_tj=1; j<vertices.size(); ++j) {
1063perimeter.push_back(vertices[j]);
1073 if(alpha_state != current_alpha_state) {
1075alpha_state = current_alpha_state;
1079content->
Poly(perimeter);
1082 for(
size_tj=2; j<vertices.size(); ++j) {
1090 if(alpha_state != current_alpha_state) {
1092alpha_state = current_alpha_state;
1096content->
Line(v1p, v2p);
1097content->
Line(v2p, v3p);
1098content->
Line(v3p, v1p);
1121vector<CVect2<float> > vertices;
1125 if(vertices.size() < 3)
1134 for(
size_tv=0; v<vertices.size(); ++v) {
1135minx =
std::min(vertices[v].X(), minx);
1136miny =
std::min(vertices[v].Y(), miny);
1137maxx =
std::max(vertices[v].X(), maxx);
1138maxy =
std::max(vertices[v].Y(), maxy);
1145 int(minx-10.0f),
int(maxx+10.0f),
1146 int(miny-10.0f),
int(maxy+10.0f));
1153 intrange_minx,
intrange_maxx,
1154 intrange_miny,
intrange_maxy)
1159vector<CVect2<float> > vertices;
1160vector<CRgbaColor>
colors;
1164 if(vertices.size() < 3)
1178range_miny, range_maxy);
1182 for(
size_tv=0; v+2<vertices.size(); v+=3) {
1188tris->
Tri(0, vertices[v], c1, vertices[v+1], c2, vertices[v+2], c3);
1191 else if(node->
GetDrawMode() == GL_TRIANGLE_STRIP) {
1197tris->
Tri(0, vertices[0], c1, vertices[1], c2, vertices[2], c3);
1199 for(
size_tv=3; v<vertices.size(); ++v) {
1203tris->
Tri(1, vertices[v], c1);
1206 else if(node->
GetDrawMode() == GL_TRIANGLE_FAN) {
1212tris->
Tri(0, vertices[0], c1, vertices[1], c2, vertices[2], c3);
1214 for(
size_tv=3; v<vertices.size(); ++v) {
1218tris->
Tri(2, vertices[v], c1);
1247GLdouble model_view_matrix[16];
1248GLdouble projection_matrix[16];
1250viewport[0] = GLint(vp.
Left());
1251viewport[1] = GLint(vp.
Bottom());
1252viewport[2] = GLint(vp.
Width());
1253viewport[3] = GLint(vp.
Height());
1271mvp(1, 0), mvp(1, 1), mvp(1, 3),
1272mvp(3, 0), mvp(3, 1), mvp(3, 3));
1275matvs(0,0) = ((double)viewport[2])/2.0;
1276matvs(1,1) = ((double)viewport[3])/2.0;
1278matvt(0,2) = matvs(0,0) + double(viewport[0]);
1279matvt(1,2) = matvs(1,1) + double(viewport[1]);
1281mat = matvt*matvs*mvp33;
1291shade_obj->
SetClipBox(viewport[0], viewport[1], viewport[2], viewport[3]);
1295 if(alpha_state !=
"")
1297(*shade_obj) <<
"/"<< shader_id <<
" sh"<<
'\n';
1316 boolshaded =
true;
1337vector<CVect2<float> > vertices;
1338vector<CRgbaColor>
colors;
1342 if(vertices.size() == 0)
1346GLdouble model_view_matrix[16];
1347GLdouble projection_matrix[16];
1349viewport[0] = GLint(vp.
Left());
1350viewport[1] = GLint(vp.
Bottom());
1351viewport[2] = GLint(vp.
Width());
1352viewport[3] = GLint(vp.
Height());
1365 for(
size_t i=3;
i<
colors.size();
i+=4) {
1370 OpenGL state is shaded (only tris may be shaded)");
1384content->
SetClipBox(viewport[0], viewport[1], viewport[2], viewport[3]);
1407 if(alpha_state !=
"") {
1411 for(
size_t i=3;
i<vertices.size();
i+=4) {
1424model_view_matrix, projection_matrix, viewport,
1426v1p.
X() = (float)px;
1427v1p.
Y() = (float)py;
1429model_view_matrix, projection_matrix, viewport,
1431v2p.
X() = (float)px;
1432v2p.
Y() = (float)py;
1434model_view_matrix, projection_matrix, viewport,
1436v3p.
X() = (float)px;
1437v3p.
Y() = (float)py;
1439model_view_matrix, projection_matrix, viewport,
1441v4p.
X() = (float)px;
1442v4p.
Y() = (float)py;
1449 if(alpha_state != current_alpha_state) {
1451alpha_state = current_alpha_state;
1456content->
Quad(v1p, v2p, v3p, v4p);
1459content->
Line(v1p, v2p);
1460content->
Line(v2p, v3p);
1461content->
Line(v3p, v4p);
1462content->
Line(v4p, v1p);
1487(*m_Trailer)[
"Size"] =
new CPdfNumber(num_objects);
1499 if(vertex_buf_size == 0)
1520vector<CRgbaColor>
colors;
1522alpha =
colors[0].GetAlpha();
1557 introunded_alpha =
int(alpha*100.0f);
CGlModel2D Base class for a model set up for rendering purposes.
CGlVboNode A rendering node that holds a vertex buffer object.
CIdGenerator - generates consecutive integer identifiers.
string GenShaderID()
Get a new (unique) shader ID of form sh##.
const TObjectList & GetFontObjects(void) const
list< TPdfObjectRef > TObjectList
void PushGraphicsState()
gs
void SetLineDashStyle(int factor, short pattern)
void Tri(CVect2< float > &p1, CVect2< float > &p2, CVect2< float > &p3)
void StartTris(EPdfFilter filter, EBitCount bits_per_coord, int range_minx, int range_maxx, int range_miny, int range_maxy)
void Line(CVect2< float > &p1, CVect2< float > &p2)
CPdfDictionary & GetDictionary(void)
void SetLineCapStyle(int cap_style)
void Text(CRef< CPdfFontHandler > font_handler, EFontFace face, float font_size, CVect2< float > &p, const char *txt)
void SetClipBox(int x, int y, int width, int height)
void SetFillColor(const CRgbaColor &c)
rg
void SetGraphicsState(const string &state)
void SetColor(const CRgbaColor &c)
RG.
void Poly(vector< CVect2< float > > &verts)
void SetLineJoinStyle(int join_style)
void Quad(CVect2< float > &p1, CVect2< float > &p2, CVect2< float > &p3, CVect2< float > &p4)
void SetLineWidth(float w)
unique_ptr< CPdfObjectWriter > m_ObjectWriter
void x_PrintFlatTriBuffer(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table=NULL)
For triangles in which vertices are all the same color.
CRef< CPdfDictionary > PageDictionary()
void AddTooltip(CGlPane &pane, const string &txt, CVect4< float > &rect)
CRef< CPdfTrailer > m_Trailer
vector< TPdfObjectRef > m_PrintInEndDoc
virtual void BeginPage(void)
void RenderShaderInstance(CGlVboNode *node, const string &shader_id, const TVPRect &vp)
Display an instance of a set of shaded triangles "shader_id", which is returned by AddShadedTris.
CRef< CIdGenerator > m_ObjIdGenerator
TPdfObjectRef m_CurrentAnnot
void PrintQuadBuffer(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table=NULL)
Quads are only supported as non-shaded (records error if shaded)
virtual void EndPage(void)
void AddJSTooltip(CGlPane &pane, const string &txt, const string &title, CVect4< float > &rect)
virtual void BeginDocument(void)
void PrintModel(CGlPane &pane, CGlModel2D &model, CRgbaGradColorTable *color_table=NULL)
Print contents of (2D) model.
virtual void SetOptions(const CPrintOptions &options)
CRef< CPdfDictionary > m_PageDictionary
unique_ptr< CPageHandler > m_PageHandler
TPdfObjectRef m_CurrentContent
virtual void SetOutputStream(CNcbiOstream *ostream)
void PrintTriBuffer(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table=NULL)
Prints AddShadedTris and RenderShaderInstance to save an instance of shaded triangles to the pdf.
virtual string x_GetAlphaGraphicsState(CGlVboNode *node)
string AddShadedTris(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table, CPdfObject::EBitCount bit_count=CPdfObject::e16Bit)
Add a triangle buffer to the pdf (but do not display it) Returns the ID of the triangle shader object...
bool x_GetColors(CGlVboNode *node, vector< CRgbaColor > &colors, CRgbaGradColorTable *color_table)
Return true if node has color buffer and update array with those colors.
virtual void EndReference()
CRef< CPdfFontHandler > m_FontHandler
virtual void EndContent()
virtual void EndDocument(void)
void PrintLineBuffer(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table=NULL)
Prints the lines in buffer "node" to the pdf using current graphics state, modelview and projection m...
TPdfObjectRef m_CurrentReference
void PrintText(CRef< CPdfFontHandler > font_handler, EFontFace face, float font_size, CVect2< float > &p, const char *txt, const CRgbaColor &c)
Write a string of text at the specified position (in screen coords).
virtual TPdfObjectRef BeginContent(EContentType t)
void PrintPointBuffer(CGlVboNode *node, const TVPRect &vp, CRgbaGradColorTable *color_table=NULL)
Prints the points in buffer "node" to the pdf using current graphics state, modelview and projection ...
virtual TPdfObjectRef BeginReference()
virtual TPdfObjectRef BeginAnnot()
void WriteObject(TPdfObjectRef &obj)
void PrintBuffer(CGlVboNode *node, const TVPRect &viewport, CRgbaGradColorTable *color_table=NULL)
Checks the buffer type and prints accodingly tris, points or lines.
unsigned int GetNumPages(void) const
TPdfUnit GetUserUnit() const
bool GetGouraudShadingDisabled() const
const string & GetTitle(void) const
bool GetPrintOutput(void) const
class CRgbaColor provides a simple abstraction for managing colors.
CRgbaGradColorTable Provides a storage for colors (to eliminate color creation overhead) and Function...
Simple helper class to take a bunch of triangles and extract from that set, if possible,...
size_t AddTri(CVect2< float > &v1p, CVect2< float > &v2p, CVect2< float > &v3p)
std::vector< CVect2< float > > GetPerimiter() const
returns empty vec if no perimeter can be found.
virtual void SetOutputStream(CNcbiOstream *ostream)
unique_ptr< CPageBuffers > m_PageBuffers
virtual CPrintOptions & GetOptions()
virtual void SetOptions(const CPrintOptions &options)
static const Colors colors
static const char * catalog
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Warning(CExceptionArgs_Base &args)
const T * GetData() const
GLenum GetShadeModel() const
int gluProjectX(GLdouble objx, GLdouble objy, GLdouble objz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble *winx, GLdouble *winy, GLdouble *winz)
GLenum GetPolygonMode() const
void Get2DVertexBuffer(std::vector< CVect2< float > > &verts) const
bool GetDefaultColor(CRgbaColor &default_color, bool is_greyscale) const
Return default color from node in default_color.
bool LineWidthSet() const
CRgbaColor GetTexCoordColor(float f) const
Get color given a texture coord.
CVect2< TModelUnit > GetScale() const
virtual CMatrix4< float > GetProjectionMatrix() const =0
void GetColorBuffer(vector< CRgbaColor > &data) const
vector< CGlVboNode * > & GetTempNodes()
GLfloat GetLineWidth() const
bool BlendFuncSet() const
virtual CMatrix4< float > GetModelViewMatrix() const =0
virtual void MatrixMode(GLenum mode)=0
vector< CGlVboNode * > & GetNodes()
void GetColorBufferUC(vector< CVect4< unsigned char > > &data) const
CMatrix4< float > GetTransformedPosition(size_t idx)
return the position with rotation and pixel offset baked in
IRender & GetGl()
convenience function for getting current render manager
TVPRect & GetViewport(void)
vector< CMatrix4< float > > & GetPositions()
return the current set of transformations for thisnode
GLfloat GetPointSize() const
bool LineCapStyleSet() const
bool IsEnabled(GLenum glstate) const
Return true if option is in m_Enabled list for this state.
GLenum GetSourceBlendFactor() const
EPdfShadeStyle GetPdfShadeStyle() const
virtual void PopMatrix()=0
void GetLineStipple(GLint &factor, GLushort &pattern) const
void GetTexCoordBuffer1D(vector< float > &data) const
bool PointSizeSet() const
bool LineJoinStyleSet() const
static bool CheckGlError()
Check if there are any OpenGL errors.
ELineCapStyle GetLineCapStyle() const
size_t GetVertexCount() const
CRgbaColor GetColor() const
GLenum GetTargetBlendFactor() const
EFontFace
Set of pre-defined fonts for which we know we have valid font files.
virtual void LoadMatrixf(const GLfloat *m)=0
IVboGeom::ESecondaryFormat GetSecondaryFormat() const
ELineJoinStyle GetLineJoinStyle() const
GLenum GetDrawMode() const
Return the current drawing mode (e.g.
virtual void PushMatrix()=0
bool LineStippleSet() const
@ kSecondaryFormatColorUChar
@ kSecondaryFormatColorFloat
@ kSecondaryFormatTexture1D
unsigned int NextId(void)
static float ColorDistance(const CRgbaColor &c1, const CRgbaColor &c2)
returns the distance in the RGB color cube between the two colors, scaled to a range [0,...
float GetAlpha(void) const
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null â same effect as Empty().
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
unsigned int
A callback function used to compare two keys in a database.
const struct ncbi::grid::netcache::search::fields::SIZE size
Defines: CTimeFormat - storage class for time format.
Int4 delta(size_t dimension_, const Int4 *score_)
CNcbiOstream & pdfeol(CNcbiOstream &strm)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4