示例#1
0
		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);
			}
		}
示例#2
0
		public void OnStopped(HEU_ThreadedTaskLoadGeo.HEU_LoadData loadData)
		{
			_bSyncing = false;

			_logStr = loadData._logStr;
			_fileNodeID = loadData._fileNodeID;
		}
示例#3
0
		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;
        }
示例#5
0
		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);
				}
			}
		}
示例#6
0
	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);
            }
        }
示例#10
0
        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);
            }
        }