Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

developer:sdksamples:addtext [2015/09/14] (current)
Line 1: Line 1:
 +====== How To: Add Text to Rhino ======
 +> **Developer:​** //​[[developer:​cplusplusplugins|C++]]//​
 +> **Summary:​** //​Demonstrates how to use ON_TextEntity2 to add text to Rhino.//
 +
 +===== C++ =====
 +<code c++>
 +bool AddAnnotationText(
 +      CRhinoDoc&​ doc,       // reference to active document
 +      const ON_3dPoint&​ pt, // location of anotation text
 +      const wchar_t* text,  // the text
 +      double height, ​       // height of text item
 +      const wchar_t* font,  // font or face name
 +      int style             // style 0=normal, 1=bold,
 +      )                     // ​      ​2=italic,​ 3=bold and italic
 +{
 +  bool rc = false;
 +
 +  ON_wString wText( text );
 +  if( wText.IsEmpty() )
 +    return rc;
 +
 +  if( height <= 0 )
 +    height = 1.0;
 +
 +  ON_wString wFont( font );
 +  if( wFont.IsEmpty() )
 +    wFont = L"​Arial";​
 +
 +  if( style < 0 | style > 3 )
 +    style = 0;
 +
 +  ON_Plane plane = RhinoActiveCPlane();​
 +  plane.SetOrigin( pt );
 +
 +  ON_TextEntity2* text_entity = new ON_TextEntity2;​
 +  CRhinoAnnotationText* text_object = new CRhinoAnnotationText;​
 +  text_object->​SetAnnotation( text_entity );
 +  text_object->​SetTextHeight( height );
 +  text_object->​SetString( wText );
 +  text_object->​SetPlane( plane );
 +  int idx = doc.m_font_table.FindOrCreateFont( wFont, style & 1, style & 2 );
 +  text_object->​SetFontIndex( idx );
 +
 +  if( doc.AddObject(text_object) )
 +  {
 +    rc = true;
 +    doc.Redraw();​
 +  }
 +  else
 +  {
 +    delete text_object;​
 +    text_object = 0;
 +  }
 +  return rc;
 +}
 +</​code>​
 +
 +{{tag>​Developer cplusplus}}
  
developer/sdksamples/addtext.txt ยท Last modified: 2015/09/14 (external edit)