bx-865-apps #1

Merged
ksenia_mikhailova merged 140 commits from bx-865-apps into main 2024-06-27 15:03:27 +03:00
4 changed files with 38 additions and 17 deletions
Showing only changes of commit 286490ac1b - Show all commits

View File

@ -208,6 +208,22 @@
"detail": "django.db",
"documentation": {}
},
{
"label": "migrations",
"importPath": "django.db",
"description": "django.db",
"isExtraImport": true,
"detail": "django.db",
"documentation": {}
},
{
"label": "models",
"importPath": "django.db",
"description": "django.db",
"isExtraImport": true,
"detail": "django.db",
"documentation": {}
},
{
"label": "models",
"importPath": "django.db",
@ -1219,6 +1235,15 @@
"detail": "back.object.migrations.0010_alter_clickablearea_target",
"documentation": {}
},
{
"label": "Migration",
"kind": 6,
"importPath": "back.object.migrations.0011_remove_element3d_max_distance_and_more",
"description": "back.object.migrations.0011_remove_element3d_max_distance_and_more",
"peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0010_alter_clickablearea_target'),\n ]\n operations = [\n migrations.RemoveField(\n model_name='element3d',\n name='max_distance',\n ),\n migrations.RemoveField(",
"detail": "back.object.migrations.0011_remove_element3d_max_distance_and_more",
"documentation": {}
},
{
"label": "ObjectConfig",
"kind": 6,
@ -1233,7 +1258,7 @@
"kind": 6,
"importPath": "back.object.models",
"description": "back.object.models",
"peekOfCode": "class Element3D(models.Model):\n parent = models.ForeignKey(\"self\", on_delete=models.PROTECT, blank=True, null=True)\n model_file = models.FileField(upload_to=group_based_upload_to)\n name = models.CharField(max_length=255)\n description = models.TextField()\n min_distance = models.IntegerField(\n validators=[MinValueValidator(1), MaxValueValidator(200)], blank=True, null=True\n )\n max_distance = models.IntegerField(\n validators=[MinValueValidator(2), MaxValueValidator(200)], blank=True, null=True",
"peekOfCode": "class Element3D(models.Model):\n parent = models.ForeignKey(\"self\", on_delete=models.PROTECT, blank=True, null=True)\n model_file = models.FileField(upload_to=group_based_upload_to)\n name = models.CharField(max_length=255)\n description = models.TextField()\n def __str__(self):\n return self.name\nclass Scene3D(models.Model):\n name = models.CharField(\n max_length=120,",
"detail": "back.object.models",
"documentation": {}
},
@ -1242,7 +1267,7 @@
"kind": 6,
"importPath": "back.object.models",
"description": "back.object.models",
"peekOfCode": "class Scene3D(models.Model):\n name = models.CharField(\n max_length=120,\n )\n elements = models.ManyToManyField(Element3D)\nclass ClickableArea(models.Model):\n name = models.CharField(\"название\", max_length=255)\n description = models.TextField(\"описание\")\n object_name = models.CharField(\"название объекта\", max_length=255)\n target = models.ForeignKey(",
"peekOfCode": "class Scene3D(models.Model):\n name = models.CharField(\n max_length=120,\n )\n elements = models.ManyToManyField(Element3D)\n min_distance = models.IntegerField(\n validators=[MinValueValidator(1), MaxValueValidator(200)], blank=True, null=True\n )\n max_distance = models.IntegerField(\n validators=[MinValueValidator(2), MaxValueValidator(200)], blank=True, null=True",
"detail": "back.object.models",
"documentation": {}
},

View File

@ -17,7 +17,6 @@ class Element3D(models.Model):
model_file = models.FileField(upload_to=group_based_upload_to)
name = models.CharField(max_length=255)
description = models.TextField()
def __str__(self):
return self.name
@ -39,6 +38,7 @@ class Scene3D(models.Model):
def __str__(self):
return self.name
class ClickableArea(models.Model):
name = models.CharField("название", max_length=255)
description = models.TextField("описание")

View File

@ -33,11 +33,12 @@ const loadModels = async () => {
const raw_data = await res.json() as scene3D
const data = raw_data.elements
if (!controls.value) return
const c = (controls.value as any)
const distance = {
min: c.minDistance,
max: c.maxDistance == Infinity ? 1 : c.maxDistance,
};
(controls.value as any).minDistance = raw_data.min_distance;
(controls.value as any).maxDistance = raw_data.max_distance;
(controls.value as any)._needsUpdate = true;
(controls.value as any).update(1)
for (let index = 0; index < data.length; index++) {
const element = data[index];
const item = {} as model3DType
@ -51,9 +52,6 @@ const loadModels = async () => {
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
const box = new Box3();
box.expandByObject(loaded_scene.children[0]);
const box_size = new Vector3();
@ -66,10 +64,6 @@ const loadModels = async () => {
const clickable_areas = await res.json()
clickable.value.push(...clickable_areas)
}
(controls.value as any).maxDistance = distance.max;
(controls.value as any).minDistance = distance.min;
(controls.value as any)._needsUpdate = true;
(controls.value as any).update(1)
for (let index = 0; index < clickable.value.length; index++) {
const element = clickable.value[index];

View File

@ -10,8 +10,10 @@ interface ProductInfo {
}
interface scene3D {
id: number,
name: string,
id: number
name: string
min_distance: number
max_distance: number
elements: element3DType[]
}
interface element3DType {