/// ----------------------------------------------------------------- /// <summary> /// </summary> // ----------------------------------------------------------------- public Dispatcher.Messages.ResponseBase SetColorHandler(Dispatcher.Messages.RequestBase irequest) { if (irequest.GetType() != typeof(SetPartColorRequest)) { return(OperationFailed("wrong type of request object")); } SetPartColorRequest request = (SetPartColorRequest)irequest; SceneObjectGroup sog = m_scene.GetSceneObjectGroup(request.ObjectID); if (sog == null) { return(OperationFailed("no such object")); } SceneObjectPart sop = request.LinkNum == 0 ? sog.RootPart : sog.GetLinkNumPart(request.LinkNum); if (sop == null) { return(OperationFailed("no such part")); } sop.SetFaceColorAlpha(SceneObjectPart.ALL_SIDES, request.Color, request.Alpha); sog.ScheduleGroupForFullUpdate(); // Full or terse? Don't seem to be sent with terse return(new Dispatcher.Messages.ResponseBase(ResponseCode.Success, "")); }