73 bool IsScalar()
const {
return NumComponents() == 1; }
76 bool IsRowVector()
const {
return NumRows == 1 && NumColumns > 1; }
79 bool IsColumnVector()
const {
return NumRows > 1 && NumColumns == 1; }
82 bool IsMatrix()
const {
return NumRows > 1 && NumColumns > 1; }
94 bool IsFloat()
const {
return ScalarKind == EScalarKind::Float; }
103 int32 NumComponents()
const {
return NumRows * NumColumns; }
112 FType
ToVector(
int NumColumns)
const;
157 static FType
MakeBoolVector(
int NumColumns) {
return MakeVector(EScalarKind::Bool, NumColumns); }
160 static FType
MakeIntVector(
int NumColumns) {
return MakeVector(EScalarKind::Int, NumColumns); }
163 static FType
MakeFloatVector(
int NumColumns) {
return MakeVector(EScalarKind::Float, NumColumns); }
166 static FType
MakeDoubleVector(
int NumColumns) {
return MakeVector(EScalarKind::Double, NumColumns); }
169 static FType
MakeInt(
int NumRows,
int NumColumns) {
return MakePrimitive(EScalarKind::Int, NumRows, NumColumns); }
172 static FType
MakeFloat(
int NumRows,
int NumColumns) {
return MakePrimitive(EScalarKind::Float, NumRows, NumColumns); }
175 static FType
MakeDouble(
int NumRows,
int NumColumns) {
return MakePrimitive(EScalarKind::Double, NumRows, NumColumns); }
206 bool Is(ETypeKind
InKind)
const {
return Kind ==
InKind; }
209 ETypeKind GetKind()
const {
return Kind; }
212 bool IsPoison()
const {
return Kind == ETypeKind::Poison; }
215 bool IsVoid()
const {
return Kind == ETypeKind::Void; }
218 bool IsPrimitive()
const {
return Is(ETypeKind::Primitive); }
230 bool IsFloat()
const {
return Is(ETypeKind::Primitive) &&
Primitive.IsFloat(); }
239 bool IsScalar()
const {
return Is(ETypeKind::Primitive) &&
Primitive.IsScalar(); }
245 bool IsVector()
const {
return Is(ETypeKind::Primitive) &&
Primitive.IsRowVector(); }
251 bool IsMatrix()
const {
return Is(ETypeKind::Primitive) &&
Primitive.IsMatrix(); }
254 bool IsTexture()
const {
return Kind == ETypeKind::Texture; }
260 bool IsSubstrateData()
const {
return Kind == ETypeKind::SubstrateData; }
287 operator bool()
const {
return Kind != ETypeKind::Poison; }
307static_assert(
sizeof(MIR::FType) %
alignof(
void*) == 0);
308static_assert(
sizeof(MIR::FType) == 16);
#define check(expr)
Definition AssertionMacros.h:314
FloatPixel MakeFloat(const uint8 *rgb)
Definition BlockCodingHelpers.cpp:222
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
EMaterialParameterType
Definition MaterialParameters.h:187
EMaterialValueType
Definition MaterialValueType.h:15
const bool
Definition NetworkReplayStreaming.h:178
FIntVector4 ToVector(int32 Value)
Definition SystemTextures.cpp:1240
Definition MaterialAggregate.h:82
Definition MaterialExpression.h:36
Definition RuntimeVirtualTexture.h:231
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
EValueType
Definition ShaderTypes.h:94
ETypeKind
Definition SemanticTypes.h:92
Definition Optional.h:131
Definition ShaderTypes.h:181