LVectorClone::SetGroup

#include "ltwrappr.h"

virtual L_INT LVectorClone::SetGroup(pVectorGroup)

Associates a vector group with a vector clone.

Parameters

LVectorGroup *pVectorGroup

Pointer to an LVectorGroup object to be associated with the clone object.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

A vector clone object must be associated with a vector group before it can be added to an LVectorBase object, using LVectorBase::AddObject or LVectorLayer::AddObject.

Required DLLs and Libraries

See Also

Functions

Topics

Example

This example will add a three square to a LVectorBase object and to a LVectorGroup object. A "clone" vector object will be created from the group, and displayed with purple hatched brush.

L_VOID CreateRectangle( 
   LVectorBase *pVector,  
   LVectorGroup *pGroup,  
   VECTORPOINT point0,  
   VECTORPOINT point1,  
   COLORREF crPen,  
   COLORREF crBrush) 
{ 
   VECTORRECTANGLE     Rectangle; 
   Rectangle.Point[0] = point0; 
   Rectangle.Point[1] = point1; 
 
   Rectangle.Brush.nSize = sizeof(VECTORBRUSH); 
   Rectangle.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD; 
   Rectangle.Brush.BrushType.StandardBrush.LogBrush.lbColor = crBrush; 
   Rectangle.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_SOLID; 
 
   Rectangle.Pen.nSize = sizeof( VECTORPEN ); 
   Rectangle.Pen.bExtPen = FALSE; 
   Rectangle.Pen.NewPen.LogPen.lopnStyle = PS_SOLID; 
   Rectangle.Pen.NewPen.LogPen.lopnWidth.x = 2; 
   Rectangle.Pen.NewPen.LogPen.lopnWidth.y = 2; 
   Rectangle.Pen.NewPen.LogPen.lopnColor = crPen; 
 
   LVectorRectangle VectorRectangle(&Rectangle); 
   pVector->AddObject(&VectorRectangle); 
   pGroup->AddObject(&VectorRectangle); 
} 
 
L_INT LVectorClone__SetGroupExample(HWND hWnd, LVectorBase *pVector) 
{ 
   UNREFERENCED_PARAMETER(hWnd); 
   //Create a new group 
   L_INT             nRet; 
   LVectorGroup      VectorGroup; 
   VECTORGROUPDESC   GroupDesc; 
   VECTORPOINT       point0, point1; 
   COLORREF          color; 
   LVectorLayer      Layer; 
   VECTORLAYERDESC   LayerDesc; 
 
   nRet = VectorGroup.GetGroupDesc(&GroupDesc); 
   if(nRet != SUCCESS) 
      return nRet; 
   lstrcpy(GroupDesc.szName, TEXT("My New Group")); 
   nRet = VectorGroup.SetGroupDesc(&GroupDesc); 
   if(nRet != SUCCESS) 
      return nRet; 
   nRet = pVector->AddGroup(&VectorGroup); 
   if(nRet != SUCCESS) 
      return nRet; 
   //Create three rectangle objects and add to the group    
   //Add first rectangle 
   point0.x = 10; point0.y = 10; point0.z = 10; 
   point1.x = 30; point1.y = 30; point1.z = 10; 
   color = RGB(255,0,0); 
   CreateRectangle(pVector, &VectorGroup, point0, point1, color, color); 
   //Add second rectangle 
   point0.x = 30; point0.y = 30; point0.z = 10; 
   point1.x = 50; point1.y = 50; point1.z = 10; 
   color = RGB(0,255,0); 
   CreateRectangle(pVector, &VectorGroup, point0, point1, color, color); 
   //Add third rectangle 
   point0.x = 50; point0.y = 50; point0.z = 10; 
   point1.x = 70; point1.y = 70; point1.z = 10; 
   color = RGB(0,0,255); 
   CreateRectangle(pVector, &VectorGroup, point0, point1, color, color); 
 
   // create an empty layer 
   ZeroMemory( &LayerDesc, sizeof( LayerDesc ) ); 
   LayerDesc.nSize = sizeof( LayerDesc ); 
   lstrcpy( LayerDesc.szName, TEXT("My Layer")); 
   LayerDesc.bVisible = TRUE; 
   LayerDesc.bLocked = FALSE; 
   LayerDesc.dwTag = 0L; 
   Layer.SetLayerDesc(&LayerDesc); 
 
   //Create a clone of the group 
   VECTORCLONE     Clone; 
   LVectorClone    VectorClone; 
   nRet = VectorClone.SetGroup(&VectorGroup); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   nRet = VectorClone.LockObject(&Clone); 
   if(nRet != SUCCESS) 
      return nRet; 
   Clone.dwFlags = VECTOR_CLONE_USE_PEN | VECTOR_CLONE_USE_BRUSH; 
   Clone.Pen.bExtPen = FALSE; 
   Clone.Pen.NewPen.LogPen.lopnColor = RGB(0,0,0);    
   Clone.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB(255,0,255); 
   Clone.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_HATCHED; 
   Clone.Point.x = 40; 
   Clone.Point.y = 40; 
   Clone.Point.z = 40; 
   Clone.Rotation.x = 0; 
   Clone.Rotation.y = 0; 
   Clone.Rotation.z = 45; 
   nRet = VectorClone.UnlockObject(&Clone); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   nRet = pVector->AddLayer(&Layer); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   nRet = Layer.AddObject(&VectorClone); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   //~LVectorClone() destructor gets called when VectorClone object goes out of scope 
   return SUCCESS; 
} 

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Vector C++ Class Library Help