/// <summary> /// /// </summary> /// <param name="field"></param> /// <param name="file"></param> public void ResolvePointerField(BlenderFileObjectField field, BlenderFile file) { // TODO: add support for array of pointers BlenderPointer ptr = (BlenderPointer)field.Value; if (ptr.State == BlenderPointerState.Resolved) { field.Value = ptr.Value; return; } if (ptr.State == BlenderPointerState.Resolving || ptr.State == BlenderPointerState.Failed) { field.Value = null; return; } // This is needed to avoid infinite loops ptr.State = BlenderPointerState.Resolving; field.Value = ptr; dynamic resolvedValue = null; // TODO: resolve the pointer field.Value = resolvedValue; }
public void AddField(string name, BlenderFileObjectField field) { m_Fields.Add(name, field); if (m_FirstField == null) { m_FirstField = field; } }