Exemplo n.º 1
0
 private MDrawRequest getDrawRequest(MDrawInfo info)
 //
 // Description:
 //
 //     Helper function. It should be removed after SWIGTYPE_p_* classes are eliminated.
 //
 {
     return(info.getPrototype(this));
 }
Exemplo n.º 2
0
        public override void getDrawRequests(MDrawInfo info,
                                             bool objectAndActiveOnly,
                                             MDrawRequestQueue queue)
        {
            quadricShape shapeNode = surfaceShape as quadricShape;

            if (shapeNode == null)
            {
                return;
            }

            // The following line will be removed when all the .net assemblies will be merged into one
            // We would then be able to call info.getPrototype(this)

            MDrawRequest request = info.getPrototype(this);

            quadricGeom geom = shapeNode.geometry();

            MDrawData data;

            getDrawData(geom, out data);
            request.setDrawData(data);

            // Are we displaying meshes?
            if (!info.objectDisplayStatus(M3dView.DisplayObjects.kDisplayMeshes))
            {
                return;
            }

            // Use display status to determine what color to draw the object
            //
            switch (info.displayStyle)
            {
            case M3dView.DisplayStyle.kWireFrame:
                getDrawRequestsWireframe(request, info);
                queue.add(request);
                break;

            case M3dView.DisplayStyle.kGouraudShaded:
                request.token = (int)DrawShapeStyle.kDrawSmoothShaded;
                getDrawRequestsShaded(request, info, queue, data);
                queue.add(request);
                break;

            case M3dView.DisplayStyle.kFlatShaded:
                request.token = (int)DrawShapeStyle.kDrawFlatShaded;
                getDrawRequestsShaded(request, info, queue, data);
                queue.add(request);
                break;

            default:
                break;
            }
        }
Exemplo n.º 3
0
        public void getDrawRequestsShaded(MDrawRequest request,
                                          MDrawInfo info,
                                          MDrawRequestQueue queue,
                                          MDrawData data)
        {
            // Need to get the material info
            //
            MDagPath  path     = info.multiPath; // path to your dag object
            M3dView   view     = info.view;      // view to draw to
            MMaterial material = base.material(path);

            M3dView.DisplayStatus displayStatus = info.displayStatus;

            // Evaluate the material and if necessary, the texture.
            //
            material.evaluateMaterial(view, path);

            bool drawTexture = true;

            if (drawTexture && material.materialIsTextured)
            {
                material.evaluateTexture(data);
            }

            request.material = material;

            bool materialTransparent = false;

            material.getHasTransparency(ref materialTransparent);
            if (materialTransparent)
            {
                request.isTransparent = true;
            }

            // create a draw request for wireframe on shaded if
            // necessary.
            //
            if ((displayStatus == M3dView.DisplayStatus.kActive) ||
                (displayStatus == M3dView.DisplayStatus.kLead) ||
                (displayStatus == M3dView.DisplayStatus.kHilite))
            {
                MDrawRequest wireRequest = info.getPrototype(this);
                wireRequest.setDrawData(data);
                getDrawRequestsWireframe(wireRequest, info);
                wireRequest.token        = (int)DrawShapeStyle.kDrawWireframeOnShaded;
                wireRequest.displayStyle = M3dView.DisplayStyle.kWireFrame;
                queue.add(wireRequest);
            }
        }
Exemplo n.º 4
0
        public void getDrawRequestsShaded(MDrawRequest request,
            MDrawInfo info,
            MDrawRequestQueue queue,
            MDrawData data)
        {
            // Need to get the material info
            //
            MDagPath path = info.multiPath;	// path to your dag object
            M3dView view = info.view; 		// view to draw to
            MMaterial material = base.material(path);
            M3dView.DisplayStatus displayStatus = info.displayStatus;

            // Evaluate the material and if necessary, the texture.
            //
            material.evaluateMaterial(view, path);

            bool drawTexture = true;
            if (drawTexture && material.materialIsTextured)
            {
                material.evaluateTexture(data);
            }

            request.material = material;

            bool materialTransparent = false;
            material.getHasTransparency( ref materialTransparent);
            if ( materialTransparent ) {
                request.isTransparent = true;
            }

            // create a draw request for wireframe on shaded if
            // necessary.
            //
            if ((displayStatus == M3dView.DisplayStatus.kActive) ||
                 (displayStatus == M3dView.DisplayStatus.kLead) ||
                 (displayStatus == M3dView.DisplayStatus.kHilite))
            {
                MDrawRequest wireRequest = info.getPrototype(this);
                wireRequest.setDrawData(data);
                getDrawRequestsWireframe(wireRequest, info);
                wireRequest.token = (int)DrawShapeStyle.kDrawWireframeOnShaded;
                wireRequest.displayStyle = M3dView.DisplayStyle.kWireFrame;
                queue.add(wireRequest);
            }
        }
