void VTerrainDecorationEntityModel::OnEditorEvent(EditorEvent_e action, VTerrain *pTerrain, void *pDataA, void *pDataB) 
{
  IVTerrainDecorationModel::OnEditorEvent(action, pTerrain, pDataA, pDataB);
#ifdef WIN32
  if (action==GatherLightmapFinished)
  {
  }
  if (action==SurfaceShaderChanged)
  {

    VisSurface_cl *pSurface = (VisSurface_cl *)pDataA;
    
    // is the sent surface part of this model?
    if (m_spMesh!=NULL && m_spMesh->GetSurfaceIndex(pSurface)>=0)
    {
      ReapplyShaders();
      UpdateParameter();
    }
    return;
  }
  if (action==RendererNodeChanged)
  {
    if (m_spMesh!=NULL)
    {
      ReapplyShaders();
      UpdateParameter();
    }
    return;
  }

#endif
}
BOOL VTerrainDecorationEntityModel::Reload()
{
#ifndef _VR_DX11
  m_PerInstanceData.m_iFirstRegister = 50; // hardcoded in the shader
#endif
  m_spMesh = Vision::Game.LoadDynamicMesh(GetFilename(),true);
  m_spMesh->SetAllowShaderAssignment(false); // never update shader assignment on terrain entities

  m_bValidState = m_spMesh!=NULL && m_spMesh->IsLoaded();
  VASSERT(m_bValidState);


  if (Vision::Editor.IsInEditor())
  {
    // get additional properties from editor
    VisCallback_cl &cb = ((VTerrainDecorationModelManager *)GetParentManager())->OnGatherModelProperties;
    VTerrainDecorationModelDataObject data(&cb, this);
    cb.TriggerCallbacks(&data);
  }


  ReapplyShaders(); // after UpdateParameter because bbox must be valid
  UpdateParameter();

  return TRUE;
}
Пример #3
0
void KeyPressed_MINUS(void)
{
	UpdateParameter(-1.0f);
}
Пример #4
0
void KeyPressed_ADD(void)
{
	UpdateParameter(1.0f);
}