#include "..//Core//sg.h" sgCBox::sgCBox():sgC3DObject() { } sgCBox::~sgCBox() { } sgCBox::sgCBox(SG_OBJ_HANDLE objH):sgC3DObject(objH) { char* typeID = "{0000000000000-0000-0001-000000000009}"; set_hobj_attr_value(id_TypeID, objH, typeID); PostCreate(); } sgCBox* sgCBox::Create(sgFloat sizeX, sgFloat sizeY, sgFloat sizeZ) { if (sizeXPostCreate(); return newBox; } void sgCBox::GetGeometry(SG_BOX& res) const { lpOBJ obj = static_cast(GetObjectHandle(this)); assert(obj); lpGEO_BREP geo = (lpGEO_BREP)(obj->geo_data); assert(geo); LNP lnp; if ( !read_elem(&vd_brep,geo->num,&lnp) ) { assert(0); } lpCSG csg = static_cast(lnp.hcsg); assert(csg); memcpy(&res, csg->data, csg->size); }