void SceneMain::Initialize(void)
{
- m_DefaultMaterial = lib_graph::MaterialSamples::GetSilver();
+ m_DefaultMaterial = lgr::MaterialSamples::GetSilver();
m_DefaultAlphaMaterial = m_DefaultMaterial;
m_DefaultAlphaMaterial.SetAlphaAll( 0.75f );
RefreshObjectIndex();
- return reader->Load(*this, filename);
+ if (!reader->Load(*this, filename))
+ return false;
+
+ UpdateCrossSectionIfRequire(false);
+
+ return true;
}
GeomObject* SceneMain::CreateNewGeometry(void)
bool SceneMain::ReloadObject(GeomObject* obj)
{
- if(!obj->IsFileObject())
+ if (!obj->IsFileObject())
return false;
int idx = FindObjectIdx(obj);
return false;
}
+ if (obj->IsInChild(m_Cursor3d.CloseFaceMBuf))
+ m_Cursor3d.ResetCloseFace();
+
geom::GeomFileFormat fmt = obj->m_FileFormat;
const std::string filename = obj->m_FilePath;
- RemoveItem(idx);
+ boost::ptr_vector<GeomObject>::iterator i;
+ i = m_Objects.begin();
+ i += idx;
+ m_Objects.erase(i);
+
+ m_Sels.ClearSelect();
- return ImportFile(filename, fmt);
+ std::auto_ptr<GeomFileReader> reader;
+ reader.reset(GeomReaderBuilder::Create(fmt));
+ if (reader.get() == NULL)
+ {
+ assert(false);
+ return false;
+ }
+
+ RefreshObjectIndex();
+
+ if (!reader->Load(*this, filename))
+ return false;
+
+ UpdateCrossSectionIfRequire(false);
+
+ return true;
}
int SceneMain::FindObjectIdx(const GeomObject* obj) const
{
for (const GeomObject& o : m_Objects)
{
- if(&o == obj)
+ if (&o == obj)
return o.GetObjectIndex();
}