more versions added

This commit is contained in:
Tubix
2024-10-05 12:11:16 +01:00
parent 413f563f33
commit c32c7e8c34
7661 changed files with 1343635 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package alternativa.engine3d.errors {
import alternativa.utils.TextUtils;
/**
* Базовый класс для ошибок 3d-engine.
*/
public class Engine3DError extends Error {
/**
* Источник ошибки - объект в котором произошла ошибка.
*/
public var source:Object;
/**
* Создание экземпляра класса.
*
* @param message описание ошибки
* @param source источник ошибки
*/
public function Engine3DError(message:String = "", source:Object = null) {
super(message);
this.source = source;
this.name = "Engine3DError";
}
}
}

View File

@@ -0,0 +1,35 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Face;
import alternativa.engine3d.core.Mesh;
import alternativa.utils.TextUtils;
import alternativa.engine3d.core.Surface;
/**
* Ошибка, возникающая при попытке добавить в какой-либо объект грань, уже содержащуюся в данном объекте.
*/
public class FaceExistsError extends ObjectExistsError {
/**
* Создание экземпляра класса.
*
* @param face экземпляр или идентификатор грани, которая уже содержится в объекте
* @param source источник ошибки
*/
public function FaceExistsError(face:Object = null, source:Object = null) {
var message:String;
if (source is Mesh) {
message = "Mesh ";
} else if (source is Surface) {
message = "Surface ";
}
if (face is Face) {
message += "%1. Face %2 already exists.";
} else {
message += "%1. Face with ID '%2' already exists.";
}
super(TextUtils.insertVars(message, source, face), face, source);
this.name = "FaceExistsError";
}
}
}

View File

@@ -0,0 +1,29 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Mesh;
import alternativa.utils.TextUtils;
/**
* Ошибка, обозначающая недостаточное количество вершин для создания грани.
* Для создания грани должно быть указано не менее трех вершин.
*/
public class FaceNeedMoreVerticesError extends Engine3DError {
/**
* Количество переданных для создания грани вершин
*/
public var count:uint;
/**
* Создание экземпляра класса.
*
* @param mesh объект, в котором произошла ошибка
* @param count количество вершин, переданное для создания грани
*/
public function FaceNeedMoreVerticesError(mesh:Mesh = null, count:uint = 0) {
super(TextUtils.insertVars("Mesh %1. %2 vertices not enough for face creation.", mesh, count), mesh);
this.count = count;
this.name = "FaceNeedMoreVerticesError";
}
}
}

View File

@@ -0,0 +1,34 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Face;
import alternativa.engine3d.core.Mesh;
import alternativa.utils.TextUtils;
/**
* Ошибка, возникающая, если грань не найдена в объекте.
*/
public class FaceNotFoundError extends ObjectNotFoundError {
/**
* Создание экземпляра класса.
*
* @param face экземпляр или идентификатор грани
* @param source объект, в котором произошла ошибка
*/
public function FaceNotFoundError(face:Object = null, source:Object = null) {
var message:String;
if (source is Mesh) {
message = "Mesh ";
} else {
message = "Surface ";
}
if (face is Face) {
message += "%1. Face %2 not found.";
} else {
message += "%1. Face with ID '%2' not found.";
}
super(TextUtils.insertVars(message, source, face), face, source);
this.name = "FaceNotFoundError";
}
}
}

View File

@@ -0,0 +1,34 @@
package alternativa.engine3d.errors {
import alternativa.utils.TextUtils;
import alternativa.engine3d.core.Mesh;
import alternativa.engine3d.core.Surface;
/**
* Ошибка, обозначающая, что идентификатор зарезервирован и не может быть использован.
*/
public class InvalidIDError extends Engine3DError {
/**
* Зарезервированный идентификатор
*/
public var id:Object;
/**
* Создание экземпляра класса.
*
* @param id идентификатор
* @param source объект, в котором произошла ошибка
*/
public function InvalidIDError(id:Object = null, source:Object = null) {
var message:String;
if (source is Mesh) {
message = "Mesh %2. ";
} else if (source is Surface) {
message = "Surface %2. ";
}
super(TextUtils.insertVars(message + "ID %1 is reserved and cannot be used", [id, source]), source);
this.id = id;
this.name = "InvalidIDError";
}
}
}

View File

@@ -0,0 +1,29 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Object3D;
import alternativa.utils.TextUtils;
/**
* Ошибка, связанная с нарушением иерархии объектов сцены.
*/
public class Object3DHierarchyError extends Engine3DError
{
/**
* Объект сцены, нарушающий иерархию
*/
public var object:Object3D;
/**
* Создание экземпляра класса.
*
* @param object объект, нарушающий иерархию
* @param source источник ошибки
*/
public function Object3DHierarchyError(object:Object3D = null, source:Object3D = null) {
super(TextUtils.insertVars("Object3D %1. Object %2 cannot be added", source, object), source);
this.object = object;
this.name = "Object3DHierarchyError";
}
}
}

View File

