bx-865-apps #1
|
@ -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": {}
|
||||
},
|
||||
|
|
|
@ -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("описание")
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue