forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Xors3D .NET (http://forum.boolean.name/showthread.php?t=12782)

Knightmare 06.07.2010 22:43

Ответ: Xors3D .NET
 
Для заголовков в стиле
Код:

Xors3D.xGraphics3D(800, 600, 32, true, true);
Мне проще за минут 10 накидать дополнительный модуль для генератора, и к каждой ревизии автоматически будут генериться актуальные заголовки.
Правда, во-первых, как-то лениво потом еще все это дело тестировать, а во-вторых, особого смысла не вижу в таком стиле.

pax 06.07.2010 23:37

Ответ: Xors3D .NET
 
Цитата:

Сообщение от Knightmare (Сообщение 153281)
а во-вторых, особого смысла не вижу в таком стиле.

Кто-нибудь (как хотел SlavyanOOs) напишет объектно-ориентированный враппер для таких функций. А многие блитцеры смогут программировать хоть на VB.NET переходя с блитца на более высокоуровневый язык. Так что это нужно. У вас даже появится поддержка языка Boo ;)

Reizel 06.07.2010 23:38

Ответ: Xors3D .NET
 
да вам всегда все не нравится.
ЗЫ Исходники получены, продолжаю работу.
ЗЫЗЫ скажите на чем можно компилить .NET DLL и где скачать сий продухт, без всяких web-install ???

pax 06.07.2010 23:42

Ответ: Xors3D .NET
 
Цитата:

Сообщение от Павел (Сообщение 153294)
ЗЫЗЫ скажите на чем можно компилить .NET DLL и где скачать сий продухт, без всяких web-install ???

У тебя же есть SharpDevelop ;)

Reizel 07.07.2010 00:22

Ответ: Xors3D .NET
 
Так блиин! а я дурак!!! Я искал шаблон .NET DLL :-D спасиб что натолкнули :)

pax 07.07.2010 01:50

Ответ: Xors3D .NET
 
Приведу пример возможной реализации:
Vector3
PHP код:

using System;

