Class Insert_ (unit DXF_structs)

Inherits from

Point_

///////////////////////////////////////////////////////////////////////////// Insert Definition (optionally contains attribs) /////////////////////////////////////////////////////////////////////////////

Constructors


constructor create(OCSaxis,p,s_f:Point3D; rot:double; col:integer; numatts:integer; atts:patt_array; block:string);

to cross reference the blocks

///////////////////////////////////////////////////////////////////////////// Insert /////////////////////////////////////////////////////////////////////////////



Functions

function block : Block_;

instead of searching for the block every time it's needed, we'll store the object pointer after the first time it's used, and return it when needed.

destructor destroy;


function details : string;

we mustn't use the update_transformations call because inserts may be nested inside blocks inside other blocks, and update_transformations uses a temp fixed matrix which will be overwritten.

procedure Draw(acanvas:TCanvas; map_fn:coord_convert; OCS:pM);

this bit every subsequent time

procedure init_OCS_WCS_matrix(OCSaxis:Point3D);


procedure max_min_extents(var emax,emin:Point3D);


procedure update_block_links(blist:TObject);

inserts always have a transformation matrix - to allow the translation even when the other parameters are defauls

procedure write_to_DXF(var IO:textfile; layer:string);


Properties

Events

Variables

attribs : array[0..max_attribs] of Attrib_;


blocklist : TObject;

use carefully

blockname : string;


blockptr : Block_;


num_attribs : integer;


rotation : double;


scale : Point3D;



Constructors


constructor create(OCSaxis,p,s_f:Point3D; rot:double; col:integer; numatts:integer; atts:patt_array; block:string);

to cross reference the blocks

///////////////////////////////////////////////////////////////////////////// Insert /////////////////////////////////////////////////////////////////////////////


Functions


function block : Block_;

instead of searching for the block every time it's needed, we'll store the object pointer after the first time it's used, and return it when needed. Only use this function to access it - for safety.


destructor destroy;


function details : string;

we mustn't use the update_transformations call because inserts may be nested inside blocks inside other blocks, and update_transformations uses a temp fixed matrix which will be overwritten.


procedure Draw(acanvas:TCanvas; map_fn:coord_convert; OCS:pM);

this bit every subsequent time


procedure init_OCS_WCS_matrix(OCSaxis:Point3D);


procedure max_min_extents(var emax,emin:Point3D);


procedure update_block_links(blist:TObject);

inserts always have a transformation matrix - to allow the translation even when the other parameters are defauls


procedure write_to_DXF(var IO:textfile; layer:string);


Properties


Events


Variables


attribs : array[0..max_attribs] of Attrib_;


blocklist : TObject;

use carefully


blockname : string;


blockptr : Block_;


num_attribs : integer;


rotation : double;


scale : Point3D;