@@ -0,0 +1,22 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Object3D;
import alternativa.utils.TextUtils;
/**
* Ошибка, возникающая, когда объект сцены не был найден в списке связанных с необходимым объектом сцены.
*/
public class Object3DNotFoundError extends ObjectNotFoundError {
/**
* Создание экземпляра класса.
*
* @param object ненайденный объект сцены
* @param source объект сцены, в котором произошла ошибка
*/
public function Object3DNotFoundError(object:Object3D = null, source:Object3D = null) {
super(TextUtils.insertVars("Object3D %1. Object %2 not in child list", source, object), object, source);
this.name = "Object3DNotFoundError";
}
}
}

View File

@@ -0,0 +1,26 @@
package alternativa.engine3d.errors {
/**
* Ошибка, обозначающая, что объект уже присутствует в контейнере.
*/
public class ObjectExistsError extends Engine3DError {
/**
* Экземпляр или идентификатор объекта, который уже присутствует в контейнере
*/
public var object:Object;
/**
* Создание экземпляра класса.
*
* @param message описание ошибки
* @param object объект, который уже присутствует в контейнере
* @param source объект, вызвавший ошибку
*/
public function ObjectExistsError(message:String = "", object:Object = null, source:Object = null) {
super(message, source);
this.object = object;
this.name = "ObjectExistsError";
}
}
}

View File

@@ -0,0 +1,26 @@
package alternativa.engine3d.errors {
/**
* Необходимый объект не был найден в контейнере.
*/
public class ObjectNotFoundError extends Engine3DError {
/**
* Объект, который отсутствует в контейнере.
*/
public var object:Object;
/**
* Создание экземпляра класса.
*
* @param message описание ошибки
* @param object отсутствующий объект
* @param source объект, вызвавший ошибку
*/
public function ObjectNotFoundError(message:String = "", object:Object = null, source:Object = null) {
super(message, source);
this.object = object;
this.name = "ObjectNotFoundError";
}
}
}

View File

@@ -0,0 +1,22 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Mesh;
import alternativa.utils.TextUtils;
/**
* Ошибка, обозначающая, что поверхность уже присутствует в контейнере.
*/
public class SurfaceExistsError extends ObjectExistsError {
/**
* Создание экземпляра класса.
*
* @param surface поверхность, которая уже присутствует в контейнере
* @param mesh объект, вызвавший ошибку
*/
public function SurfaceExistsError(surface:Object = null, mesh:Mesh = null) {
super(TextUtils.insertVars("Mesh %1. Surface with ID '%2' already exists.", mesh, surface), surface, mesh);
this.name = "SurfaceExistsError";
}
}
}

View File

@@ -0,0 +1,31 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Mesh;
import alternativa.engine3d.core.Surface;
import alternativa.utils.TextUtils;
/**
* Ошибка, обозначающая, что поверхность не найдена в контейнере.
*/
public class SurfaceNotFoundError extends ObjectNotFoundError {
/**
* Создание экземпляра класса.
*
* @param surface поверхность, которая отсутствует в объекте
* @param mesh объект, который вызвал ошибку
*/
public function SurfaceNotFoundError(surface:Object = null, mesh:Mesh = null) {
if (mesh == null) {
}
if (surface is Surface) {
message = "Mesh %1. Surface %2 not found.";
} else {
message = "Mesh %1. Surface with ID '%2' not found.";
}
super(TextUtils.insertVars(message, mesh, surface), surface, mesh);
this.name = "SurfaceNotFoundError";
}
}
}

View File

@@ -0,0 +1,22 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Mesh;
import alternativa.utils.TextUtils;
/**
* Ошибка, обозначающая, что вершина уже содержится в объекте.
*/
public class VertexExistsError extends ObjectExistsError {
/**
* Создание экземпляра класса.
*
* @param vertex вершина, которая уже есть в объекте
* @param mesh объект, вызвавший ошибку
*/
public function VertexExistsError(vertex:Object = null, mesh:Mesh = null) {
super(TextUtils.insertVars("Mesh %1. Vertex with ID '%2' already exists.", mesh, vertex), vertex, mesh);
this.name = "VertexExistsError";
}
}
}

View File

@@ -0,0 +1,28 @@
package alternativa.engine3d.errors {
import alternativa.engine3d.core.Mesh;
import alternativa.engine3d.core.Vertex;
import alternativa.utils.TextUtils;
/**
* Ошибка, обозначающая, что вершина не найдена в объекте.
*/
public class VertexNotFoundError extends ObjectNotFoundError {
/**
* Создание экземпляра класса.
*
* @param vertex вершина, которая не найдена в объекте
* @param mesh объект, вызвавший ошибку
*/
public function VertexNotFoundError(vertex:Object = null, mesh:Mesh = null) {
if (vertex is Vertex) {
message = "Mesh %1. Vertex %2 not found.";
} else {
message = "Mesh %1. Vertex with ID '%2' not found.";
}
super(TextUtils.insertVars(message, mesh, vertex), vertex, mesh);
this.name = "VertexNotFoundError";
}
}
}