12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using Autodesk.Max;
- namespace Max2Babylon
- {
- public struct GlobalVertex
- {
- public int BaseIndex { get; set; }
- public int CurrentIndex { get; set; }
- public IPoint3 Position { get; set; }
- public IPoint3 Normal { get; set; }
- public IPoint2 UV { get; set; }
- public IPoint2 UV2 { get; set; }
- public int BonesIndices { get; set; }
- public IPoint4 Weights { get; set; }
- public int BonesIndicesExtra { get; set; }
- public IPoint4 WeightsExtra { get; set; }
- public float[] Color { get; set; }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- public override bool Equals(object obj)
- {
- if (!(obj is GlobalVertex))
- {
- return false;
- }
- var other = (GlobalVertex)obj;
- if (other.BaseIndex != BaseIndex)
- {
- return false;
- }
- if (!other.Position.IsAlmostEqualTo(Position, Tools.Epsilon))
- {
- return false;
- }
- if (!other.Normal.IsAlmostEqualTo(Normal, Tools.Epsilon))
- {
- return false;
- }
- if (UV != null && !other.UV.IsAlmostEqualTo(UV, Tools.Epsilon))
- {
- return false;
- }
- if (UV2 != null && !other.UV2.IsAlmostEqualTo(UV2, Tools.Epsilon))
- {
- return false;
- }
- if (Weights != null && !other.Weights.IsAlmostEqualTo(Weights, Tools.Epsilon))
- {
- return false;
- }
- if (WeightsExtra != null && !other.WeightsExtra.IsAlmostEqualTo(WeightsExtra, Tools.Epsilon))
- {
- return false;
- }
- if (Color != null && !other.Color.IsAlmostEqualTo(Color, Tools.Epsilon))
- {
- return false;
- }
- return other.BonesIndices == BonesIndices;
- }
- }
- }
|