Exemplo n.º 5
0
        public override void getDrawRequests(MDrawInfo info,
            bool objectAndActiveOnly,
            MDrawRequestQueue queue)
        {
            quadricShape shapeNode = surfaceShape as quadricShape;
            if (shapeNode == null)
                return;

            // The following line will be removed when all the .net assemblies will be merged into one
            // We would then be able to call info.getPrototype(this)

            MDrawRequest request = info.getPrototype(this);

            quadricGeom geom = shapeNode.geometry();

            MDrawData data;
            getDrawData(geom, out data);
            request.setDrawData(data);

            // Are we displaying meshes?
            if (!info.objectDisplayStatus(M3dView.DisplayObjects.kDisplayMeshes))
                return;

            // Use display status to determine what color to draw the object
            //
            switch (info.displayStyle)
            {
                case M3dView.DisplayStyle.kWireFrame:
                    getDrawRequestsWireframe(request, info);
                    queue.add(request);
                    break;

                case M3dView.DisplayStyle.kGouraudShaded:
                    request.token = (int)DrawShapeStyle.kDrawSmoothShaded;
                    getDrawRequestsShaded(request, info, queue, data);
                    queue.add(request);
                    break;

                case M3dView.DisplayStyle.kFlatShaded:
                    request.token = (int)DrawShapeStyle.kDrawFlatShaded;
                    getDrawRequestsShaded(request, info, queue, data);
                    queue.add(request);
                    break;
                default:
                    break;
            }
        }
Exemplo n.º 6
0
 //
 // Description:
 //
 //     Helper function. It should be removed after SWIGTYPE_p_* classes are eliminated.
 //
 private MDrawRequest getDrawRequest(MDrawInfo info)
 {
     return info.getPrototype(this);
 }
