Exemplo n.º 1
0
   public override TreeNode AddNode(IMaxNode wrapper, TreeNodeCollection parentCol)
   {
      TreeNode tn = base.AddNode(wrapper, parentCol);

      MaterialWrapper mtlWrapper = wrapper as MaterialWrapper;
      if (mtlWrapper != null)
      {
         AddObjects(mtlWrapper, tn.Nodes);
         AddTextureMaps(mtlWrapper, tn.Nodes);

         foreach (IMtl mtl in mtlWrapper.ChildMaterials)
         {
            this.AddNode(mtl, tn.Nodes);
         }
      } 
      else if (!(wrapper is INodeWrapper))
      {
         foreach (IMaxNode node in wrapper.ChildNodes)
         {
            this.AddNode(node, tn.Nodes);
         }
      }

      return tn;
   }
Exemplo n.º 2
0
      protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
      {
         if (nodeX == nodeY)
            return 0;

         return NativeMethods.StrCmpLogicalW(nodeX.Name, nodeY.Name);
      }
Exemplo n.º 3
0
      /// <summary>
      /// Initializes a new instance of the SetViewCameraCommand class.
      /// </summary>
      /// <param name="cameraNode">The Camera node to use.</param>
      /// <param name="viewport">The viewport to set the camera for.</param>
      public SetViewCameraCommand(IMaxNode cameraNode, IViewExp viewport)
      {
         Throw.IfNull(cameraNode, "cameraNode");
         Throw.IfNull(viewport, "viewport");

         this.cameraNode = cameraNode;
         this.viewport = viewport;
      }
Exemplo n.º 4
0
   protected override IDragDropHandler CreateDragDropHandler(IMaxNode wrapper)
   {
      if (wrapper is SelectionSetWrapper)
         return new SelectionSetDragDropHandler((SelectionSetWrapper)wrapper);
      else if (wrapper is INodeWrapper)
         return new INodeDragDropHandler(wrapper);

      return base.CreateDragDropHandler(wrapper);
   }
Exemplo n.º 5
0
   public override TreeNode AddNode(IMaxNode wrapper, TreeNodeCollection parentCol)
   {
      TreeNode tn = base.AddNode(wrapper, parentCol);

      if (wrapper is SelectionSetWrapper || wrapper is AllObjectsSelectionSetWrapper)
      {
         foreach (Object child in wrapper.ChildBaseObjects)
            this.AddNode(child, tn.Nodes);
      }

      return tn;
   }
Exemplo n.º 6
0
 protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
 {
    INodeWrapper inodeX = nodeX as INodeWrapper;
    INodeWrapper inodeY = nodeY as INodeWrapper;
    
    if (inodeX == null)
       return -1;
    else if (inodeY == null)
       return 1;
    else
       return (int)(inodeX.INode.Handle - inodeY.INode.Handle);
 }
Exemplo n.º 7
0
      /// <summary>
      /// Initializes a new instance of the RemoveNodesCommand class.
      /// </summary>
      /// <param name="target">The IMaxNode to remove nodes from.</param>
      /// <param name="nodes">The IMaxNodes to remove from the parent node.</param>
      /// <param name="description">The description of the command.</param>
      public RemoveNodesCommand( IMaxNode target
                               , IEnumerable<IMaxNode> nodes
                               , String description)
      {
         Throw.IfNull(target, "target");
         Throw.IfNull(nodes, "nodes");
         Throw.IfNull(description, "description");

         this.nodes = nodes.ToList();
         this.target = target;
         this.description = description;
      }
Exemplo n.º 8
0
   protected override Color GetNodeColor(IMaxNode node)
   {
      INodeWrapper inode = node as INodeWrapper;
      if (inode == null)
         return Color.Empty;

      ILightObject light = inode.INode.ObjectRef as ILightObject;
      if (light == null)
         return Color.Empty;
   
      return Colors.FromMaxColor(light.GetRGBColor(0, MaxInterfaces.IntervalForever));
   }
Exemplo n.º 9
0
   public ChangeGroupCommand( IEnumerable<IMaxNode> nodes
                            , IMaxNode groupHead
                            , Boolean group)
   {
      Throw.IfNull(nodes, "nodes");
      Throw.IfNull(groupHead, "groupHead");

      this.nodes = nodes.OfType<INodeWrapper>()
                        .ToList();
      this.groupHead = groupHead;
      this.group = group;
   }
