ModelHandle/source/import/importerbase.js
2021-07-12 08:49:12 +02:00

108 lines
1.7 KiB
JavaScript

OV.ImporterBase = class
{
constructor ()
{
}
Import (content, extension, callbacks)
{
this.Clear ();
this.extension = extension;
this.callbacks = callbacks;
this.model = new OV.Model ();
this.error = false;
this.message = null;
this.ResetContent ();
this.ImportContent (content, () => {
this.CreateResult (callbacks);
});
}
Clear ()
{
this.extension = null;
this.callbacks = null;
this.model = null;
this.error = null;
this.message = null;
this.ClearContent ();
}
CreateResult (callbacks)
{
if (this.error) {
callbacks.onError ();
callbacks.onComplete ();
return;
}
if (OV.IsModelEmpty (this.model)) {
this.error = true;
callbacks.onError ();
callbacks.onComplete ();
return;
}
OV.FinalizeModel (this.model, this.callbacks.getDefaultMaterial);
callbacks.onSuccess ();
callbacks.onComplete ();
}
CanImportExtension (extension)
{
return false;
}
GetKnownFileFormats ()
{
return {};
}
GetUpDirection ()
{
return OV.Direction.Z;
}
ClearContent ()
{
}
ResetContent ()
{
}
ImportContent (fileContent, onFinish)
{
}
GetModel ()
{
return this.model;
}
SetError ()
{
this.error = true;
}
IsError ()
{
return this.error;
}
SetMessage (message)
{
this.message = message;
}
GetMessage ()
{
return this.message;
}
};