Adding and Displaying Vector Objects

Start with the project you created in Working with Layers.

Take the following steps to start adding new layer and objects to the vector handle.

Note:

This tutorial will only use 3 types of objects (Line, Ellipse and Polygon) to keep things simple. You can refer to Vector object types all object types supported by the vector toolkit.

1.

Click the "Class View" tab of the project workspace.

2.

Click to open the MyVectorWindow branch.

3.

Double-click the MsgProcCallBack () member function.

4.

Add the following code immediately before case '1':

case 'l': 
case 'L': 
{ 
   // add a new vector line 
   VECTORLINE     Line; 
   L_INT          i; 
    
   Line.Pen.nSize = sizeof( VECTORPEN ); 
   Line.Pen.bExtPen = FALSE; 
   Line.Pen.NewPen.LogPen.lopnStyle = PS_SOLID; 
   Line.Pen.NewPen.LogPen.lopnWidth.x = 1; 
   Line.Pen.NewPen.LogPen.lopnWidth.y = 1; 
   Line.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 ); 
    
   // set the line start and end points 
   for( i = 0; i < 2; i++ ) 
   { 
      Line.Point[ i ].x = rand() % 100; 
      Line.Point[ i ].y = rand() % 100; 
      Line.Point[ i ].z = rand() % 100; 
   } 
    
   LVectorLine VectorLine(&Line); 
    
   // add to current active layer 
   LVectorLayer VectorLayer; 
   GetActiveLayer(&VectorLayer); 
   VectorLayer.AddObject (&VectorLine ); 
   this->Reset (); 
} 
break; 
 
case 'e': 
case 'E': 
{ 
   VECTORELLIPSE     Ellipse; 
    
   Ellipse.Point.x = rand() % 100;; 
   Ellipse.Point.y = rand() % 100;; 
   Ellipse.Point.z = rand() % 100;; 
    
   Ellipse.Pen.nSize = sizeof( VECTORPEN ); 
   Ellipse.Pen.bExtPen = FALSE; 
   Ellipse.Pen.NewPen.LogPen.lopnStyle = PS_SOLID; 
   Ellipse.Pen.NewPen.LogPen.lopnWidth.x = 2; 
   Ellipse.Pen.NewPen.LogPen.lopnWidth.y = 2; 
   Ellipse.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 ); 
    
   Ellipse.Brush.nSize = sizeof(VECTORBRUSH); 
   Ellipse.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD; 
   Ellipse.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 ); 
   Ellipse.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_SOLID; 
    
   Ellipse.xRadius = rand() % 10;; 
   Ellipse.yRadius = rand() % 10;; 
    
   LVectorEllipse VectorEllipse(&Ellipse); 
    
   // add to current active layer 
   LVectorLayer VectorLayer; 
    
   GetActiveLayer(&VectorLayer); 
   VectorLayer.AddObject (&VectorEllipse); 
   Reset (); 
} 
break; 
case 'g': 
case 'G': 
{ 
   VECTORPOLYGON     Polygon; 
   L_INT             i; 
    
   //Create Polygon Object 
   Polygon.Pen.nSize = sizeof( VECTORPEN ); 
   Polygon.Pen.bExtPen = FALSE; 
   Polygon.Pen.NewPen.LogPen.lopnStyle = PS_SOLID; 
   Polygon.Pen.NewPen.LogPen.lopnWidth.x = 2; 
   Polygon.Pen.NewPen.LogPen.lopnWidth.y = 2; 
   Polygon.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 ); 
    
   // set the polygon brush 
   Polygon.Brush.nSize = sizeof( VECTORBRUSH ); 
   Polygon.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD; 
   Polygon.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 ); 
   Polygon.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_SOLID; 
   Polygon.Brush.BrushType.StandardBrush.LogBrush.lbHatch = 0; 
    
   Polygon.nPointCount = rand() % 5 + 3; 
   Polygon.Point = (pVECTORPOINT) malloc(Polygon.nPointCount * sizeof( VECTORPOINT ) ); 
   for( i = 0; i < Polygon.nPointCount; i++ ) 
   { 
      Polygon.Point[ i ].x = rand() % 100; 
      Polygon.Point[ i ].y = rand() % 100; 
      Polygon.Point[ i ].z = rand() % 100; 
   } 
    
   // set polygon fill mode 
   Polygon.nPolyFillMode = VECTOR_POLY_ALTERNATE; 
    
   LVectorPolygon VectorPolygon(&Polygon); 
    
   // add to current active layer 
   LVectorLayer VectorLayer; 
   GetActiveLayer(&VectorLayer); 
   VectorLayer.AddObject (&VectorPolygon); 
    
   free( Polygon.Point ); 
   Reset (); 
} 
break; 

5.

Compile and run the demo.

6.

Hit the 'L' key to create random lines. Hit the 'G' key to create random polygons. Hit the 'E' key to create random ellipses.

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Vector C++ Class Library Help