Kernel SDK Developer's Guide > Working with the Ge Library > Example of Entering and Displaying 2D Vector Objects
Example of Entering and Displaying 2D Vector Objects

The example demonstrates working with the two-dimensional vector object, including the display and modification of its properties. The AboutVector2d() function requires a reference to an existing two-dimensional vector as an OdGeVector2d instance and returns the string containing the values of  X, Y coordinates of the passed vector as an OdString value. The function declares the variable of the OdString type and uses the format() method to convert the coordinates to a string. The AboutVector2d() function has the following implementation:

OdString AboutVector2d(const OdGeVector2d& vector)
{ 
  OdString s;
  s.format(L"(%g,%g)", vector.x, vector.y);
  return s;
}

The EntryVector2d() function requires a reference to an existing two-dimensional vector as an OdGeVector2d instance which is used as a default value and returns True if the user modifies the passed instance, or False if the user cancels entry. The function organizes a loop for entry of coordinates and displays the current values of coordinates before the loop. If an entered value of a coordinate is incorrect, the function displays an error message and repeats the entry. If the entered X, Y coordinates are correct, the function passes the modified instance in the calling function through own argument and returns True as a result. If the user selects [Q], the function cancels the entry, remains the current coordinates, and returns False as a result. The EntryVector2d() function has the following implementation:

bool EntryVector2d(const OdGeVector2d& vector)
{
  wchar_t ch;
  OdGeVector2d value = vector;

  wcout << L"\nCurrent vector directions: " << AboutVector2d(vector) << L"\n";
  do {
    wcout << L"Entry X-direction:>";
    wcin >> value.x;

    if(!wcin.fail() && wcin.peek() == 10)
    {
      wcout << L"Entry Y-direction:>";
      wcin >> value.y;

      if(!wcin.fail() && wcin.peek() == 10)
      {
        vector = value;
        return true;
      }
    }
    wcin.clear();  
    wcin.sync();
    wcout << L"Error: Invalid entered value\nPress any key to repeat [or Q-quit]:>";
    wcin >> ch;
  } 
  while(ch != L'Q' && ch != L'q');

  return false;
}

Note: The «toString» sample code contains an additional example for converting an OdGeVector2d value to an OdString value.

The AboutVector2d() and EntryVector2d() functions are used in the documented examples that require display and entry of a two-dimensional vector.

See Also

Working with Basic Geometry Types

Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.