00001 // 00002 // Copyright (c) 2000 by Tech Soft 3D, LLC. 00003 // The information contained herein is confidential and proprietary to 00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under 00005 // civil and criminal statutes. Tech Soft 3D shall pursue its civil 00006 // and criminal remedies in the event of unauthorized use or misappropriation 00007 // of its trade secrets. Use of this information by anyone other than 00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a 00009 // written non-disclosure agreement, expressly prescribing the scope and 00010 // manner of such use. 00011 // 00012 // $Id$ 00013 // 00014 00015 00016 #ifndef _HOpNetwork_H 00017 #define _HOpNetwork_H 00018 00019 #ifdef H_PACK_8 00020 #pragma pack(push) 00021 #pragma pack(8) 00022 #endif 00023 00024 #include "HTools.h" 00025 #include "HBaseOperator.h" 00026 #include "HBaseView.h" 00027 00029 00040 class MVO_API HOpNetwork : public HBaseOperator 00041 { 00042 public: 00046 HOpNetwork(HBaseView * view); 00047 00048 virtual ~HOpNetwork(); 00049 00054 virtual int OnLButtonDown(HEventInfo &hevent); 00055 00060 virtual int OnLButtonDownAndMove(HEventInfo &hevent); 00061 00066 virtual int OnLButtonUp(HEventInfo &hevent); 00067 00068 00073 virtual int OnRButtonDown(HEventInfo &hevent); 00074 00079 virtual int OnRButtonDownAndMove(HEventInfo &hevent); 00080 00086 virtual int OnRButtonUp(HEventInfo &hevent); 00087 00088 00089 protected: 00090 00091 HC_KEY m_NetworkKey; //< The key to the network segment. 00092 HC_KEY m_NodesKey; //< The key to the node segment where all the nodes are inserted. 00093 HC_KEY m_SelectedNodeKey; //< The current selected node. 00094 HC_KEY m_SelectedLineKey; //< The current selected connection. 00095 00105 HC_KEY My_KInsert_Line(float x1, float y1, float z1, float x2, float y2, float z2); 00106 00117 void My_Line_Common(HC_KEY key, float x1, float y1, float z1, float x2, float y2, float z2); 00118 00128 void My_Edit_Line(HC_KEY key, float x1, float y1, float z1, float x2, float y2, float z2); 00129 00133 void My_Delete_Line(HC_KEY key); 00134 00141 HC_KEY My_KInsert_Node(float x, float y, float z); 00142 00149 void My_Edit_Node(HC_KEY key, float x, float y, float z); 00150 00157 void Show_Node_Position(HC_KEY key, float &x, float &y, float &z); 00158 00160 HC_KEY Get_Node_Key(HC_KEY key); 00161 00165 void My_Open_Node(HC_KEY key); 00166 00170 void My_Close_Node(); 00171 00176 HC_KEY My_Renumber_Key(HC_KEY key); 00177 00179 HC_KEY GetNextKey(); 00180 00181 }; 00182 00183 00184 #ifdef H_PACK_8 00185 #pragma pack(pop) 00186 #endif 00187 00188 #endif 00189 00190 00191 00192 00193 00194 00195