C3D Kernel  104065
Классы | Пространства имен | Макросы | Перечисления | Функции
Файл model_tree.h

Реализация дерева модели Подробнее...

Классы

class  c3d::ItemDataBase
class  c3d::ItemDataBool
class  c3d::ItemDataInteger
class  c3d::ItemDataDouble
class  c3d::ItemDataString
class  c3d::ItemAttrBool
class  c3d::ItemAttrInteger
class  c3d::ItemAttrDouble
class  c3d::ItemAttrString
class  c3d::ItemAttrInt64
class  c3d::ItemAttrIdentifier
class  c3d::ItemAttrColor
class  c3d::ItemAttrWidth
class  c3d::ItemAttrStyle
class  c3d::ItemAttrSelected
class  c3d::ItemAttrVisible
class  c3d::ItemAttrChanged
class  c3d::ItemAttrDencity
class  c3d::ItemAttrUpdateStamp
class  c3d::ItemAttrAnchor
class  c3d::UserDataMap
 Контейнер для пользовательских данных узла дерева. Подробнее...
struct  c3d::MbItemData
 Данные узла дерева. Подробнее...
class  c3d::MbTreeNode
 Узел дерева. Подробнее...
class  c3d::MbModelTree
 Дерево геометрической модели. Подробнее...
struct  c3d::NodeComparer
struct  c3d::NodeComparerUnary
struct  c3d::CompareBranchByUserData
struct  c3d::BranchByUserDataComparer

Пространства имен

namespace  c3d
 

Объявление пространства имен C3D.


Макросы

#define CAST(Type, item)   dynamic_cast<Type*>(const_cast<ItemDataBase*>(item))
#define MTREE_PERSISTENT_DATA_OBJ(Class)
#define MTREE_DEFINE_DATA_TYPE(type)
#define MTREE_DEFINE_DATA_SIZE_STD(data)
#define MTREE_ATTR_DATALESS_CLASS(Class, ClassType)
#define MTREE_SWITCH_BY_DATA_TYPE(ACTION)
#define MTREE_SWITCH_BY_DATA_TYPE2(ACTION)
#define RETURN_NEW_OBJ(Class)   return new Class();
#define RETURN_NEW_OBJ_COPY(Class)
#define RETURN_NEW_OBJ_COPY2(Class)
#define READ_OBJ(Class)
#define WRITE_OBJ(Class)
#define EQUAL_OBJ(Class)   return CAST(Class,this)->m_value == CAST(Class,item2)->m_value;
#define COMPARE_OBJ(Class)   return CAST(Class,this)->m_value < CAST(Class,item2)->m_value;

Перечисления

enum  c3d::MbeItemDataType {
  idtBool, idtInteger, idtDouble, idtString,
  idtAttrBool, idtAttrInt, idtAttrDouble, idtAttrString,
  idtAttrInt64, idtAttrIdentifier, idtAttrColor, idtAttrWidth,
  idtAttrStyle, idtAttrSelected, idtAttrVisible, idtAttrChanged,
  idtAttrDencity, idtAttrUpdateStamp, idtAttrAnchor, idtAttrVisual,
  idtAttrWireCount, idtAttrName, idtAttrGeom, idtAttrStampRib,
  idtAttrModelInfo, idtAttrPersonOrganizationInfo, idtAttrProductInfo, idtAttrSTEPTextDescription,
  idtAttrSTEPReferenceHolder, idtAttrBinary, idtCount
}

Функции

ItemDataBase * c3d::CreateAttributeData (MbAttribute *attr)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrVisual, idtAttrVisual)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrWireCount, idtAttrWireCount)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrName, idtAttrName)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrGeom, idtAttrGeom)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrStampRib, idtAttrStampRib)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrModelInfo, idtAttrModelInfo)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrPersonOrganizationInfo, idtAttrPersonOrganizationInfo)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrProductInfo, idtAttrProductInfo)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrSTEPTextDescription, idtAttrSTEPTextDescription)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrSTEPReferenceHolder, idtAttrSTEPReferenceHolder)
 c3d::MTREE_ATTR_DATALESS_CLASS (ItemAttrBinary, idtAttrBinary)
readerc3d::operator>> (reader &in, UserDataMap &itemmap)
 Чтение UserDataMap.
writerc3d::operator<< (writer &out, const UserDataMap &itemmap)
 Запись UserDataMap.
void c3d::PutTabs (c3d::t_ofstream &s, size_t l)
c3d::string_t c3d::GetItemString (MbeSpaceType type)
c3d::t_ofstream &CALL_DECLARATION c3d::operator<< (c3d::t_ofstream &file, const IModelTreeNode &node)
 Запись узла дерева в xml формате.
c3d::t_ofstream &CALL_DECLARATION c3d::operator<< (c3d::t_ofstream &file, IModelTreeNode &node)
 Запись узла дерева в xml формате.