Exemplo n.º 10
0
   protected override IDragDropHandler CreateDragDropHandler(IMaxNode node)
   {
      INodeWrapper iinodeWrapper = node as INodeWrapper;
      if (iinodeWrapper != null)
      {
         if (iinodeWrapper.INode.IsGroupMember || iinodeWrapper.INode.IsGroupHead)
            return new GroupDragDropHandler(node);
         else
            return new INodeDragDropHandler(node);
      }

      return base.CreateDragDropHandler(node);
   }
Exemplo n.º 11
0
      protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
      {
         ColorTag tagX = ColorTags.GetTag(nodeX.BaseObject as IAnimatable);
         ColorTag tagY = ColorTags.GetTag(nodeY.BaseObject as IAnimatable);

         if (tagX == tagY)
            return 0;
         else if (tagX == ColorTag.None)
            return 1;
         else if (tagY == ColorTag.None)
            return -1;
         else
            return tagX.CompareTo(tagY);
      }
Exemplo n.º 12
0
 private static void MoveCreatedLayer(TreeNode contextTn, IMaxNode createdLayer)
 {
    if (contextTn != null)
    {
       IMaxNode node = GetSelectedLayer(contextTn);
       if (node != null)
       {
          AddNodesCommand addCmd = new AddNodesCommand( node
                                                      , createdLayer.ToIEnumerable()
                                                      , Resources.Command_AddToLayer);
          addCmd.Execute();
          Viewports.Redraw();
       }
    }
 }
Exemplo n.º 13
0
   protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
   {
      INodeWrapper inodeX = nodeX as INodeWrapper;
      if (nodeX == null) 
         return 0;

      INodeWrapper inodeY = nodeY as INodeWrapper;
      if (nodeY == null || !nodeY.IsValid) 
         return 0;

      int numFacesX = IINodes.GetPolyCount(inodeX.INode);
      int numFacesY = IINodes.GetPolyCount(inodeY.INode);

      return numFacesY.CompareTo(numFacesX);
   }
Exemplo n.º 14
0
   protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
   {
      if (nodeX == nodeY)
            return 0;

      Object propValueX = nodeX.GetNodeProperty(this.Property);
      Object propValueY = nodeY.GetNodeProperty(this.Property);

      IComparable iCompX = propValueX as IComparable;
      if (iCompX != null)
         return iCompX.CompareTo(propValueY);
      else if (propValueX is Color && propValueY is Color)
         return Colors.Compare((Color)propValueX, (Color)propValueY);
      else
         return 0;
   }
Exemplo n.º 15
0
   public TreeNode AddNode(IMaxNode wrapper, TreeNodeCollection parentCol, Boolean recursive)
   {
      Throw.IfNull(wrapper, "wrapper");
      Throw.IfNull(parentCol, "parentCol");

      TreeNode tn = base.AddNode(wrapper, parentCol);

      if (recursive)
      {
         foreach (Object child in wrapper.ChildBaseObjects)
         {
            this.AddNode(child, tn.Nodes);
         }
      }

      return tn;
   }
Exemplo n.º 16
0
   public override TreeNode AddNode(IMaxNode wrapper, TreeNodeCollection parentCol)
   {
      TreeNode tn = base.AddNode(wrapper, parentCol);

      ILayerWrapper layerWrapper = wrapper as ILayerWrapper;
      if (layerWrapper != null)
      {
         //Set italic font for default layer.
         if (layerWrapper.IsDefault)
            tn.FontStyle = FontStyle.Italic;

         //Add nodes belonging to this layer.
         foreach (Object node in wrapper.ChildBaseObjects)
         {
            if (this.ShouldAddNode(node))
               this.AddNode(node, tn.Nodes);
         }
      }

      return tn;
   }
