LVectorClone::SetGroup

#include "ltwrappr.h"

virtual L_INT LVectorClone::SetGroup(pVectorGroup)

L_FAR LVectorGroup *pVectorGroup;

/* pointer to a vector group object */

Associates a vector group with a vector clone.

Parameter

Description

pVectorGroup

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

Returns

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

LVKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

Class Members

Topics:

Working with Vector Objects

Example

//Example148
// 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_VOID Example148(HWND hWnd, LVectorBase *pVector)
{
   //Create a new group
   LVectorGroup VectorGroup;
   VECTORGROUPDESC GroupDesc;
   VECTORPOINT point0, point1;
   COLORREF color;
   
   VectorGroup.GetGroupDesc(&GroupDesc);
   lstrcpy(GroupDesc.szName, TEXT("My New Group"));
   VectorGroup.SetGroupDesc(&GroupDesc);

   pVector->AddGroup(&VectorGroup);
   
   //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 a clone of the group
   VECTORCLONE     Clone;
   LVectorClone    VectorClone;
   VectorClone.SetGroup(&VectorGroup);

   VectorClone.LockObject(&Clone);
   
   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;

   VectorClone.UnlockObject(&Clone);
   pVector->AddObject(&VectorClone );

   //~LVectorClone() destructor gets called when VectorClone object goes out of scope
}