I have some problem need discuss about Library Speckle Objects:
- Replace some method static like
CrossProduc
t andDotProduct
for easy use API :
Current :
/// <summary>
/// Computes the vector product (cross product) of two given vectors
/// Cross product = { u2 * v3 - u3 * v2; u3 * v1 - u1 * v3; u1 * v2 - u2 * v1 }.
/// </summary>
/// <param name="u">First vector.</param>
/// <param name="v">Second vector.</param>
/// <returns>Vector result of the cross product.</returns>
public static Vector CrossProduct(Vector u, Vector v)
{
var x = u.y * v.z - u.z * v.y;
var y = u.z * v.x - u.x * v.z;
var z = u.x * v.y - u.y * v.x;
return new Vector(x, y, z);
}
Can replace by :
/// <summary>
/// Computes the vector product (cross product) of two given vectors
/// Cross product = { u2 * v3 - u3 * v2; u3 * v1 - u1 * v3; u1 * v2 - u2 * v1 }.
/// </summary>
/// <param name="v">Second vector.</param>
/// <returns>Vector result of the cross product.</returns>
public Vector CrossProduct(Vector v)
{
var x = this.y * v.z - this.z * v.y;
var y = this.z * v.x - this.x * v.z;
var z = this.x * v.y - this.y * v.x;
return new Vector(x, y, z);
}
This will be help all developer easy use API and code look beter , how you think about this ?
At the moment with API :
void DoSomeThing()
{
Point p1 = new Point(0, 0, 0);
Point p2 = new Point(4, 0, 0);
Vector vector = new Vector(p1);
Vector vector2 = new Vector(p2);
var result = Vector.DotProduct(vector,vector2);
}
After change :
void DoSomeThingImprove()
{
Point p1 = new Point(0, 0, 0);
Point p2 = new Point(4, 0, 0);
var result = p1.DotProduct(p2);
}
Note : This just a example for that, many method inside code is same now.
- Will be add libary G-Shark to use and Upgrade for this, but I see base code current is not easy to change.
If don’t have any problem, I will try pull request some hack help this