private void GenerateAllInstancers(List<HEU_LoadBufferInstancer> instancerBuffers, HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { // Create a dictionary of load buffers to their IDs. This speeds up the instancer look up. Dictionary<HAPI_NodeId, HEU_LoadBufferBase> idBuffersMap = new Dictionary<HAPI_NodeId, HEU_LoadBufferBase>(); if (loadData._meshBuffers != null) { foreach (HEU_LoadBufferBase buffer in loadData._meshBuffers) { idBuffersMap[buffer._id] = buffer; } } if (loadData._terrainBuffers != null) { foreach (HEU_LoadBufferBase buffer in loadData._terrainBuffers) { idBuffersMap[buffer._id] = buffer; } } if (loadData._instancerBuffers != null) { foreach (HEU_LoadBufferBase buffer in loadData._instancerBuffers) { idBuffersMap[buffer._id] = buffer; } } int numBuffers = instancerBuffers.Count; for (int m = 0; m < numBuffers; ++m) { GenerateInstancer(instancerBuffers[m], idBuffersMap); } }
public void OnStopped(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { _bSyncing = false; _logStr = loadData._logStr; _fileNodeID = loadData._fileNodeID; }
private HEU_LoadBufferBase GetLoadBufferFromID(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData, HAPI_NodeId id) { // Check each buffer array foreach(HEU_LoadBufferBase buffer in loadData._meshBuffers) { if(buffer._id == id) { return buffer; } } foreach (HEU_LoadBufferBase buffer in loadData._terrainBuffers) { if (buffer._id == id) { return buffer; } } foreach (HEU_LoadBufferBase buffer in loadData._instancerBuffers) { if (buffer._id == id) { return buffer; } } return null; }
public void OnStopped(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { _syncing = false; Log(loadData._logStr); _cookNodeID = loadData._cookNodeID; }
public void OnLoadComplete(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { _bSyncing = false; _logStr = loadData._logStr; _fileNodeID = loadData._fileNodeID; if (loadData._loadStatus == HEU_ThreadedTaskLoadGeo.HEU_LoadData.LoadStatus.SUCCESS) { DestroyOutputs(); if (loadData._meshBuffers != null && loadData._meshBuffers.Count > 0) { GenerateMesh(loadData._meshBuffers); } if (loadData._terrainBuffers != null && loadData._terrainBuffers.Count > 0) { GenerateTerrain(loadData._terrainBuffers); } if (loadData._instancerBuffers != null && loadData._instancerBuffers.Count > 0) { GenerateAllInstancers(loadData._instancerBuffers, loadData); } } }
public override void OnLoadComplete(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { base.OnLoadComplete(loadData); if (_onAssetLoaded != null) { _onAssetLoaded.Invoke(this); } }
public virtual void GenerateObjects(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { if (loadData._loadedObjects != null) { int numObjects = loadData._loadedObjects.Count; for (int i = 0; i < numObjects; ++i) { GenerateGeometry(loadData, i); } } }
public virtual void OnLoadComplete(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { Log(loadData._logStr); _cookNodeID = loadData._cookNodeID; if (loadData._loadStatus == HEU_ThreadedTaskLoadGeo.HEU_LoadData.LoadStatus.SUCCESS) { DestroyOutputs(); GenerateObjects(loadData); } _firstSyncComplete = true; _syncing = false; }
public virtual void GenerateGeometry(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData, int objIndex) { HEU_ThreadedTaskLoadGeo.HEU_LoadObject loadObject = loadData._loadedObjects[objIndex]; if (loadObject._meshBuffers != null && loadObject._meshBuffers.Count > 0) { GenerateMesh(loadData._cookNodeID, loadObject._meshBuffers); } if (loadObject._terrainBuffers != null && loadObject._terrainBuffers.Count > 0) { GenerateTerrain(loadData._cookNodeID, loadObject._terrainBuffers); } if (loadObject._instancerBuffers != null && loadObject._instancerBuffers.Count > 0) { GenerateAllInstancers(loadData._cookNodeID, loadObject._instancerBuffers, loadData); } }
private void GenerateAllInstancers(HAPI_NodeId cookNodeId, List <HEU_LoadBufferInstancer> instancerBuffers, HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData) { int numBuffers = instancerBuffers.Count; for (int m = 0; m < numBuffers; ++m) { GenerateInstancer(cookNodeId, instancerBuffers[m], loadData._idBuffersMap); } }