Main Page   Class Hierarchy   Compound List   File List   Compound Members  

dimeBlock Class Reference

The dimeBlock class handles a BLOCK entity. More...

#include <dime/entities/Block.h>

Inheritance diagram for dimeBlock::

dimeEntity dimeRecordHolder dimeBase List of all members.

Public Methods

 dimeBlock (dimeMemHandler *const memhandler)
virtual ~dimeBlock ()
const dimeVec3fgetBasePoint () const
void setBasePoint (const dimeVec3f &v)
int getNumEntities () const
dimeEntitygetEntity (const int idx)
void insertEntity (dimeEntity *const entity, const int idx=-1)
void removeEntity (const int idx, const bool deleteIt=true)
void fitEntities ()
const char * getName () const
void setName (const char *const name)
dimeEntitycopy (dimeModel *const model) const
virtual bool getRecord (const int groupcode, dimeParam &param, const int index=0) const
virtual const char * getEntityName () const
virtual bool read (dimeInput *const in)
virtual bool write (dimeOutput *const out)
virtual int typeId () const
virtual int countRecords () const

Protected Methods

virtual bool handleRecord (const int groupcode, const dimeParam &param, dimeMemHandler *const memhandler)
virtual void fixReferences (dimeModel *const model)
virtual bool traverse (const dimeState *const state, dimeCallback callback, void *userdata)

Friends

class dimeBlocksSection
class dimeEntitiesSection
class dimeInsert
class dimeModel

Detailed Description

The dimeBlock class handles a BLOCK entity.

It cannot strictly be called an entity, as you will only find BLOCKs in the BLOCKS section, not in the ENTITIES section. But BLOCKs share a lot of attributes and functionality with "real" entities, so in DXFLIB, a BLOCK is called an entity.


Constructor & Destructor Documentation

dimeBlock::dimeBlock dimeMemHandler *const    memhandler
 

Constructor.

dimeBlock::~dimeBlock   [virtual]
 

Destructor.


Member Function Documentation

dimeEntity * dimeBlock::copy dimeModel *const    model const [virtual]
 

Must be implemented by subclasses to return a copy of the entity. model is the model the new entity should belong to.

Reimplemented from dimeEntity.

int dimeBlock::countRecords   const [virtual]
 

Returns the number of records in the record holder. Should be overloaded by subclasses which should count their records, and then call the parent's method. This method is used to precalculate the number of records to be written. Very useful when progress information is needed during write().

Reimplemented from dimeEntity.

void dimeBlock::fitEntities  
 

Since a growable array is used to hold the entities, it might sometimes use more memory than absolutely needed. Call this method after you have finished modifying a block if you want to free that overhead memory.

void dimeBlock::fixReferences dimeModel *const    model [protected, virtual]
 

Used to find all forward references.

See also:
dimeEntitiesSection::fixReferences().

Reimplemented from dimeEntity.

const dimeVec3f & dimeBlock::getBasePoint   const [inline]
 

Returns the base point of this block.

dimeEntity * dimeBlock::getEntity const int    idx [inline]
 

Returns the entity at index idx.

See also:
dimeBlock::getNumEntities()

const char * dimeBlock::getEntityName   const [virtual]
 

Must be implemented by subclasses to return the entity name; e.g. POLYLINE, 3DFACE, etc.

Reimplemented from dimeEntity.

const char * dimeBlock::getName   const [inline]
 

Returns the name of this block (used by INSERT to reference the block).

int dimeBlock::getNumEntities   const [inline]
 

Returns the number of entities in this block.

bool dimeBlock::getRecord const int    groupcode,
dimeParam   param,
const int    index = 0
const [virtual]
 

Will return the value of the record with group code groupcode. false is returned if the record could not be found. Subclasses should overload this method if one or several records are stored in the class. If the groupcode queried is not stored internally, the subclass should call its parent's method.

Reimplemented from dimeEntity.

bool dimeBlock::handleRecord const int    groupcode,
const dimeParam   param,
dimeMemHandler *const    memhandler
[protected, virtual]
 

Must be overloaded by entities that directly supports a record type. During dimeRecordHolder::read(), dimeRecordHolder::setRecord and dimeRecordHolder::setRecords, this function is called for every record found, and it is up to the subclass if the record should be stored internally, or if a generic record should be created and stored in this superclass. A subclass should return \true when it will handle the record, false otherwise. Default function does nothing, and returns false.

For entities, records with group codes 8 (layer name) and 62 (color number) are automatically handled by the dimeEntity class.

See also:
dimeRecordHolder::read() , dimeRecordHolder::setRecord()

Reimplemented from dimeEntity.

void dimeBlock::insertEntity dimeEntity *const    entity,
const int    idx = -1
 

Inserts an entity in this block at position idx.

bool dimeBlock::read dimeInput *const    file [virtual]
 

This method reads a BLOCK entity from file.

Reimplemented from dimeEntity.

void dimeBlock::removeEntity const int    idx,
const bool    deleteIt = true
 

Removes the entity at position idx. If deleteIt is true, and no memory handler is used, the entity will be deleted before returing from this method.

void dimeBlock::setBasePoint const dimeVec3f   v [inline]
 

Sets the base point of this entity.

void dimeBlock::setName const char *const    name [inline]
 

Sets the name of this block. name Must be a static char pointer, or some pointer that will not be deleted before the block, as the text string will not be copied. It is best to avoid using this method. Use dimeModel::addBlock() instead.

bool dimeBlock::traverse const dimeState *const    state,
dimeCallback    callback,
void *    userdata
[protected, virtual]
 

The traversal function used when dimeModel::traverseEntities() is called. Most entities use this default method, but some entities (INSERT, BUILD) will need to overload it.

Reimplemented from dimeEntity.

int dimeBlock::typeId   const [virtual]
 

Must be implemented by all subclasses, and should return an unique id for that class.

Reimplemented from dimeBase.

bool dimeBlock::write dimeOutput *const    file [virtual]
 

This methods writes a BLOCK entity to file.

Reimplemented from dimeEntity.


The documentation for this class was generated from the following files:
Copyright © 1998-1999, Systems In Motion <sales@sim.no>. All rights reserved.
System documentation was generated using doxygen.