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

FilterBuilder

FilterBuilder

class FilterBuilder
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()

Constructors

NameSummary
FilterBuilder
constructor()

Properties

NameSummary
filterValues
val filterValues: FilterValues

Functions

NameSummary
by
fun by(boolData: BooleanAttributeData): ByBooleanFilterOperation

Creates a new filter operation for a boolean attribute.



fun by(entityData: EntityAttributeData): ByEntityFilterOperation

Creates a new filter operation for an Entity attribute.



fun by(enumData: EnumAttributeData): ByEnumFilterOperation

Creates a new filter operation for an enum attribute.



fun <KeyType, ValueType> by(mapData: ExperimentalMapAttributeData<KeyType, ValueType>): ByMapFilterOperation<KeyType, ValueType>

Creates a new filter operation for a Map attribute.



fun by(floatData: FloatAttributeData): ByFloatFilterOperation

Creates a new filter operation for a float attribute.



fun by(intData: IntAttributeData): ByIntFilterOperation

Creates a new filter operation for an integer attribute.



fun by(longData: LongAttributeData): ByLongFilterOperation

Creates a new filter operation for a long integer attribute.



fun by(poseData: PoseAttributeData): ByPoseFilterOperation

Creates a new filter operation for a Pose attribute.



fun by(stringData: StringAttributeData): ByStringFilterOperation

Creates a new filter operation for a string attribute.



fun by(timeData: TimeAttributeData): ByTimeFilterOperation

Creates a new filter operation for a Time attribute.



fun by(uuidData: UUIDAttributeData): ByUUIDFilterOperation

Creates a new filter operation for a UUID attribute.



fun by(vector2Data: Vector2AttributeData): ByVector2FilterOperation

Creates a new filter operation for a Vector2 attribute.



fun by(vector3Data: Vector3AttributeData): ByVector3FilterOperation

Creates a new filter operation for a Vector3 attribute.



fun by(vector4Data: Vector4AttributeData): ByVector4FilterOperation

Creates a new filter operation for a Vector4 attribute.
isLocal
fun isLocal(): IsLocalFilterNode

Creates a filter that matches only entities that are local to the client.
not
fun not(filterNode: FilterNode): FilterNode

Creates a filter that negates another filter condition.