Exemplo n.º 17
0
      protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
      {
         INodeWrapper inodeX = nodeX as INodeWrapper;
         if (inodeX == null)
            return 0;

         INodeWrapper inodeY = nodeY as INodeWrapper;
         if (inodeY == null)
            return 0;

         IMtl materialX = inodeX.INode.Mtl;
         IMtl materialY = inodeY.INode.Mtl;

         if (materialX == materialY)
            return 0;
         else if (materialX == null)
            return 1;
         else if (materialY == null)
            return -1;
         else
            return NativeMethods.StrCmpLogicalW(materialX.Name, materialY.Name);
      }
Exemplo n.º 18
0
      public override void RemoveChildNode(IMaxNode node)
      {
         INodeWrapper inodeWrapper = node as INodeWrapper;
         if (inodeWrapper == null)
            return;

         inodeWrapper.INode.Mtl = null;
      }
Exemplo n.º 19
0
 public MaxTreeNode(IMaxNode maxNode)
 {
    this.MaxNode = maxNode;
 }
 public override bool CanRemoveChildNode(IMaxNode node)
 {
    return false;
 }
Exemplo n.º 21
0
      public override void RemoveChildNode(IMaxNode node)
      {
         Throw.IfNull(node, "node");

         INodeWrapper inodeWrapper = node as INodeWrapper;
         if (inodeWrapper != null)
            inodeWrapper.INode.Detach(0, true);
      }
Exemplo n.º 22
0
      public override void AddChildNode(IMaxNode node)
      {
         Throw.IfNull(node, "node");

         if (!this.CanAddChildNode(node))
            return;

         //Aggregates (e.g. SelectionSet)
         if (node.IsAggregate)
            this.AddChildNodes(node.ChildNodes);

         IINode inode = node.BaseObject as IINode;
         if (inode != null)
            this.INode.AttachChild(inode, true);
      }
Exemplo n.º 23
0
      public override bool CanAddChildNode(IMaxNode node)
      {
         if (node == null)
            return false;

         //Aggregates (e.g. SelectionSet)
         if (node.IsAggregate)
            return this.CanAddChildNodes(node.ChildNodes);

         //IINode
         INodeWrapper inodeWrapper = node as INodeWrapper;
         if (inodeWrapper == null)
            return false;

         if (node.Parent.Equals(this))
            return false;

         RefResult loop = this.INode.TestForLoop( MaxInterfaces.IntervalForever
                                                , inodeWrapper.INode as IReferenceMaker);

         return loop == RefResult.Succeed;
      }
Exemplo n.º 24
0
 protected override int InternalCompare(IMaxNode nodeX, IMaxNode nodeY)
 {
    return nodeX.SuperClassID.CompareTo(nodeY.SuperClassID);
 }
Exemplo n.º 25
0
 private static void RemoveFromParent(IMaxNode node)
 {
    IMaxNode parent = node.Parent;
    if (parent != null)
       parent.RemoveChildNode(node);
 }
Exemplo n.º 26
0
 /// <summary>
 /// Initializes a new instance of the MaxNodeDragDropHandler.
 /// </summary>
 /// <param name="maxNode">The IMaxNode object the DragDropHandler is associated with.</param>
 public MaxNodeDragDropHandler(IMaxNode maxNode)
 {
    this.MaxNode = maxNode;
 }
Exemplo n.º 27
0
 public INodeDragDropHandler(IMaxNode node) : base(node) { }
Exemplo n.º 28
0
      public override void AddChildNode(IMaxNode node)
      {
         INodeWrapper inodeWrapper = node as INodeWrapper;
         if (inodeWrapper == null)
            return;

         inodeWrapper.INode.Mtl = this.Material;
      }
Exemplo n.º 29
0
   protected override IDragDropHandler CreateDragDropHandler(IMaxNode node)
   {
      if (node is MaterialWrapper || node is UnassignedMaterialWrapper)
         return new MaterialDragDropHandler(node);

      INodeWrapper inodeWrapper = node as INodeWrapper;
      if (inodeWrapper != null)
         return new INodeDragDropHandler(inodeWrapper);

      return base.CreateDragDropHandler(node);
   }
Exemplo n.º 30
0
      public override bool CanRemoveChildNode(IMaxNode node)
      {
         INodeWrapper inodeWrapper = node as INodeWrapper;
         if (inodeWrapper == null)
            return false;

         IINode inode = inodeWrapper.INode;
         return inode.Mtl != null && inode.Mtl.Handle.Equals(this.Material.Handle);
      }