c3d::t_ofstream &CALL_DECLARATION c3d::operator<< (c3d::t_ofstream &file, const IModelTree &tree)
 Запись дерева в xml формате.
c3d::t_ofstream &CALL_DECLARATION c3d::operator<< (c3d::t_ofstream &file, IModelTree &tree)
 Запись дерева в xml формате.

Подробное описание


Макросы

#define MTREE_PERSISTENT_DATA_OBJ (   Class)
Макроопределение:
public:                                                            \
  static void Read(reader& in, Class* item) { in >> item->m_value; } \
  static void Write(writer& out, const Class* item) { out << item->m_value; }
#define MTREE_DEFINE_DATA_TYPE (   type)
Макроопределение:
public:                                   \
  virtual MbeItemDataType Type() const { return type; }
#define MTREE_DEFINE_DATA_SIZE_STD (   data)
Макроопределение:
public:                              \
  virtual size_t Size(writer&) const { return sizeof(data); }

Определение размера записи пользовательских данных атрибута в поток, как sizeof.

#define MTREE_ATTR_DATALESS_CLASS (   Class,
  ClassType 
)
Макроопределение:
class Class : public ItemDataBase {                           \
public:                                                       \
  virtual size_t Size( writer& ) const { return 0; }          \
  virtual MbeItemDataType Type() const { return ClassType; }  \
  static void Read( reader&, Class* ) {}                      \
  static void Write( writer&, const Class* ) {}               \
};
#define MTREE_SWITCH_BY_DATA_TYPE (   ACTION)
Макроопределение:
switch ( type ) {                                     \
    case idtBool:            ACTION(ItemDataBool);        \
    case idtInteger:         ACTION(ItemDataInteger);     \
    case idtDouble:          ACTION(ItemDataDouble);      \
    case idtString:          ACTION(ItemDataString);      \
    case idtAttrBool:        ACTION(ItemAttrBool);        \
    case idtAttrInt:         ACTION(ItemAttrInteger);     \
    case idtAttrDouble:      ACTION(ItemAttrDouble);      \
    case idtAttrString:      ACTION(ItemAttrString);      \
    case idtAttrInt64:       ACTION(ItemAttrInt64);       \
    case idtAttrIdentifier:  ACTION(ItemAttrIdentifier);  \
    case idtAttrColor:       ACTION(ItemAttrColor);       \
    case idtAttrWidth:       ACTION(ItemAttrWidth);       \
    case idtAttrStyle:       ACTION(ItemAttrStyle);       \
    case idtAttrSelected:    ACTION(ItemAttrSelected);    \
    case idtAttrVisible:     ACTION(ItemAttrVisible);     \
    case idtAttrChanged:     ACTION(ItemAttrChanged);     \
    case idtAttrDencity:     ACTION(ItemAttrDencity);     \
    case idtAttrUpdateStamp: ACTION(ItemAttrUpdateStamp); \
    case idtAttrAnchor:      ACTION(ItemAttrAnchor);      \
  }
#define MTREE_SWITCH_BY_DATA_TYPE2 (   ACTION)
Макроопределение:
switch ( type ) {                                                           \
    case idtAttrVisual:                 ACTION(ItemAttrVisual);                 \
    case idtAttrWireCount:              ACTION(ItemAttrWireCount);              \
    case idtAttrName:                   ACTION(ItemAttrName);                   \
    case idtAttrGeom:                   ACTION(ItemAttrGeom);                   \
    case idtAttrStampRib:               ACTION(ItemAttrStampRib);               \
    case idtAttrModelInfo:              ACTION(ItemAttrModelInfo);              \
    case idtAttrPersonOrganizationInfo: ACTION(ItemAttrPersonOrganizationInfo); \
    case idtAttrProductInfo:            ACTION(ItemAttrProductInfo);            \
    case idtAttrSTEPTextDescription:    ACTION(ItemAttrSTEPTextDescription);    \
    case idtAttrSTEPReferenceHolder:    ACTION(ItemAttrSTEPReferenceHolder);    \
    case idtAttrBinary:                 ACTION(ItemAttrBinary);                 \
    }
#define RETURN_NEW_OBJ_COPY (   Class)
Макроопределение:
{                                                               \
  ItemDataBase* obj = new Class( CAST(Class, item)->m_value );  \
  obj->SetIgnoreValue( item->IgnoreValue() );                   \
  return obj;                                                   \
}
#define RETURN_NEW_OBJ_COPY2 (   Class)
Макроопределение:
{                                             \
  ItemDataBase* obj = new Class();            \
  obj->SetIgnoreValue( item->IgnoreValue() ); \
  return obj;                                 \
}
#define READ_OBJ (   Class)
Макроопределение:
Class::Read( in, CAST(Class, this) ); \
  break;
#define WRITE_OBJ (   Class)
Макроопределение:
Class::Write( out, CAST(Class, this) ); \
  break;
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы