API reference
API reference
Select your platform
No SDKs available
No versions available

FilterBuilder Class

Modifiers: final
A filtering system for refining entity queries in the Spatial SDK.
The FilterBuilder class provides an API for constructing complex filter conditions that can be applied to Query results. Filters allow you to narrow down query results based on component attribute values, using various comparison operations and logical operators.
Filters are typically used in conjunction with the Query class to find entities that not only have specific components but also have specific values for those components' attributes.
Example - Basic filtering by attribute value:
// Find entities with TestComponent where intVar equals 1
val entities = Query.where { has(TestComponent.id) }
                    .filter { by(TestComponent.intVarData).isEqualTo(1) }
                    .eval()

Example - Combining multiple filters with logical operators:
// Find entities with TestComponent where intVar 0 AND floatVar < 0.5
val entities = Query.where { has(TestComponent.id) }
                    .filter { by(TestComponent.intVarData).greaterThan(0) and
                              by(TestComponent.floatVarData).lessThan(0.5f) }
                    .eval()

Example - Using the NOT operator:
// Find entities with TestComponent where intVar is NOT equal to 1
val entities = Query.where { has(TestComponent.id) }
                    .filter {  not(by(TestComponent.intVarData).isEqualTo(1)) }
                    .eval()

Example - Filtering local entities:
// Find local entities with Controller component
val entities = Query.where { has(Controller.id) } .filter { isLocal() } .eval()

Signature

class FilterBuilder

Constructors

FilterBuilder () : FilterBuilder
Signature
constructor()

Properties

filterValues : FilterValues
[Get]
Signature
val filterValues: FilterValues

Functions

by ( intData ) : ByIntFilterOperation
Creates a new filter operation for an integer attribute.
This method is the entry point for filtering entities based on integer attribute values. It returns a ByIntFilterOperation object that provides methods for various comparison operations.
Signature
fun by(intData: IntAttributeData): ByIntFilterOperation
Parameters
by ( longData ) : ByLongFilterOperation
Creates a new filter operation for a long integer attribute.
This method is the entry point for filtering entities based on long integer attribute values. It returns a ByLongFilterOperation object that provides methods for various comparison operations.
Signature
fun by(longData: LongAttributeData): ByLongFilterOperation
Parameters
by ( floatData ) : ByFloatFilterOperation
Creates a new filter operation for a float attribute.
This method is the entry point for filtering entities based on float attribute values. It returns a ByFloatFilterOperation object that provides methods for various comparison operations.
Signature
fun by(floatData: FloatAttributeData): ByFloatFilterOperation
Parameters
floatData: FloatAttributeData
by ( boolData ) : ByBooleanFilterOperation
Creates a new filter operation for a boolean attribute.
This method is the entry point for filtering entities based on boolean attribute values. It returns a ByBooleanFilterOperation object that provides methods for equality comparison.
Signature
fun by(boolData: BooleanAttributeData): ByBooleanFilterOperation
Parameters
by ( stringData ) : ByStringFilterOperation
Creates a new filter operation for a string attribute.
This method is the entry point for filtering entities based on string attribute values. It returns a ByStringFilterOperation object that provides methods for various string comparison operations.
Signature
fun by(stringData: StringAttributeData): ByStringFilterOperation
Parameters
stringData: StringAttributeData
by ( enumData ) : ByEnumFilterOperation
Creates a new filter operation for an enum attribute.
This method is the entry point for filtering entities based on enum attribute values. It returns a ByEnumFilterOperation object that provides methods for equality comparison.
Signature
fun by(enumData: EnumAttributeData): ByEnumFilterOperation
Parameters
by ( uuidData ) : ByUUIDFilterOperation
Creates a new filter operation for a UUID attribute.
This method is the entry point for filtering entities based on UUID attribute values. It returns a ByUUIDFilterOperation object that provides methods for equality comparison.
Signature
fun by(uuidData: UUIDAttributeData): ByUUIDFilterOperation
Parameters
by ( vector2Data ) : ByVector2FilterOperation
Creates a new filter operation for a Vector2 attribute.
This method is the entry point for filtering entities based on Vector2 attribute values. It returns a ByVector2FilterOperation object that provides methods for comparing the entire vector or its individual components (x, y).
Signature
fun by(vector2Data: Vector2AttributeData): ByVector2FilterOperation
Parameters
vector2Data: Vector2AttributeData
by ( vector3Data ) : ByVector3FilterOperation
Creates a new filter operation for a Vector3 attribute.
This method is the entry point for filtering entities based on Vector3 attribute values. It returns a ByVector3FilterOperation object that provides methods for comparing the entire vector or its individual components (x, y, z).
Signature
fun by(vector3Data: Vector3AttributeData): ByVector3FilterOperation
Parameters
vector3Data: Vector3AttributeData
by ( vector4Data ) : ByVector4FilterOperation
Creates a new filter operation for a Vector4 attribute.
This method is the entry point for filtering entities based on Vector4 attribute values. It returns a ByVector4FilterOperation object that provides methods for comparing the entire vector or its individual components (x, y, z, w).
Signature
fun by(vector4Data: Vector4AttributeData): ByVector4FilterOperation
Parameters
vector4Data: Vector4AttributeData
by ( poseData ) : ByPoseFilterOperation
Creates a new filter operation for a Pose attribute.
This method is the entry point for filtering entities based on Pose attribute values. It returns a ByPoseFilterOperation object that provides methods for comparing the entire pose or its individual components (position x/y/z, orientation w/x/y/z).
Signature
fun by(poseData: PoseAttributeData): ByPoseFilterOperation
Parameters
by ( mapData ) : ByMapFilterOperation
Creates a new filter operation for a Map attribute.
This method is the entry point for filtering entities based on Map attribute values. It returns a ByMapFilterOperation object that provides methods for checking map properties.
Signature
fun <KeyType, ValueType> by(mapData: ExperimentalMapAttributeData<KeyType, ValueType>): ByMapFilterOperation<KeyType, ValueType>
Parameters
by ( entityData ) : ByEntityFilterOperation
Creates a new filter operation for an Entity attribute.
This method is the entry point for filtering entities based on Entity attribute values. It returns a ByEntityFilterOperation object that provides methods for equality comparison.
Signature
fun by(entityData: EntityAttributeData): ByEntityFilterOperation
Parameters
entityData: EntityAttributeData
by ( timeData ) : ByTimeFilterOperation
Creates a new filter operation for a Time attribute.
This method is the entry point for filtering entities based on Time attribute values. It returns a ByTimeFilterOperation object that provides methods for various comparison operations.
Signature
fun by(timeData: TimeAttributeData): ByTimeFilterOperation
Parameters
isLocal () : IsLocalFilterNode
Creates a filter that matches only entities that are local to the client.
This is particularly useful in networked applications to filter for entities that belong to the local user.
Signature
fun isLocal(): IsLocalFilterNode
Returns
A filter node that matches only local entities
not ( filterNode ) : FilterNode
Creates a filter that negates another filter condition.
This method applies a logical NOT operation to the provided filter node, returning entities that do NOT match the specified condition.
Signature
fun not(filterNode: FilterNode): FilterNode
Parameters
filterNode: FilterNode
The filter node to negate
Returns
A new filter node representing the logical NOT of the input filter
Did you find this page helpful?
Thumbs up icon
Thumbs down icon