다음을 통해 공유


XMFLOAT3PK 구조체(directxpackedvector.h)

X 및 Y 구성 요소가 11비트 부동 소수점 숫자로 저장되고 Z 구성 요소가 10비트 부동 소수점 값으로 저장된 3D 벡터에 대해 설명합니다.

C++에서 프로그래밍할 때 를 사용하여 XMFLOAT3PK 사용할 수 있는 생성자 및 연산자와 같은 추가 기능 목록은 XMFLOAT3PK 확장을 참조하세요.

구문

struct XMFLOAT3PK {
  union {
    struct {
      uint32_t xm : 6;
      uint32_t xe : 5;
      uint32_t ym : 6;
      uint32_t ye : 5;
      uint32_t zm : 5;
      uint32_t ze : 5;
    };
      uint32_t v;
  };
  void         XMFLOAT3PK();
  void         XMFLOAT3PK(
    const XMFLOAT3PK & unnamedParam1
  );
  XMFLOAT3PK & operator=(
    const XMFLOAT3PK & unnamedParam1
  );
  void         XMFLOAT3PK(
    XMFLOAT3PK && unnamedParam1
  );
  XMFLOAT3PK & operator=(
    XMFLOAT3PK && unnamedParam1
  );
  void         XMFLOAT3PK(
    uint32_t Packed
  ) noexcept;
  void         XMFLOAT3PK(
    float _x,
    float _y,
    float _z
  ) noexcept;
  void         XMFLOAT3PK(
    const float *pArray
  ) noexcept;
  void         operator uint32_t() noexcept;
  XMFLOAT3PK & operator=(
    uint32_t Packed
  ) noexcept;
};

멤버

6 xm

x 구성 요소의 6비트 매니타사입니다.

5 xe

x 구성 요소에 대한 5비트 편향 지수입니다.

6 ym

y 구성 요소에 대한 6비트 매니타사입니다.

5 ye

y 구성 요소에 대한 5비트 편향 지수입니다.

5 zm

z 구성 요소의 5비트 매니타사입니다.

5 ze

z 구성 요소에 대한 5비트 편향 지수입니다.

v

3D 벡터를 나타내는 부호 없는 32비트 정수입니다.

void XMFLOAT3PK()

에 대 한 기본 생성자 XMFLOAT3PK합니다.

XMFLOAT3PK 기본 생성자입니다.

참고 이 생성자는 C++에서만 사용할 수 있습니다.
 

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

에 대한 생성자입니다 XMFLOAT3PK.

XMFLOAT3PK 생성자입니다.

참고 이 생성자는 C++에서만 사용할 수 있습니다.

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

의 한 instance XMFLOAT3SE 벡터 구성 요소 데이터를 의 현재 instance XMFLOAT3SE할당합니다.

이 연산자는 XMFLOAT3SE 한 instance 벡터 구성 요소 데이터를 의 현재 instance XMFLOAT3SE할당합니다.

참고 이 연산자는 C++에서만 사용할 수 있습니다.

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

의 한 instance XMFLOAT3PK 벡터 구성 요소 데이터를 의 현재 instance XMFLOAT3PK할당합니다.

이 연산자는 XMFLOAT3PK 한 instance 벡터 구성 요소 데이터를 의 현재 instance XMFLOAT3PK할당합니다.

참고 이 연산자는 C++에서만 사용할 수 있습니다.

void XMFLOAT3PK( uint32_t Packed) noexcept

압축된 형식의 구성 요소 데이터를 포함하는 변수에서 uint32_tXMFLOAT3PK 새 instance 초기화합니다.

이 생성자는 압축된 형식의 구성 요소 데이터를 포함하는 변수에서 uint32_tXMFLOAT3PK 새 instance 초기화합니다.

참고 이 생성자는 C++에서만 사용할 수 있습니다.
 

void XMFLOAT3PK( float _x, float _y, float _z) noexcept

float 인수에서 의 XMFLOAT3PK 새 instance 초기화합니다.

이 생성자는 세 float 인수에서 XMFLOAT3PK 새 instance 초기화합니다.

참고 이 생성자는 C++에서만 사용할 수 있습니다.
 

void XMFLOAT3PK( const float *pArray) noexcept

세 요소 float 배열 인수에서 XMFLOAT3PK 새 instance 초기화합니다.

이 생성자는 세 요소 float 배열 인수에서 XMFLOAT3PK 새 instance 초기화합니다.

참고 이 생성자는 C++에서만 사용할 수 있습니다.

void 연산자 uint32_t() noexcept

압축된 형식으로 uint32_t instance 구성 요소를 포함하는 의 instance 반환합니다 XMFLOAT3PK .

이 연산자는 XMFLOAT3PK instance uint32_t 구성 요소를 포함하는 의 instance 압축된 형식으로 반환합니다.

참고 이 연산자는 C++에서만 사용할 수 있습니다.
 

XMFLOAT3PK & operator=( uint32_t Packed) noexcept

이 연산자는 의 instance uint32_t 압축된 벡터 구성 요소 데이터를 현재 XMFLOAT3PK instance 할당합니다.

참고 이 연산자는 C++에서만 사용할 수 있습니다.
 

설명

부호 비트가 없습니다. 즉, 모든 부분 정밀도 숫자가 양수입니다. z 구성 요소는 가장 중요한 비트에 저장되며 x 구성 요소는 다음과 같이 가장 중요한 비트에 저장됩니다.

(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]

또는 자세히 설명합니다.

  • v의 비트 0-5는 x 구성 요소의 부동 소수점 값인 구조체의 xm 멤버의 6비트 매니타사입니다.
  • v의 비트 6-10은 구조체의 xe 멤버인 x 구성 요소 부동 소수점 값의 5비트 지수입니다.
  • v의 비트 11-16은 y 구성 요소의 부동 소수점 값인 구조체의 ym 멤버의 6비트 매니타사입니다.
  • v의 비트 17-21은 y 구성 요소의 부동 소수점 값인 구조체의 ye 멤버의 5비트 지수입니다.
  • v의 비트 22-26은 z 구성 요소의 부동 소수점 값인 구조체의 zm 멤버의 5비트 매니타사입니다.
  • v의 비트 27-31은 z 구성 요소의 부동 소수점 값인 구조체의 ze 멤버의 5비트 지수입니다.
XMFLOAT3PKXMLoadFloat3PK를 사용하여 XMVECTOR 인스턴스에 로드할 수 있습니다.

인스턴스 XMVECTORXMStoreFloat3PK를 사용하여 의 XMFLOAT3PK instance 저장할 수 있습니다.

MIN_F10/MIN_F11 = 6.10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

네임 스페이스: DirectX::P ackedVector 사용

플랫폼 요구 사항

Windows 8 Windows SDK를 사용하는 Microsoft Visual Studio 2010 또는 Microsoft Visual Studio 2012. Win32 데스크톱 앱, Windows 스토어 앱 및 Windows Phone 8개 앱에서 지원됩니다.

요구 사항

   
머리글 directxpackedvector.h

추가 정보

DirectXMath 라이브러리 구조

XMFLOAT3PK 확장