Package icyllis.arc3d.compiler.tree
Class Swizzle
java.lang.Object
icyllis.arc3d.compiler.tree.Node
icyllis.arc3d.compiler.tree.Expression
icyllis.arc3d.compiler.tree.Swizzle
Represents a vector component selection (shuffling) such as 'float3(1, 2, 3).zyx'.
-
Nested Class Summary
Nested classes/interfaces inherited from class icyllis.arc3d.compiler.tree.Node
Node.ElementKind, Node.ExpressionKind, Node.StatementKind, Node.SymbolKind -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents.static final byteSwizzleComponents. -
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable Expressionconvert(@NonNull Context context, int position, @NonNull Expression base, int maskPosition, @NonNull String maskString) Create swizzle expressions.@NonNull Expressioncopy(int position) getBase()byte[]getKind()static @NonNull Expressionmake(@NonNull Context context, int position, @NonNull Expression base, byte[] components, int numComponents) voidsetBase(Expression base) @NonNull StringtoString(int parentPrecedence) Methods inherited from class icyllis.arc3d.compiler.tree.Expression
accept, copy, getCoercionCost, getConstantValue, getType, isBooleanLiteral, isConstructorCall, isFloatLiteral, isIncomplete, isIntLiteral, isLiteral, toStringMethods inherited from class icyllis.arc3d.compiler.tree.Node
getEndOffset, getStartOffset
-
Field Details
-
X
public static final byte XSwizzleComponents.- See Also:
-
Y
public static final byte YSwizzleComponents.- See Also:
-
Z
public static final byte ZSwizzleComponents.- See Also:
-
W
public static final byte WSwizzleComponents.- See Also:
-
R
public static final byte RSwizzleComponents.- See Also:
-
G
public static final byte GSwizzleComponents.- See Also:
-
B
public static final byte BSwizzleComponents.- See Also:
-
A
public static final byte ASwizzleComponents.- See Also:
-
S
public static final byte SSwizzleComponents.- See Also:
-
T
public static final byte TSwizzleComponents.- See Also:
-
P
public static final byte PSwizzleComponents.- See Also:
-
Q
public static final byte QSwizzleComponents.- See Also:
-
ZERO
public static final byte ZEROSwizzleComponents.- See Also:
-
ONE
public static final byte ONESwizzleComponents.- See Also:
-
-
Method Details
-
convert
public static @Nullable Expression convert(@NonNull Context context, int position, @NonNull Expression base, int maskPosition, @NonNull String maskString) Create swizzle expressions. This method permits components containing ZERO or ONE, does typechecking, reports errors via ErrorHandler, and returns an expression that combines constructors and native swizzles (comprised solely of X/Y/W/Z). -
make
public static @NonNull Expression make(@NonNull Context context, int position, @NonNull Expression base, byte[] components, int numComponents) -
getKind
- Specified by:
getKindin classExpression- See Also:
-
getBase
-
setBase
-
getComponents
public byte[] getComponents() -
copy
- Specified by:
copyin classExpression
-
toString
- Specified by:
toStringin classExpression
-