Exemplo n.º 7
0
        public override void getDrawRequests(MDrawInfo info,
                                     bool objectAndActiveOnly,
                                     MDrawRequestQueue queue)
        {
            apiSimpleShape shapeNode = surfaceShape as apiSimpleShape;
            if (shapeNode == null)
                return;

            // This call creates a prototype draw request that we can fill
            // in and then add to the draw queue.
            //
            MDrawRequest request = info.getPrototype(this);


            MDrawData data;
            MVectorArray geomPtr = shapeNode.controlPoints;

            // Stuff our data into the draw request, it'll be used when the drawing
            // actually happens
            getDrawData(geomPtr, out data);

            request.setDrawData(data);

            // Decode the draw info and determine what needs to be drawn
            //

            M3dView.DisplayStyle appearance = info.displayStyle;
            M3dView.DisplayStatus displayStatus = info.displayStatus;

            switch (appearance)
            {
                case M3dView.DisplayStyle.kWireFrame:
                    {
                        request.token = (int)DrawShapeStyle.kDrawWireframe;

                        M3dView.ColorTable activeColorTable = M3dView.ColorTable.kActiveColors;
                        M3dView.ColorTable dormantColorTable = M3dView.ColorTable.kDormantColors;

                        switch (displayStatus)
                        {
                            case M3dView.DisplayStatus.kLead:
                                request.setColor(LEAD_COLOR, (int)activeColorTable);
                                break;
                            case M3dView.DisplayStatus.kActive:
                                request.setColor(ACTIVE_COLOR, (int)activeColorTable);
                                break;
                            case M3dView.DisplayStatus.kActiveAffected:
                                request.setColor(ACTIVE_AFFECTED_COLOR, (int)activeColorTable);
                                break;
                            case M3dView.DisplayStatus.kDormant:
                                request.setColor(DORMANT_COLOR, (int)dormantColorTable);
                                break;
                            case M3dView.DisplayStatus.kHilite:
                                request.setColor(HILITE_COLOR, (int)activeColorTable);
                                break;

                            default:
                                break;
                        }

                        queue.add(request);

                        break;
                    }

                case M3dView.DisplayStyle.kGouraudShaded:
                    {
                        // Create the smooth shaded draw request
                        //
                        request.token = (int)DrawShapeStyle.kDrawSmoothShaded;

                        // Need to get the material info
                        //
                        MDagPath path = info.multiPath;   // path to your dag object 
                        M3dView view = info.view;        // view to draw to
                        MMaterial material = base.material(path);

                        // Evaluate the material and if necessary, the texture.
                        //
                        material.evaluateMaterial(view, path);

                        bool drawTexture = true;
                        if (drawTexture && material.materialIsTextured)
                        {
                            material.evaluateTexture(data);
                        }

                        request.material = material;

                        bool materialTransparent = false;
                        material.getHasTransparency(ref materialTransparent);
                        if (materialTransparent)
                        {
                            request.isTransparent = true;
                        }

                        queue.add(request);

                        // create a draw request for wireframe on shaded if
                        // necessary.
                        //
                        if ((displayStatus == M3dView.DisplayStatus.kActive) ||
                             (displayStatus == M3dView.DisplayStatus.kLead) ||
                             (displayStatus == M3dView.DisplayStatus.kHilite))
                        {
                            MDrawRequest wireRequest = request;
                            wireRequest.setDrawData(data);
                            wireRequest.token = (int)DrawShapeStyle.kDrawWireframeOnShaded;
                            wireRequest.displayStyle = M3dView.DisplayStyle.kWireFrame;

                            M3dView.ColorTable activeColorTable = M3dView.ColorTable.kActiveColors;

                            switch (displayStatus)
                            {
                                case M3dView.DisplayStatus.kLead:
                                    wireRequest.setColor(LEAD_COLOR, (int)activeColorTable);
                                    break;
                                case M3dView.DisplayStatus.kActive:
                                    wireRequest.setColor(ACTIVE_COLOR, (int)activeColorTable);
                                    break;
                                case M3dView.DisplayStatus.kHilite:
                                    wireRequest.setColor(HILITE_COLOR, (int)activeColorTable);
                                    break;

                                default:
                                    break;
                            }

                            queue.add(wireRequest);
                        }

                        break;
                    }

                case M3dView.DisplayStyle.kFlatShaded:
                    request.token = (int)DrawShapeStyle.kDrawFlatShaded;
                    break;

                default:
                    break;

            }

            // Add draw requests for components
            //
            if (!objectAndActiveOnly)
            {

                // Inactive components
                //
                if ((appearance == M3dView.DisplayStyle.kPoints) ||
                     (displayStatus == M3dView.DisplayStatus.kHilite))
                {
                    MDrawRequest vertexRequest = request;
                    vertexRequest.setDrawData(data);
                    vertexRequest.token = (int)DrawShapeStyle.kDrawVertices;
                    vertexRequest.setColor(DORMANT_VERTEX_COLOR, (int)M3dView.ColorTable.kActiveColors);

                    queue.add(vertexRequest);
                }

                // Active components
                //
                if (shapeNode.hasActiveComponents)
                {

                    MDrawRequest activeVertexRequest = request;
                    activeVertexRequest.setDrawData(data);
                    activeVertexRequest.token = (int)DrawShapeStyle.kDrawVertices;
                    activeVertexRequest.setColor(ACTIVE_VERTEX_COLOR, (int)M3dView.ColorTable.kActiveColors);

                    MObjectArray clist = shapeNode.activeComponents;
                    MObject vertexComponent = clist[0]; // Should filter list
                    activeVertexRequest.component = vertexComponent;

                    queue.add(activeVertexRequest);
                }
            }
        }
