Exemplo n.º 1
0
        /// <summary>
        /// スナップ位置を取得
        /// MQPoint MQCommandPlugin::GetSnappedPos(MQScene scene, const MQPoint&amp; p, SNAP_GRID_TYPE type)
        /// </summary>
        /// <param name="scene">シーン</param>
        /// <param name="p">ポイント</param>
        /// <param name="type">種類</param>
        /// <returns>スナップ位置</returns>
        public unsafe Point GetSnappedPos(Scene scene, Point p, SnapGridType type)
        {
            fixed(byte *sceneString = GetASCII("scene"),
                  typeString        = GetASCII("type"),
                  posString         = GetASCII("pos"),
                  resultString      = GetASCII("result"))
            {
                var pos = new[]
                {
                    p.X,
                    p.Y,
                    p.Z,
                };
                var result = new float[3];

                fixed(float *posPtr = pos,
                      resultPtr     = result)
                {
                    var array = new void *[]
                    {
                        sceneString,
                        (void *)scene.Handle,
                        typeString,
                        &type,
                        posString,
                        posPtr,
                        resultString,
                        resultPtr,
                        null,
                    };

                    fixed(void **arrayPtr = array)
                    SendMessage(Message.GetSnappedPos, (IntPtr)arrayPtr);

                    return(new Point(result[0], result[1], result[2]));
                }
            }
        }
Exemplo n.º 2
0
 private static void DoSelectSpacingType(SnapGridType gridType)
 {
     s_DropDownSnapAxis.GridType = gridType;
 }
Exemplo n.º 3
0
		/// <summary>
		/// スナップ位置を取得
		/// MQPoint MQCommandPlugin::GetSnappedPos(MQScene scene, const MQPoint&amp; p, SNAP_GRID_TYPE type)
		/// </summary>
		/// <param name="scene">シーン</param>
		/// <param name="p">ポイント</param>
		/// <param name="type">種類</param>
		/// <returns>スナップ位置</returns>
		public unsafe Point GetSnappedPos(Scene scene, Point p, SnapGridType type)
		{
			fixed (byte* sceneString = GetASCII("scene"),
						 typeString = GetASCII("type"),
						 posString = GetASCII("pos"),
						 resultString = GetASCII("result"))
			{
				var pos = new[]
				{
					p.X,
					p.Y,
					p.Z,
				};
				var result = new float[3];

				fixed (float* posPtr = pos,
							  resultPtr = result)
				{
					var array = new void*[]
					{
						sceneString,
						(void*)scene.Handle,
						typeString,
						&type,
						posString,
						posPtr,
						resultString,
						resultPtr,
						null,
					};

					fixed (void** arrayPtr = array)
						SendMessage(Message.GetSnappedPos, (IntPtr)arrayPtr);

					return new Point(result[0], result[1], result[2]);
				}
			}
		}