namespace 
Xors3D.OOW
{
    public 
struct Vector3 IEquatable<Vector3>
    {
        public 
float x,y,z
        
        public 
override bool Equals(object obj)
        {
            if (
obj is Vector3)
                return 
Equals((Vector3)obj); 
            else
                return 
false;
        }
        
        public 
bool Equals(Vector3 other)
        {
            return (
this.== other.x)&&(this.== other.y)&&(this.== other.y);
        }
        
        public 
override int GetHashCode()
        {
            return 
x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode() ;
        }
        
        public static 
bool operator ==(Vector3 leftVector3 right)
        {
            return 
left.Equals(right);
        }
        
        public static 
bool operator !=(Vector3 leftVector3 right)
        {
            return !
left.Equals(right);
        }
        
    }


Object
PHP код:

using System;
using System.Collections.Generic;
using X3D Xors3DDotNET.Xors3D

namespace 
Xors3D.OOW
{
    public abstract class 
Object:IDisposable
    
{
        public 
readonly int refLink;
        
        public 
Object(int objRefLink)
        {
            
refLink objRefLink;
        }
        
        
        
        public abstract 
void Dispose();
    }


Entity
PHP код:

using System;
using X3D Xors3DDotNET.Xors3D

namespace 
Xors3D.OOW
{
    public abstract class 
Entity:Object
    
{
        protected 
Entity(int objRefLink):base(objRefLink)
        {
        }
        
        public 
void SetPosition (float xfloat yfloat z)
        {
            
X3D.xPositionEntity(this.refLinkxyz);
        }
        
        public 
void SetPosition (Vector3 v)
        {
            
X3D.xPositionEntity(this.refLinkv.xv.yv.z);
        }
        
        public 
void SetGlobalPosition (float xfloat yfloat z)
        {
            
X3D.xPositionEntity(this.refLinkxyz1);
        }
        
        public 
void SetGlobalPosition (Vector3 v)
        {
            
X3D.xPositionEntity(this.refLinkv.xv.yv.z1);
        }
        
        
        
        public 
void SetRotation (float xfloat yfloat z)
        {
            
X3D.xPositionEntity(this.refLinkxyz);
        }
        
        public 
void SetRotation (Vector3 v)
        {
            
X3D.xRotateEntity(this.refLinkv.xv.yv.z);
        }
        
        public 
void SetGlobalRotation (float xfloat yfloat z)
        {
            
X3D.xRotateEntity(this.refLinkxyz1);
        }
        
        public 
void SetGlobalRotation (Vector3 v)
        {
            
X3D.xRotateEntity(this.refLinkv.xv.yv.z1);
        }
        
        public 
Vector3 GetPosition()
        {
            
Vector3 v = new Vector3();
            
v.X3D.xEntityX(this.refLink0);
            
v.X3D.xEntityY(this.refLink0);
            
v.X3D.xEntityZ(this.refLink0);
            return 
v;
        }
        
        public 
Vector3 GetGlobalPosition()
        {
            
Vector3 v = new Vector3();
            
v.X3D.xEntityX(this.refLink1);
            
v.X3D.xEntityY(this.refLink1);
            
v.X3D.xEntityZ(this.refLink1);
            return 
v;
        }
        
        public 
Vector3 GetRotation()
        {
            
Vector3 v = new Vector3();
            
v.X3D.xEntityPitch(this.refLink0);
            
v.X3D.xEntityYaw(this.refLink0);
            
v.X3D.xEntityRoll(this.refLink0);
            return 
v;
        }
        
        public 
Vector3 GetGlobalRotation()
        {
            
Vector3 v = new Vector3();
            
v.X3D.xEntityPitch(this.refLink1);
            
v.X3D.xEntityYaw(this.refLink1);
            
v.X3D.xEntityRoll(this.refLink1);
            return 
v;
        }
        
        public 
void SetParent (Entity parent)
        {
            if (
parent != null)
            {
                
X3D.xEntityParent(this.refLinkparent.refLink);
            }
            else
            {
                
X3D.xEntityParent(this.refLink0);
            }
        }
    }


Pivot
PHP код:

using System;
using X3D Xors3DDotNET.Xors3D

namespace 
Xors3D.OOW
{
    public class 
Pivot:Entity
    
{
        public 
Pivot():base(X3D.xCreatePivot())
        {
            
        }
        
        public 
Pivot(Entity parent):base(X3D.xCreatePivot(parent.refLink))
        {
            
        }
        
        public 
override void Dispose()
        {
            
X3D.xFreeEntity(this.refLink);
        }
    }



viper86 07.07.2010 11:31

Ответ: Xors3D .NET
 
Такого плана ООП реализовано у меня во враппере http://forum.boolean.name/showthread.php?t=11879. И он не умер.

Reizel 08.07.2010 00:50

Ответ: Xors3D .NET
 
Запилены тени. Очень здорово работает

Zer0n 08.07.2010 09:12

Ответ: Xors3D .NET
 
Павел, молодец!

Reizel 08.07.2010 09:23

Ответ: Xors3D .NET
 
Да ничо, тут очень все просто. я ожидал что будет сложней :)
ЗЫ а чего там еще то? что то не могу найти чего еще нет...

pax 08.07.2010 09:42

Ответ: Xors3D .NET
 
Все строковые функции проверил? Работают нормально? А то не сможешь найти чайлда по имени ;)

Reizel 08.07.2010 09:56

Ответ: Xors3D .NET
 
Мне пока везет - xText вродь работает...Хотя ХЗ, надо бы проверить :)
PS запилил коллюзии
PSPS чайлд по имени находится без проблем

Reizel 08.07.2010 09:59

Ответ: Xors3D .NET
 
А все, походу, враппер готов. Сейчас буду проверять работу строковых функций, потом ждите сцылку в подписи :)

Reizel 08.07.2010 09:59

Ответ: Xors3D .NET
 
Бл*, а коллюзии уже были запилены :(

Zer0n 08.07.2010 14:50

Ответ: Xors3D .NET
 
Цитата:

Сообщение от Павел (Сообщение 153559)
Бл*, а коллюзии уже были запилены :(

Ага! ;) :p :)


Часовой пояс GMT +4, время: 16:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot