Associates a vector group with a vector clone.
#include "ltwrappr.h"
virtual L_INT LVectorClone::SetGroup(pVectorGroup)
Pointer to an LVectorGroup object to be associated with the clone object.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
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.
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 groupL_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 rectanglepoint0.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 rectanglepoint0.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 rectanglepoint0.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 layerZeroMemory( &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 groupVECTORCLONE 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 scopereturn SUCCESS;}