示例#1
0
        private float[] GetFloats(CSN_FLOAT_METHOD method)
        {
            float[] tor;
            switch (method)
            {
                case CSN_FLOAT_METHOD.GET_ABSOLUTE_POSITION:
                case CSN_FLOAT_METHOD.GET_POSITION:
                case CSN_FLOAT_METHOD.GET_ROTATION:
                case CSN_FLOAT_METHOD.GET_SCALE:
                    tor = new float[3];
                    break;

                case CSN_FLOAT_METHOD.GET_TRANSFORMED_BOUNDING_BOX:
                    tor = new float[6];
                    break;

                default:
                    tor = new float[16];
                    break;
            }
            CSN_PFLOAT_METHODS(_raw, method, tor);
            return tor;
        }
示例#2
0
 private void OnCallbackFloat(CSN_FLOAT_METHOD method)
 {
     switch (method)
     {
         case CSN_FLOAT_METHOD.GET_ABSOLUTE_POSITION:
             CSN_SET_TEMP_FLOATS(_raw, AbsolutePosition.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_ABSOLUTE_TRANSFORMATION:
             CSN_SET_TEMP_FLOATS(_raw, AbsoluteTransformation.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_BOUNDING_BOX:
             CSN_SET_TEMP_FLOATS(_raw, BoundingBox.ToUnmanaged());
             CSN_PVOID_METHODS(_raw, CSN_VOID_METHOD.MANUAL_UPDATE_BOUNDINGBOX, IntPtr.Zero, 0, 0, null);
             break;
         case CSN_FLOAT_METHOD.GET_POSITION:
             CSN_SET_TEMP_FLOATS(_raw, Position.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_R_TRANSFORMATION:
             CSN_SET_TEMP_FLOATS(_raw, RelativeTransformation.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_ROTATION:
             CSN_SET_TEMP_FLOATS(_raw, Rotation.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_SCALE:
             CSN_SET_TEMP_FLOATS(_raw, Scale.ToUnmanaged());
             break;
         case CSN_FLOAT_METHOD.GET_TRANSFORMED_BOUNDING_BOX:
             CSN_SET_TEMP_FLOATS(_raw, TransformedBoundingBox.ToUnmanaged());
             break;
     }
 }
示例#3
0
 static extern void CSN_PFLOAT_METHODS(IntPtr csn, CSN_FLOAT_METHOD method, [MarshalAs(UnmanagedType.LPArray)] float[] arg1);