[X3D-Public] Any way to do a 'LineSensor' (Like PlaneSensor but in one dimension)
Dave A
dave at realmofconcepts.com
Fri Sep 24 19:12:41 PDT 2010
Hey Keith,
Yeah I used Studio to create the basic sensor stuff (as below) and then
restrict X or Z. The problem is as Sergey described. Not an easy fix. I
may go with the (drum roll) custom node 'device sensor' to intercept
mouse events and process as needed.
Dave
On 9/24/2010 11:04 AM, Keith Victor wrote:
> Hey:
>
> This is a long thread, Im not sure if its answered.
>
> Heres some more input:
>
> The Plane Sensor was made to opperate in the X-Y plane. If thats what
> you want, you can specify the min/max X and Y values, and all is good.
>
> If you want to work in a Plane that has the Z axis, it gets a bit
> hairy. You have to transform the things, then, apply the inverse
> transform.
>
> Vivaty Studio will do it all for you! Just select the object, and do:
> Interaction / Drag Selected Node. The GUI pops up, and you can select
> which plane you wish the sensor to opperate in, and and Min and Max
> values for that plane. It will generate the X3D ( without script )
> that does the transform, and inverse transform.
> I pasted the output below for a Line Sensor that translates along the Z axis,
>
> I dont know if this helped or not.
>
>
> Keith Victor
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"
> "http://www.web3d.org/specifications/x3d-3.0.dtd">
> <X3D profile='Immersive'>
> <head>
> <meta name='ExportTime' content='13:59:59'/>
> <meta name='ExportDate' content='9/24/2010'/>
> <meta name='VivatyStudioVersion' content='740'/>
> </head>
> <Scene>
> <Transform DEF='dad_DragWizardGroup'
> rotation='.577 .577 .577 2.094'>
> <Group DEF='DragWizardGroup'
> containerField='children'>
> <Transform DEF='dad_DragWizardGroupAlign'
> containerField='children'>
> <Transform DEF='dad_DragWizGrp'
> containerField='children'
> rotation='-.577 -.577 -.577 2.094'>
> <Shape DEF='Box1'
> containerField='children'>
> <Appearance
> containerField='appearance'>
> <Material DEF='Red'
> containerField='material'
> ambientIntensity='.2'
> shininess='.2'
> diffuseColor='1 0 0'/>
> </Appearance>
> <Box DEF='GeoBox1'
> containerField='geometry'
> size='1 1 1'/>
> </Shape>
> </Transform>
> </Transform>
> <PlaneSensor DEF='DragWizardSensor'
> containerField='children'
> minPosition='0 -5'
> maxPosition='0 5'/>
> </Group>
> </Transform>
> <Transform DEF='dad_Cone2'
> translation='3.22596 0 -4.64446'>
> <Shape DEF='Cone2'
> containerField='children'>
> <Appearance
> containerField='appearance'>
> <Material
> containerField='material'
> USE='Red'/>
> </Appearance>
> <Cone DEF='GeoCone2'
> containerField='geometry'
> height='2'
> bottomRadius='1'/>
> </Shape>
> </Transform>
> <Transform DEF='dad_Cone1'
> translation='-3.54626 0 .02288'>
> <Shape DEF='Cone1'
> containerField='children'>
> <Appearance
> containerField='appearance'>
> <Material
> containerField='material'
> USE='Red'/>
> </Appearance>
> <Cone DEF='GeoCone1'
> containerField='geometry'
> height='2'
> bottomRadius='1'/>
> </Shape>
> </Transform>
> <ROUTE fromNode='DragWizardSensor' fromField='translation_changed'
> toNode='dad_DragWizardGroupAlign' toField='set_translation'/>
> </Scene>
> </X3D>
>
More information about the X3D-Public
mailing list