Exemplo n.º 8
0
        public override void getDrawRequests(MDrawInfo info,
                                             bool objectAndActiveOnly,
                                             MDrawRequestQueue queue)
        {
            apiSimpleShape shapeNode = surfaceShape as apiSimpleShape;

            if (shapeNode == null)
            {
                return;
            }

            // This call creates a prototype draw request that we can fill
            // in and then add to the draw queue.
            //
            MDrawRequest request = info.getPrototype(this);


            MDrawData    data;
            MVectorArray geomPtr = shapeNode.controlPoints;

            // Stuff our data into the draw request, it'll be used when the drawing
            // actually happens
            getDrawData(geomPtr, out data);

            request.setDrawData(data);

            // Decode the draw info and determine what needs to be drawn
            //

            M3dView.DisplayStyle  appearance    = info.displayStyle;
            M3dView.DisplayStatus displayStatus = info.displayStatus;

            switch (appearance)
            {
            case M3dView.DisplayStyle.kWireFrame:
            {
                request.token = (int)DrawShapeStyle.kDrawWireframe;

                M3dView.ColorTable activeColorTable  = M3dView.ColorTable.kActiveColors;
                M3dView.ColorTable dormantColorTable = M3dView.ColorTable.kDormantColors;

                switch (displayStatus)
                {
                case M3dView.DisplayStatus.kLead:
                    request.setColor(LEAD_COLOR, (int)activeColorTable);
                    break;

                case M3dView.DisplayStatus.kActive:
                    request.setColor(ACTIVE_COLOR, (int)activeColorTable);
                    break;

                case M3dView.DisplayStatus.kActiveAffected:
                    request.setColor(ACTIVE_AFFECTED_COLOR, (int)activeColorTable);
                    break;

                case M3dView.DisplayStatus.kDormant:
                    request.setColor(DORMANT_COLOR, (int)dormantColorTable);
                    break;

                case M3dView.DisplayStatus.kHilite:
                    request.setColor(HILITE_COLOR, (int)activeColorTable);
                    break;

                default:
                    break;
                }

                queue.add(request);

                break;
            }

            case M3dView.DisplayStyle.kGouraudShaded:
            {
                // Create the smooth shaded draw request
                //
                request.token = (int)DrawShapeStyle.kDrawSmoothShaded;

                // Need to get the material info
                //
                MDagPath  path     = info.multiPath;     // path to your dag object
                M3dView   view     = info.view;          // view to draw to
                MMaterial material = base.material(path);

                // Evaluate the material and if necessary, the texture.
                //
                material.evaluateMaterial(view, path);

                bool drawTexture = true;
                if (drawTexture && material.materialIsTextured)
                {
                    material.evaluateTexture(data);
                }

                request.material = material;

                bool materialTransparent = false;
                material.getHasTransparency(ref materialTransparent);
                if (materialTransparent)
                {
                    request.isTransparent = true;
                }

                queue.add(request);

                // create a draw request for wireframe on shaded if
                // necessary.
                //
                if ((displayStatus == M3dView.DisplayStatus.kActive) ||
                    (displayStatus == M3dView.DisplayStatus.kLead) ||
                    (displayStatus == M3dView.DisplayStatus.kHilite))
                {
                    MDrawRequest wireRequest = request;
                    wireRequest.setDrawData(data);
                    wireRequest.token        = (int)DrawShapeStyle.kDrawWireframeOnShaded;
                    wireRequest.displayStyle = M3dView.DisplayStyle.kWireFrame;

                    M3dView.ColorTable activeColorTable = M3dView.ColorTable.kActiveColors;

                    switch (displayStatus)
                    {
                    case M3dView.DisplayStatus.kLead:
                        wireRequest.setColor(LEAD_COLOR, (int)activeColorTable);
                        break;

                    case M3dView.DisplayStatus.kActive:
                        wireRequest.setColor(ACTIVE_COLOR, (int)activeColorTable);
                        break;

                    case M3dView.DisplayStatus.kHilite:
                        wireRequest.setColor(HILITE_COLOR, (int)activeColorTable);
                        break;

                    default:
                        break;
                    }

                    queue.add(wireRequest);
                }

                break;
            }

            case M3dView.DisplayStyle.kFlatShaded:
                request.token = (int)DrawShapeStyle.kDrawFlatShaded;
                break;

            default:
                break;
            }

            // Add draw requests for components
            //
            if (!objectAndActiveOnly)
            {
                // Inactive components
                //
                if ((appearance == M3dView.DisplayStyle.kPoints) ||
                    (displayStatus == M3dView.DisplayStatus.kHilite))
                {
                    MDrawRequest vertexRequest = request;
                    vertexRequest.setDrawData(data);
                    vertexRequest.token = (int)DrawShapeStyle.kDrawVertices;
                    vertexRequest.setColor(DORMANT_VERTEX_COLOR, (int)M3dView.ColorTable.kActiveColors);

                    queue.add(vertexRequest);
                }

                // Active components
                //
                if (shapeNode.hasActiveComponents)
                {
                    MDrawRequest activeVertexRequest = request;
                    activeVertexRequest.setDrawData(data);
                    activeVertexRequest.token = (int)DrawShapeStyle.kDrawVertices;
                    activeVertexRequest.setColor(ACTIVE_VERTEX_COLOR, (int)M3dView.ColorTable.kActiveColors);

                    MObjectArray clist           = shapeNode.activeComponents;
                    MObject      vertexComponent = clist[0]; // Should filter list
                    activeVertexRequest.component = vertexComponent;

                    queue.add(activeVertexRequest);
                }
            }
        }
Exemplo n.º 9
0
		private MDrawRequest getDrawRequest(MDrawInfo info)
		//
		// Description:
		//
		//     Helper function. It should be removed after SWIGTYPE_p_* classes are eliminated.
		//
		{
			return info.getPrototype(this);
		}