bx-865-apps #1
|
@ -1090,21 +1090,21 @@
|
||||||
"detail": "back.object.serializers",
|
"detail": "back.object.serializers",
|
||||||
"documentation": {}
|
"documentation": {}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"label": "ClickableAreaViewSet",
|
|
||||||
"kind": 6,
|
|
||||||
"importPath": "back.object.views",
|
|
||||||
"description": "back.object.views",
|
|
||||||
"peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = ('target', )\nclass NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",",
|
|
||||||
"detail": "back.object.views",
|
|
||||||
"documentation": {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "NumberInFilter",
|
"label": "NumberInFilter",
|
||||||
"kind": 6,
|
"kind": 6,
|
||||||
"importPath": "back.object.views",
|
"importPath": "back.object.views",
|
||||||
"description": "back.object.views",
|
"description": "back.object.views",
|
||||||
"peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(\n field_name=\"parent\",\n lookup_expr=\"isnull\",",
|
"peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\"target\",)\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",",
|
||||||
|
"detail": "back.object.views",
|
||||||
|
"documentation": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "ClickableAreaViewSet",
|
||||||
|
"kind": 6,
|
||||||
|
"importPath": "back.object.views",
|
||||||
|
"description": "back.object.views",
|
||||||
|
"peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\"target\",)\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(",
|
||||||
"detail": "back.object.views",
|
"detail": "back.object.views",
|
||||||
"documentation": {}
|
"documentation": {}
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,13 +5,14 @@ from .models import ClickableArea, Element3D
|
||||||
from .serializers import ClickableAreaSerializer, Element3DSerializer
|
from .serializers import ClickableAreaSerializer, Element3DSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ClickableAreaViewSet(viewsets.ModelViewSet):
|
class ClickableAreaViewSet(viewsets.ModelViewSet):
|
||||||
queryset = ClickableArea.objects.all()
|
queryset = ClickableArea.objects.all()
|
||||||
serializer_class = ClickableAreaSerializer
|
serializer_class = ClickableAreaSerializer
|
||||||
filterset_fields = ('target', )
|
filterset_fields = ("target",)
|
||||||
|
|
||||||
class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Element3DFilter(django_filters.rest_framework.FilterSet):
|
class Element3DFilter(django_filters.rest_framework.FilterSet):
|
||||||
|
|
|
@ -41,7 +41,9 @@ interface element3DType {
|
||||||
model_file: string
|
model_file: string
|
||||||
name: string
|
name: string
|
||||||
description: string
|
description: string
|
||||||
parent?: number
|
parent?: number,
|
||||||
|
min_distance?: number,
|
||||||
|
max_distance?: number,
|
||||||
}
|
}
|
||||||
interface model3DType {
|
interface model3DType {
|
||||||
modelUrl?: string,
|
modelUrl?: string,
|
||||||
|
@ -51,6 +53,10 @@ const models = ref<model3DType[]>([])
|
||||||
const loadModels = async () => {
|
const loadModels = async () => {
|
||||||
const res = await fetch(`${SERVER_URL}/api/obj/element/?parent__isnull=True`)
|
const res = await fetch(`${SERVER_URL}/api/obj/element/?parent__isnull=True`)
|
||||||
const data = await res.json() as element3DType[]
|
const data = await res.json() as element3DType[]
|
||||||
|
const distance = {
|
||||||
|
min: controlsState.minDistance,
|
||||||
|
max: controlsState.maxDistance,
|
||||||
|
}
|
||||||
for (let index = 0; index < data.length; index++) {
|
for (let index = 0; index < data.length; index++) {
|
||||||
const element = data[index];
|
const element = data[index];
|
||||||
const item = {} as model3DType
|
const item = {} as model3DType
|
||||||
|
@ -60,7 +66,12 @@ const loadModels = async () => {
|
||||||
item.modelFile = loaded_scene
|
item.modelFile = loaded_scene
|
||||||
|
|
||||||
models.value.push(item)
|
models.value.push(item)
|
||||||
|
|
||||||
|
if (element.min_distance && element.min_distance > distance.min) distance.min = element.min_distance
|
||||||
|
if (element.max_distance && element.max_distance > distance.max) distance.max = element.max_distance
|
||||||
}
|
}
|
||||||
|
controlsState.maxDistance = distance.max
|
||||||
|
controlsState.minDistance = distance.min
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadModels()
|
loadModels()
|
||||||
|
|
Loading…
Reference in New Issue