00001 /* 00002 * Copyright Staffan Gimåker 2008-2009. 00003 * 00004 * --- 00005 * 00006 * Distributed under the Boost Software License, Version 1.0. 00007 * (See accompanying file LICENSE_1_0.txt or copy at 00008 * http://www.boost.org/LICENSE_1_0.txt) 00009 */ 00010 00011 #ifndef PEEKABOT_CLIENT_SCALABLE_PROXY_HH_INCLUDED 00012 #define PEEKABOT_CLIENT_SCALABLE_PROXY_HH_INCLUDED 00013 00014 00015 #include "ObjectProxy.hh" 00016 #include "../DelayedDispatch.hh" 00017 00018 00019 namespace peekabot 00020 { 00021 namespace client 00022 { 00026 class PEEKABOT_API ScalableProxyBase : virtual public ObjectProxyBase 00027 { 00028 public: 00029 ScalableProxyBase(); 00030 00031 ScalableProxyBase(const ScalableProxyBase &p); 00032 00041 inline DelayedDispatch set_scale(float scale) 00042 { 00043 return set_scale(scale, scale, scale); 00044 } 00045 00053 DelayedDispatch set_scale( 00054 float x_scale, float y_scale, float z_scale); 00055 }; 00056 00057 00061 class PEEKABOT_API ScalableProxy : public ScalableProxyBase 00062 { 00063 public: 00064 ScalableProxy(); 00065 00066 ScalableProxy(const ScalableProxyBase &p); 00067 00068 ScalableProxy &operator=(const ScalableProxy &p); 00069 00070 ScalableProxy &operator=(const ScalableProxyBase &p); 00071 00079 DelayedDispatch assign(const ObjectProxyBase &p); 00080 00084 DelayedDispatch assign( 00085 PeekabotClient &client, 00086 const std::string &path); 00087 00092 DelayedDispatch assign( 00093 const ObjectProxyBase &parent, 00094 const std::string &rel_path); 00095 }; 00096 } 00097 } 00098 00099 00100 #endif // PEEKABOT_CLIENT_SCALABLE_PROXY_HH_INCLUDED
1.7.1